Documentación
Un solo endpoint. Le pasás una URL, te devuelve la imagen.
Endpoint
GET https://screenshot.com.ar/v1/capture?url=https://ejemplo.com&key=TU_API_KEY
La respuesta es la imagen directamente (image/png, image/jpeg o image/webp). Los headers X-Cache (HIT o MISS) y X-Quota-Remaining te dicen si salió de cache y cuántas capturas te quedan.
La API acepta CORS desde cualquier origen, así que podés llamarla desde el navegador. Ojo: si lo hacés, tu clave queda visible para quien mire el código de tu página.
Parámetros
| Parámetro | Default | Descripción |
|---|---|---|
url | requerido | La página a capturar. Si no ponés http(s), asumimos https. |
key | — | Tu API key. También podés mandarla en el header X-API-Key. |
width | 1280 | Ancho del navegador en píxeles (320 a 1.920). |
height | 800 | Alto del navegador en píxeles (240 a 1.920). |
full_page | false | true para capturar toda la página, no solo lo visible (hasta 10.000 px de alto). |
format | png | png, jpeg (o jpg) o webp. |
quality | 80 | Calidad de 10 a 100 (solo jpeg y webp). |
delay | 0 | Milisegundos de espera antes de capturar (máximo 5.000). Útil para animaciones. |
dark | false | true para pedirle a la página su modo oscuro. |
cache_ttl | 86400 | Segundos que guardamos la captura (0 a 2.592.000; 0 = sin cache). Las capturas desde cache no cuentan en tu cuota. |
Ejemplos
Imagen directa en HTML
<img src="https://screenshot.com.ar/v1/capture?url=https://www.argentina.gob.ar&key=TU_API_KEY" alt="Captura">
Página completa en WebP
curl "https://screenshot.com.ar/v1/capture?url=https://www.argentina.gob.ar&full_page=true&format=webp" \ -H "X-API-Key: TU_API_KEY" -o captura.webp
Node.js
const res = await fetch("https://screenshot.com.ar/v1/capture?url=https://www.argentina.gob.ar", {
headers: { "X-API-Key": process.env.SCREENSHOT_KEY }
});
if (!res.ok) throw new Error((await res.json()).message);
const buffer = Buffer.from(await res.arrayBuffer());
Errores
Los errores vuelven en JSON con error y message en español.
| Código | error | Cuándo pasa |
|---|---|---|
| 400 | invalid_params | Falta url, algún parámetro es inválido o la dirección no está permitida (redes privadas). |
| 401 | missing_key / invalid_key | No mandaste la clave o no existe. |
| 405 | method_not_allowed | Usá GET. |
| 422 | host_not_found | El dominio no existe. |
| 422 | render_failed | La página no cargó (caída, muy lenta o bloquea navegadores). |
| 429 | quota_exceeded | Llegaste al límite de tu plan este mes. |
| 503 | busy | Alta demanda momentánea. Reintentá en unos segundos. |
Límites
Gratis: 100 capturas por mes. Pro: 5.000. Business: 25.000. El contador se reinicia el primer día de cada mes (UTC). ¿Necesitás más? Escribinos a hola@screenshot.com.ar.