Documentação da API do Screenshot Studio
O Screenshot Studio expõe uma API HTTP pública e direta: capture uma página web como imagem, recompacte uma imagem exportada, consulte um tweet e use o proxy de mídia do Twitter. Sem chave de API, sem token e sem conta. Todas as falhas retornam o mesmo formato de erro JSON. O contrato legível por máquina está em /openapi.json.
Início Rápido
Capture uma página e salve o PNG no disco em um único comando.
curl -s -X POST https://www.screenshot-studio.com/api/screenshot \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}' \
| jq -r .screenshot | base64 -d > shot.pngURL Base
https://www.screenshot-studio.comEndpoints
POST/api/screenshot
operationId: captureScreenshot
Renderiza a página na URL informada e retorna a screenshot como um PNG codificado em base64. Os resultados ficam em cache por URL, tipo de dispositivo e esquema de cores.
Requisição
curl -X POST https://www.screenshot-studio.com/api/screenshot \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"deviceType": "desktop",
"colorScheme": "light",
"forceRefresh": false
}'Resposta
{
"screenshot": "iVBORw0KGgoAAAANSUhEUg...",
"url": "https://example.com",
"cached": false,
"strategy": "microlink",
"deviceType": "desktop",
"colorScheme": "light"
}POST/api/export
operationId: optimizeExportImage
Recompacta uma imagem com Sharp e retorna os bytes otimizados. JPEG usa MozJPEG, WebP usa libwebp, PNG usa filtragem adaptativa. O corpo da resposta é a própria imagem binária, não JSON.
Requisição
curl -X POST https://www.screenshot-studio.com/api/export \
-F "image=@shot.png" \
-F "format=webp" \
-F "qualityPreset=high" \
-o shot.webpResposta
HTTP/2 200
content-type: image/webp
<binary image bytes>GET/api/tweet/{id}
operationId: getTweet
Retorna a carga útil pública do tweet usada para renderizá-lo como imagem. O id é o ID numérico do status extraído da URL do tweet.
Requisição
curl https://www.screenshot-studio.com/api/tweet/1234567890123456789Resposta
{
"data": {
"id_str": "1234567890123456789",
"text": "...",
"user": { "name": "...", "screen_name": "..." }
}
}GET/api/image-proxy
operationId: proxyTwitterImage
Transmite uma imagem hospedada no Twitter através desta origem para que possa ser desenhada em um canvas sem torná-lo 'tainted'. Apenas pbs.twimg.com, abs.twimg.com, ton.twitter.com e video.twimg.com são permitidos.
Requisição
curl "https://www.screenshot-studio.com/api/image-proxy?url=https://pbs.twimg.com/media/EXAMPLE.jpg" \
-o media.jpgResposta
HTTP/2 200
content-type: image/jpeg
<binary image bytes>Erros
Toda requisição com falha retorna JSON com o mesmo formato. Utilize code, que é estável; error e message trazem o mesmo texto legível, e hint explica como recuperar.
{
"error": "URL is required",
"code": "invalid_request",
"message": "URL is required",
"hint": "Send a JSON body with a \"url\" string, for example {\"url\": \"https://example.com\"}.",
"status": 400,
"documentation": "https://www.screenshot-studio.com/docs#errors"
}| Código | Status | Significado |
|---|---|---|
| invalid_request | 400 | Um campo obrigatório está ausente ou malformatado. |
| invalid_url | 400 | A url não é uma URL http ou https absoluta válida. |
| unsupported_value | 400 | Um campo foi definido com um valor fora do enum permitido. |
| forbidden_domain | 403 | O host solicitado não está na lista de permissões do proxy. |
| not_found | 404 | Nenhum endpoint ou recurso corresponde à requisição. |
| method_not_allowed | 405 | O endpoint não aceita este método HTTP. |
| rate_limited | 429 | O limite de taxa por IP foi excedido. Respeite o cabeçalho Retry-After. |
| upstream_timeout | 408 | A página de destino demorou muito para carregar. |
| upstream_unavailable | 503 | O serviço de captura upstream está inacessível. |
| upstream_failed | 502 | O host upstream recusou ou falhou na requisição. |
| internal_error | 500 | Falha inesperada no servidor. |
Negociação de conteúdo Markdown
Todas as páginas deste site entregam Markdown aos clientes que o solicitam. As respostas definem Content-Type: text/markdown; charset=utf-8 e Vary: Accept, Accept-Encoding. Uma requisição que não aceite nem text/html nem text/markdown é respondida com 406, e um caminho desconhecido retorna 404 com um corpo em Markdown listando para onde ir em seguida.
curl -H "Accept: text/markdown" https://www.screenshot-studio.com/Recursos relacionados
Especificação OpenAPI 3.1
Contrato legível por máquina para todas as operações desta página.
Autenticação e limites de taxa
Nenhuma chave de API é necessária. Veja os limites por IP aqui.
Portal do desenvolvedor
Início rápido, arquivos para agentes e repositório de código aberto.
llms.txt
Visão geral em Markdown de todo o site para agentes de IA.