Any document in.
Clean text out.
PDFs, Office docs, HTML, email, EPUB — even scans. One HTTP endpoint turns any of it into clean plain text. Built for LLM ingestion, RAG pipelines, and search indexing. No parsers to write, nothing to host.
1,000+ formats · OCR for scans · free tier stays free
the-problem
Every pipeline ends up with a parser zoo.
The document formats never stop coming — and each one grows its own library, its own edge cases, its own 2 a.m. failure mode. You wanted to build a product; instead you're maintaining an extraction stack.
Delete the parser zoo. txtfetch collapses it into one call — Apache Tika and Tesseract OCR, run for you, behind an endpoint that always answers with text.
pdf-parse# chokes on scanned pagesmammoth# .docx only, loses tablescheerio# HTML only, you write the selectorsxlsx# one more dependency to patchmailparser# attachments are your problemtesseract.js# now you run OCR infra$ npm uninstall --all-of-it
how-it-works
Three steps. Two of them are ours.
Send anything
POST a file or pass a URL and txtfetch fetches it for you. PDF, DOCX, PPTX, XLSX, HTML, EPUB, email — 1,000+ formats.
We detect & extract
Format detection, structure-aware parsing with Apache Tika, and Tesseract OCR when the document turns out to be pixels.
Get clean text
A JSON response with the document's plain text — ready to chunk, embed, index, classify, or archive. Nothing stored.
formats
Every extension is a parser you don't write.
Most extraction tools stop at PDFs and scanned pages. txtfetch also handles email (.eml/.msg/.mbox), Office documents natively, EPUB, ODF, spreadsheets, and archives — one path for every file type, not just the ones that look like paper.
.pdf.docx.doc.pptx.ppt.xlsx.xls.csv.html.xml.epub.rtf.odt.ods.odp.md.eml.msg.mbox.txt.json.png.jpg.tiff+ ~980 more
Powered by Apache Tika — two decades of format archaeology, maintained by the people who wrote the book on it. Scans and images route through Tesseract OCR automatically.
Browse all 1,000+ formats →use-cases
Text is the universal interface.
RAG & LLM ingestion
Your retrieval is only as good as your extraction. Feed models clean text from any source your users throw at you — uploads, links, inboxes, archives.
chunk → embed → retrieve
Search indexing
Make every contract, deck, and attachment findable. One ingestion path for your whole document estate, OCR included.
extract → index → find
Document workflows
Classify inbound email, route invoices, screen resumes, mine archives. Anything you can do with text, you can now do with any file.
receive → extract → act
pricing
Priced per document, not per surprise.
Stop parsing. Start shipping.
Create an account and get an API key in minutes — the free Hobby plan needs no card.
Get started →