URL a PDF
URL a PDF es una API que abre una página web como lo haría un navegador de verdad y te devuelve un PDF de la página, con sus imágenes, tipos de letra y estilos. Sirve para archivar una página, mandarla por correo, guardar un recibo en línea o adjuntarla a un registro. Si lo que tienes es tu propio HTML (una factura, un informe), usa HTML a PDF.
Cómo funciona
Le mandas la url y te devuelve el PDF. Abre la página con JavaScript, espera a que cargue, la recorre una vez de arriba abajo para que aparezcan las imágenes y secciones que solo cargan al llegar a ellas, y la imprime. Por defecto sale como se ve en pantalla (media=screen); con media=print usa la hoja de estilos de impresión de la propia web.
Aviso honesto: el PDF tiene el ancho de la hoja (un A4 son unos 800 píxeles), así que muchas webs salen con su diseño de tablet o de móvil. Para el diseño de escritorio usa landscape=true o scale=0.7. No puede entrar en páginas que piden iniciar sesión, que piden demostrar que eres una persona o que bloquean a los robots: en ese caso devuelve un error y no se cobra el crédito. Si la web enseña un aviso de cookies, saldrá en el PDF: puedes esconderlo con css (por ejemplo .aviso-cookies{display:none}).
Úsalo solo con páginas que tengas derecho a guardar o copiar, respetando las condiciones de cada web y los derechos de autor. Hasta 100 páginas y 25 MB de PDF por llamada.
Lo único que necesitas
- Tu API key. La creas en tu panel con "+ Crear llave".
- En tu plataforma de automatización, un paso de tipo "HTTP Request" (n8n, Make, Zapier, Pipedream…).
Cómo usarlo en n8n
- Method:
POST· URL:https://api.cofferdock.com/url-to-pdf - Send Headers:
x-api-key= tu llave,Content-Type=text/plain - Send Body: tipo
Rawy, como contenido, la dirección de la página:https://ejemplo.com/articulo - En Options → Response → Response Format elige File: el resultado es el PDF, listo para Drive, Gmail o Telegram.
Opciones
En n8n van como Query Parameters, por ejemplo format = A4.
| Opción | Por defecto | Para qué sirve |
|---|---|---|
format | A4 | Tamaño de hoja: A4, A3, A5, Letter, Legal o Tabloid. |
landscape | false | Hoja apaisada (más ancha). Ayuda a que la web salga con su diseño de escritorio. |
media | screen | screen = como se ve en pantalla; print = con la hoja de estilos de impresión de la web. |
margin | 0 | Margen en milímetros (0 a 100), igual en los cuatro lados. |
pages | 1 a 100 | Qué páginas del PDF quieres, por ejemplo 1-3,5. |
css | - | Estilos extra para esconder o cambiar partes, por ejemplo un aviso de cookies. |
Resumen de la API
- Endpoint:
POST https://api.cofferdock.com/url-to-pdf - Auth: cabecera
x-api-key: TU_LLAVE. - Entrada: JSON
{ "url": "https://...", ... }o a pelo: la URL comotext/plain, con las opciones en la query. - Salida (
output):json(el PDF en base64 más sus datos; lo normal con entrada JSON),pdfobinary(el PDF tal cual; lo normal con entrada a pelo) ourl(un enlace temporal de descarga, válido 15 minutos). - Cómo carga la página: con el mismo navegador y la misma protección que Captura de webs (no se puede apuntar a direcciones internas, ni se siguen redirecciones hacia ellas), con JavaScript activado. Los WebSockets y las descargas están bloqueados, la web no puede registrar service workers y las ventanas emergentes se cierran al abrirse. No guarda cookies ni datos de nadie: cada llamada abre un navegador limpio. No acepta cabeceras ni cookies propias ni direcciones con usuario y contraseña.
- Pasos: carga (hasta 25 s) → espera a que la red se calme (hasta 3 s) →
wait_ms→ recorrido de arriba abajo (lazy_load, hasta 4 s) →css→ impresión. Todo el trabajo tiene un tope de 50 s. - Errores:
400si falta laurlo una opción no es válida;502si la página no carga o responde con un error HTTP (no se cobra);422si la URL es una descarga y no una web, el PDF pasaría de 25 MB o tarda demasiado (no se cobra);503conRetry-Aftersi el servidor está ocupado (no se cobra). - Límites: 20 peticiones/min por IP. Hasta 100 páginas y 25 MB por llamada. Una página web por llamada. 1 llamada = 1 crédito.
Opciones
| Opción | Por defecto | Descripción |
|---|---|---|
url | - | Dirección http(s) de la página. Obligatoria (hasta 8192 caracteres). |
format | A4 | A4, A3, A5, Letter, Legal o Tabloid. |
landscape | false | Hoja apaisada. |
media | screen | screen o print (la hoja de estilos de impresión de la web). |
margin | 0 | 0 a 100. Milímetros, igual en los cuatro lados. |
print_background | true | Imprimir los colores e imágenes de fondo. |
scale | 1 | 0,1 a 2. Con un valor menor que 1 cabe más en cada hoja y la web sale con un diseño más ancho. |
pages | 1-100 | Qué páginas del PDF, por ejemplo 1-3,5. Solo se imprimen las primeras 100. |
wait_ms | 0 | 0 a 5000. Espera extra, en milisegundos, antes de imprimir. |
lazy_load | true | Recorre la página una vez de arriba abajo antes de imprimir, para que carguen las imágenes y secciones perezosas. Con false se salta ese paso (más rápido). |
css | - | Hasta 20.000 caracteres de CSS que se aplican a la página antes de imprimir, por ejemplo .aviso-cookies{display:none}. |
output | json / pdf | json, pdf (o binary) o url. |
Ejemplo
curl -X POST "https://api.cofferdock.com/url-to-pdf" \
-H "x-api-key: TU_LLAVE" -H "Content-Type: application/json" \
-d '{ "url": "https://ejemplo.com/articulo", "format": "A4", "output": "url" }'
Respuesta
{ "success": true, "pdf": "JVBERi0xLjQK...", "mime_type": "application/pdf",
"meta": { "url": "https://ejemplo.com/articulo", "title": "Cómo hacer algo",
"format": "A4", "pages": 3, "size_bytes": 184233, "used": 12, "remaining": 488 } }
Lo que recibes
El PDF, y en meta: la dirección final de la página después de las redirecciones (url), su título (title), cuántas páginas tiene el PDF (pages) y su tamaño. Si pages vale 100, puede que la web fuera más larga y se cortara ahí. Si la página no se puede abrir, tarda demasiado o es una descarga, recibes un error claro y el crédito no se cobra.