Parse any file
into structured text
File in, LLM-ready text out. PDF, DOCX, XLSX, PPTX and images — clean markdown and structured JSON via one API call.
$ curl https://api.files2llm.com/jobs \
-H "X-API-Key: f2l_..." \
-F "[email protected]"
{
"job_id": "abc-123",
"status": "queued"
}What you get
Clean markdown out
Structured markdown plus plain text, page by page. LLM-ready — no layout noise, no boilerplate.
Every common format
PDF, DOCX, XLSX, PPTX and images through one endpoint, with consistent ParsedDocument JSON out.
Scanned PDFs & OCR
Handles scanned documents and images with OCR, so even non-digital files become text.
Sync or webhook
Poll for status or pass a callback URL - works for both interactive use and batch ingestion.
Language detection
Each document comes back with its detected language, ready for downstream routing.
Multiple keys per account
Rotate keys safely, label them per environment, revoke individually from the dashboard.
See it in action
Same API, three flavors. Pick your stack.
# Upload a file (PDF, DOCX, XLSX, PPTX, image)
curl -X POST https://api.files2llm.com/jobs \
-H "X-API-Key: f2l_..." \
-F "[email protected]"
# Response
{"job_id":"abc-123","status":"queued"}
# Poll until parsed
curl https://api.files2llm.com/jobs/abc-123 \
-H "X-API-Key: f2l_..."
# Fetch the structured result (text + markdown per page)
curl https://api.files2llm.com/jobs/abc-123/result \
-H "X-API-Key: f2l_..."files2llm is part of the 2LLM Suite — focused APIs that turn messy inputs into LLM-ready data. Also try scrape2llm and html2media and html2reel and stream2llm and research2llm for the rest.