/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:
- Cliente llama
/pdf/index-> recibe el spine consections[]ypages[]. - Cliente / agente decide que paginas le interesan.
- Cliente llama
/convert/from-urlconpages="47-58"para obtener Markdown solo de esas paginas.
Cuando usarlo
Cuando NO usarlo
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 viaPDF_SPINE_MAX_PAGE_ENTRIES). Para docs >200 paginas, usasections[]como mapa de navegacion.- Deteccion de tablas no incluida v1. Solo headings + body chars.
- Sin cache servidor: el cliente conserva el spine. Repetir
/pdf/indexre-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.
