Convertir PDF a Markdown
Este endpoint lee un PDF como lo haría una persona: reconoce qué línea es un encabezado, dónde empieza una lista, qué párrafo pertenece a qué sección, y escribe esa estructura como Markdown que puede versionar, comparar o incorporar directo a un sitio estático o una base de conocimiento. Resuelve un problema distinto al de la extracción de texto plano: conserva la forma del documento, no solo sus palabras.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
La brecha entre texto y estructura
Sacar texto crudo de un PDF le da las palabras, pero descarta todo lo que hacía legible al documento: qué línea era un título, dónde comenzaba una lista, qué párrafo iba bajo qué sección. Markdown se creó justamente para codificar esa estructura en texto plano: una almohadilla para un encabezado, un guion para un ítem de lista, sin formato propietario que abrir. Este endpoint cierra esa brecha: observa el tamaño de fuente, el espaciado y las pistas de diseño del PDF para inferir la estructura, y luego la expresa como sintaxis Markdown en lugar de un bloque plano de oraciones.
Qué envía y qué recibe
Envía el PDF con un POST a /pdf/to-markdown y recibe un task_id de inmediato, ya que inferir la estructura de cada página toma tiempo real de procesamiento. Cuando la conversión termina, el archivo Markdown se entrega en su webhook o queda disponible en un enlace firmado durante 24 horas. Los encabezados se convierten en niveles #, las listas con viñetas o numeradas conservan sus marcadores, y los párrafos de cuerpo llegan como líneas simples: un documento que empezó como un PDF de maquetación fija termina como texto plano editable y versionable.
La silenciosa conquista de Markdown en la escritura técnica
Markdown nació en 2004 como una forma simple de escribir texto con formato sin tocar etiquetas HTML, y desde entonces se volvió el formato por defecto para documentación, archivos README, generadores de sitios estáticos y la mayoría de las herramientas de base de conocimiento. Convertir un PDF a Markdown no es solo un cambio de formato: es mudar un documento al ecosistema donde los equipos modernos realmente escriben y revisan contenido, con control de versiones y comparaciones en texto plano, en lugar de un archivo binario que hay que reabrir en un visor dedicado cada vez que alguien quiere revisar un cambio.
Cómo encaja en una canalización de documentación
Como el endpoint devuelve un task_id y reporta por webhook, puede conectarlo directamente a un script de migración: sacar cada manual PDF antiguo del almacenamiento, convertirlo y subir los archivos Markadown resultantes a un repositorio de forma automática. Las conversiones fallidas se reintentan hasta tres veces antes de devolver un error claro, así que una canalización que procesa cientos de archivos no necesita un manejo especial para el raro documento problemático. Solo se cobra por las páginas que realmente se convierten.
Precio, acceso y retención
El costo es $0.010 por solicitud más $0.0575 por página, lo que refleja el trabajo adicional de inferir estructura en vez de solo extraer texto: un manual de veinte páginas ronda $1.17. El acceso requiere saldo prepago; sin saldo el endpoint devuelve un 402, algo intencional que mantiene ágil la cola de conversión. Tanto el PDF de origen como el Markdown resultante se eliminan después de la ventana de retención y nunca se usan para entrenar nada.
Qué puede hacer con ella
Migrar manuales antiguos a un sitio de documentación
Convierta una biblioteca de viejas guías de usuario en PDF a archivos Markdown que encajan directo en un generador de sitios estáticos, reemplazando un enlace de descarga de PDF por páginas de documentación reales y buscables.
Alimentar una base de conocimiento o wiki
Convierta presentaciones de inducción, políticas en PDF o reportes internos en páginas Markdown que un wiki de equipo puede indexar y que los colegas pueden editar en línea en vez de reexportar todo el documento.
Revisión de documentos con control de versiones
Convierta borradores de contratos o especificaciones en PDF a Markdown para poder rastrear los cambios entre revisiones con una comparación de texto plano en vez de comparar PDFs uno al lado del otro.
Preparar contenido para herramientas de texto posteriores
Produzca Markdown a partir de artículos de investigación o reportes antes de resumirlos o clasificarlos, ya que un Markdown consciente de la estructura conserva los límites de sección que la extracción de texto plano aplanaría.
Preguntas frecuentes
¿Cómo convierto un PDF a Markdown con una API?
Haga un POST del PDF a /pdf/to-markdown y recibe un task_id de inmediato. El archivo Markdown convertido llega a su webhook o a un enlace firmado cuando termina el procesamiento.
¿Es gratis la API PDF a Markdown?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Cuánto cuesta convertir un PDF a Markdown?
El precio es $0.010 por solicitud más $0.0575 por página, así que un documento de diez páginas cuesta cerca de $0.59.
¿Conserva encabezados, listas y formato?
Sí: infiere los niveles de encabezado, las listas con viñetas o numeradas y los saltos de párrafo a partir del diseño del PDF, y los expresa como sintaxis Markdown real, no como un bloque plano de texto.
¿En qué se diferencia de PDF a texto plano?
La extracción de texto plano devuelve palabras sin estructura; PDF a Markdown analiza el diseño para reconstruir encabezados, listas y secciones, lo que hace que el resultado sea utilizable como documentación.
¿Qué pasa con las tablas e imágenes del PDF original?
La conversión se enfoca en la estructura textual — encabezados, listas y párrafos; las tablas complejas y las imágenes embebidas pueden necesitar revisión manual después de la conversión, como en cualquier inferencia estructural.
¿Puedo convertir PDFs en lote?
Sí. Cada PDF corre como una tarea independiente, así que puede enviar lotes grandes y dejar que cada webhook confirme la finalización sin consultar el resultado manualmente.
¿Qué pasa si un PDF no se convierte, y se guardan mis datos?
Una tarea que falla se reintenta hasta tres veces antes de devolver un error claro, y nunca se le cobra por ella. El PDF de origen y el Markdown resultante se eliminan tras la ventana de retención y nunca se usan para entrenar nada.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/pdf/to-markdown \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/to-markdown", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/to-markdown",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/to-markdown", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/to-markdown", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"pdf": "https://ejemplo.com/documento.pdf"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.to_markdown",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
max_pages | 200 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
413 | input_too_large | El archivo supera el límite de tamaño. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |