Skip to main content
/pdf/index devuelve un mapa compacto del PDF (~5-15KB JSON) sin extraer Markdown. Pensado para agentes IA / RAG que necesitan navegar documentos grandes sin pagar el coste (tokens + tiempo) de convertirlo entero. El flujo correcto es:
  1. Cliente llama /pdf/index -> recibe el spine con sections[] y pages[].
  2. Cliente / agente decide que paginas le interesan.
  3. Cliente llama /convert/from-url con pages="47-58" para obtener Markdown solo de esas paginas.
Resultado: un PDF de 500 paginas se navega con 5KB de spine + 30KB del trozo pedido, en vez de 10MB de Markdown completo. El agente IA paga 20-30x menos tokens al LLM, y el backend extrae 400x menos paginas.

Cuando usarlo

  • Agente IA / RAG que busca informacion concreta en PDFs grandes.
  • Documentos legales / academicos / financieros con secciones bien delimitadas.
  • UI tipo “vista previa” donde el usuario navega antes de descargar.
  • Pre-validacion de PDF (page count, formato) sin coste de conversion.

Cuando NO usarlo

  • PDFs pequenos (<10 paginas): el coste fijo del spine no compensa, usa /convert/raw o /convert/from-url directo.
  • Cliente que SI quiere el Markdown completo: salta el indice y pide /convert/from-url sin pages.

Request

string
requerido
URL GET prefirmada del PDF en tu storage (S3, R2, Supabase, GCS, Azure Blob).
string
predeterminado:"document.pdf"
Nombre logico solo para logs.

Response

Campos del spine

Ejemplo de flujo completo (agente IA)

Coste y rendimiento

  • Latencia tipica: 300-700ms para PDFs hasta 512MB (sample de 32 paginas + cabeza de cada una).
  • Coste server: constante respecto al tamano del PDF (no escala con paginas).
  • Coste cliente IA: spine ~1.5K-4K tokens vs Markdown completo 50K-300K tokens.

Limitaciones v1

  • pages[] truncado a 200 entradas (configurable via PDF_SPINE_MAX_PAGE_ENTRIES). Para docs >200 paginas, usa sections[] como mapa de navegacion.
  • Deteccion de tablas no incluida v1. Solo headings + body chars.
  • Sin cache servidor: el cliente conserva el spine. Repetir /pdf/index re-descarga y re-procesa.

Seguridad

  • Mismo anti-SSRF que /convert/from-url: solo HTTPS, hosts publicos.
  • Validacion de header de PDF y enforce de MAX_PDF_PAGES.
  • API key + credito (tier=index, coste fijo 1 credito por llamada).
  • No se guardan PDFs ni spine en el servidor.
Ver tambien: POST /convert/from-url, Modos, Compresion.