Captura de webs
Captura de webs es una API que hace una foto (screenshot) de cualquier página web a partir de su enlace. Le pasas la URL y te devuelve una imagen (PNG o JPEG) de cómo se ve. Útil para miniaturas de webs, vistas previas de enlaces y para guardar cómo estaba una página, sin montar servidores.
Cómo funciona
Esta herramienta abre una página web pública (la del enlace que le des) y te devuelve una imagen (PNG o JPEG) de cómo se ve. La web se renderiza con su JavaScript, como en un navegador normal.
Está pensada para usarla desde plataformas no-code como n8n, Make o Zapier, sin programar. Ideal para miniaturas de webs, vistas previas de enlaces o guardar cómo estaba una página. No guarda nada: la captura se genera al momento.
Lo único que necesitas
- Tu API key (tu “contraseña” para la herramienta). La creas en tu panel con “+ Crear llave”. Se muestra una sola vez, así que cópiala y guárdala.
- En tu plataforma de automatización, un paso de tipo “HTTP Request” / “Hacer una petición HTTP” (lo tienen n8n, Make, Zapier, Pipedream…).
Cómo usarlo en n8n (paso a paso)
Le envías el enlace de la web y te devuelve la imagen directamente, lista para usar. En el nodo HTTP Request:
- Method:
POST - URL:
https://api.cofferdock.com/screenshot - Send Query Parameters: actívalo y añade el tamaño:
width=1280,height=800. (Puedes añadirfull_page,format… ver la tabla.) - Send Headers: actívalo y añade dos:
x-api-key= tu llave, yContent-Type=text/plain - Send Body: actívalo → Body Content Type: Raw → en Body pega el enlace de la web (por ejemplo
https://cofferdock.com) - En Options → Response → Response Format: elige File
La salida del nodo ya es la imagen como archivo: conéctala directamente a Drive, email, Telegram… Un solo nodo y listo.
En Make (módulo HTTP → Make a request): mismo método y URL, en Query String añade width y height, en Headers las dos cabeceras, Body type: Raw, Content type: text/plain y pega el enlace en Request content. La respuesta ya es el archivo de imagen.
En resumen: POST a …/screenshot, width y height como Query Parameters, las cabeceras x-api-key y Content-Type: text/plain, el enlace de la web en Body en modo Raw y Response Format en File.
Opciones (en Query Parameters)
Opciones que puedes añadir como Query Parameters (campos name/value en n8n/Make):
| Opción | Por defecto | Para qué sirve |
|---|---|---|
width | 1280 | Ancho de la ventana en píxeles. |
height | 800 | Alto de la ventana en píxeles. |
full_page | false | Capturar la página entera (no solo lo visible). Ponlo en true. |
format | png | Formato: png o jpeg. |
wait_ms | 0 | Esperar antes de la foto (máx. 5000) por si algo carga tarde. |
Solo webs públicas: únicamente se permiten enlaces http/https accesibles desde internet. Por seguridad, no se pueden capturar direcciones internas o privadas.
Resumen de la API
- Endpoint:
POST https://api.cofferdock.com/screenshot - Auth: cabecera
x-api-key: TU_LLAVE. - Entrada: la URL va en el cuerpo como
text/plain(a pelo) o comoapplication/jsonen el campourl. - Salida: por defecto, con
text/plaindevuelve el binario de la imagen (image/pngoimage/jpeg); con JSON devuelve base64. Añadeoutput=imagepara forzar el binario. - Seguridad: solo URLs públicas http/https; las IPs internas/privadas se bloquean (anti-SSRF). El JavaScript de la web SÍ se ejecuta, en un contexto efímero y aislado.
- Límites: timeout 30 s; 30 capturas/min por IP. 1 captura = 1 crédito.
Opciones
| Opción | Por defecto | Descripción |
|---|---|---|
width | 1280 | Ancho de ventana en px (100–3840). |
height | 800 | Alto de ventana en px (100–2160). |
full_page | false | Captura toda la altura de la página. |
format | png | png o jpeg. |
quality | 90 | Calidad JPEG (1–100). Solo aplica a jpeg. |
wait_ms | 0 | Espera antes de capturar, en ms (máx. 5000). |
output | según modo | image (binario) o json (base64). |
Ejemplos
curl (URL a pelo, guarda la imagen en un fichero):
curl -X POST "https://api.cofferdock.com/screenshot?width=1280&height=800" \
-H "x-api-key: TU_LLAVE" \
-H "Content-Type: text/plain" \
--data "https://cofferdock.com" \
-o captura.png
JavaScript (Node 18+):
const r = await fetch('https://api.cofferdock.com/screenshot?width=1280&height=800', {
method: 'POST',
headers: { 'x-api-key': 'TU_LLAVE', 'Content-Type': 'text/plain' },
body: 'https://cofferdock.com',
});
const buffer = Buffer.from(await r.arrayBuffer());
require('fs').writeFileSync('captura.png', buffer);
Python:
import requests
r = requests.post(
'https://api.cofferdock.com/screenshot',
params={'width': 1280, 'height': 800},
headers={'x-api-key': 'TU_LLAVE', 'Content-Type': 'text/plain'},
data='https://cofferdock.com',
)
open('captura.png', 'wb').write(r.content)
Modo JSON (respuesta en base64)
Con Content-Type: application/json, la URL va en url y las opciones en el mismo objeto. La respuesta trae la imagen en base64:
{ "url": "https://cofferdock.com", "width": 1280, "full_page": true }
→ { "success": true, "image": "iVBORw0KGgo…", "mime_type": "image/png",
"meta": { "used": 12, "remaining": 488, "size_bytes": 95421 } }
Añade "output": "image" al JSON para recibir el binario en lugar del base64.
Lo que recibes
La imagen directamente (un archivo PNG o JPEG), lista para guardar, enviar por email o publicar. No hay que convertir nada: el paso siguiente de tu automatización ya recibe el archivo. (En el modo técnico con JSON, la imagen llega en base64.)
Si en un pico recibes “ocupado”
En momentos de mucha demanda, la API puede responder “ocupado” (código 503) y pedirte que esperes unos segundos. Es raro y puntual, pero para que tu automatización lo resuelva sola, activa el reintento en el paso de la petición:
- En n8n: en el nodo HTTP Request, pestaña Settings, activa “Retry On Fail”. Con 2–3 intentos sobra.
- En Make: añade un manejador de errores al módulo (clic derecho → Add error handler) con la directiva Break, que reintenta automáticamente.
Nuestra respuesta incluye la cabecera Retry-After con los segundos que conviene esperar. Con el reintento activado, tu flujo ni se entera.