URL a Markdown
URL a Markdown es una API que abre una página web y te devuelve su texto limpio, sin menús, anuncios ni pie de página, en Markdown o en texto plano, junto con su título, descripción e imagen. Sirve para dar páginas a un asistente de IA o para guardar el contenido de un artículo en tu flujo. Si ya tienes el HTML, también lo convierte sin abrir nada.
Cómo funciona
Le mandas la url (o el html) y te devuelve el contenido (content) y sus datos: título, descripción, imagen, idioma, autor y fecha cuando la página los trae. Abre la página como un navegador, con JavaScript, así que lee también las webs que se pintan en el momento. No carga imágenes, vídeo ni tipos de letra: no hacen falta para leer el texto.
Aviso honesto: por defecto se queda con el contenido principal, con la misma detección que el "modo lectura" de Firefox. En artículos y entradas de blog funciona muy bien; en portadas, listados o paneles puede dejarse partes fuera: usa main_content=false para obtener toda la página. No puede leer páginas que piden iniciar sesión, que bloquean a los robots o que cargan el contenido tras pulsar algo: en ese caso devuelve un error y no se cobra el crédito. Úsalo solo en páginas que puedas leer, respetando las condiciones de cada web.
Si lo usas con una IA: el texto viene de una web ajena y puede traer frases que parecen instrucciones. Trátalo como datos, no como órdenes.
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/web-to-markdown - Send Headers:
x-api-key= tu llave,Content-Type=application/json - Send Body (JSON):
{ "url": "https://ejemplo.com/articulo" } - El texto de la página llega en
content; el título entitle.
Opciones
| Opción | Por defecto | Para qué sirve |
|---|---|---|
url | - | La página a leer. O manda html si ya lo tienes. |
format | markdown | markdown, text (texto plano) o metadata (solo título, descripción e imagen). |
main_content | true | Solo el contenido principal. Con false, toda la página. |
include_links | true | Mantener los enlaces. Con false, solo el texto. |
include_images | false | Incluir las imágenes como enlaces en el Markdown. |
Resumen de la API
- Endpoint:
POST https://api.cofferdock.com/web-to-markdown - Auth: cabecera
x-api-key: TU_LLAVE. - Entrada: JSON
{ "url": "..." }o{ "html": "..." }(no los dos). También a pelo: la URL comotext/plaino el HTML comotext/html, con las opciones en la query. - Cómo lee una URL: con el mismo navegador y la misma protección que Captura de webs (no se puede apuntar a direcciones internas), con JavaScript activado; espera a que cargue y, hasta 3 segundos, a que la red se calme. No carga imágenes, vídeo ni fuentes. Con
htmlno se abre ningún navegador y no se ejecuta ningún script. - Cómo convierte: Readability (el modo lectura de Firefox) para quedarse con el contenido principal, y Turndown para pasarlo a Markdown (con tablas), en un hilo aparte del servidor.
- Errores:
400si faltaurl/html, o la URL no es válida;502si la página no carga o responde con un error (no se cobra);422si la URL no es una página web (un PDF, una descarga), pesa más de 4 MB de HTML o la conversión tarda demasiado (no se cobra);503conRetry-Aftersi el servidor está ocupado (no se cobra). - Límites: 20 peticiones/min por IP. Hasta 4 MB de HTML por página. Una página por llamada. 1 llamada = 1 crédito.
Opciones
| Opción | Por defecto | Descripción |
|---|---|---|
url | - | URL http(s) de la página. Obligatoria si no mandas html. |
html | - | El HTML a convertir (hasta 4 MB), si ya lo tienes. |
base_url | - | Solo con html: la dirección de la que viene, para que los enlaces relativos salgan completos. |
format | markdown | markdown, text o metadata (sin content). |
main_content | true | true = contenido principal (detección tipo modo lectura); false = toda la página. |
include_links | true | Mantener los enlaces en el Markdown. |
include_images | false | Incluir las imágenes () en el Markdown. |
wait_ms | 0 | 0 a 5000. Espera extra, en milisegundos, antes de leer la página. Solo con url. |
max_chars | 200000 | 100 a 1.000.000. Tope de caracteres de content; si se pasa, se corta por un párrafo y truncated es true. |
Ejemplo
curl -X POST "https://api.cofferdock.com/web-to-markdown" \
-H "x-api-key: TU_LLAVE" -H "Content-Type: application/json" \
-d '{ "url": "https://ejemplo.com/articulo", "format": "markdown" }'
Respuesta
{ "success": true, "url": "https://ejemplo.com/articulo",
"title": "Cómo hacer algo", "description": "Una guía corta.",
"byline": null, "site_name": "Ejemplo", "language": "es",
"image": "https://ejemplo.com/og.png", "canonical": "https://ejemplo.com/articulo",
"published_time": "2026-10-08T04:16:32Z", "format": "markdown",
"content": "## Primer paso\n\nTexto del artículo...", "length": 4821, "truncated": false,
"meta": { "main_content_found": true, "used": 12, "remaining": 488 } }
Lo que recibes
content es el texto de la página (no viene con format=metadata). El resto de campos (title, description, image, language, canonical, byline, site_name, published_time) salen de los datos que la propia página declara y valen null cuando no los trae. meta.main_content_found dice si se encontró un contenido principal; si es false, no se detectó y se devolvió toda la página (y es null si pediste toda la página con main_content=false).