> Source: https://txtfetch.com/ > Plain-text twin — every page on txtfetch.com has one. https://txtfetch.com/text --- # Any document in. Clean text out. PDFs, Office docs, HTML, email, EPUB, even scans, plus captions and tagged audio/video files. One HTTP endpoint turns any of it into clean text, Markdown, or element JSON. Built for LLM ingestion, RAG pipelines, and search indexing. No parsers to write, nothing to host. [Get started →](https://app.txtfetch.com/signup) [Read the docs](https://txtfetch.com/docs) [1,000+ formats detected, checked →](https://txtfetch.com/formats/coverage) · OCR for scans · free tier stays free [Interactive demo — try it live: https://txtfetch.com/playground] Drop a file below. It stays in your browser. * * * the-problem ## Every pipeline ends up with a parser zoo. The document formats never stop coming. 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 pages - `mammoth` # .docx only, loses tables - `cheerio` # HTML only, you write the selectors - `xlsx` # one more dependency to patch - `mailparser` # attachments are your problem - `tesseract.js` # now you run OCR infra - `$ npm uninstall --all-of-it` * * * see it, don't take our word for it ## A scanned invoice with no text layer. Left is raw. Right is txtfetch. One of the ten documents in our benchmark corpus, read on the premium tier. The corpus is a small, synthetic set of recorded fixtures. Differences are marked, not just colored, so this reads the same for a screen reader as it does on screen. Scanned Invoice #9042 (image-only PDF) `invoice-9042-scan.pdf` · application/pdf · left pane read via Apache Tika, **right pane at premium (VLM)** raw parser output ``` lnvoice #9O42 Bill to: Northwind Tradcrs, 44 Harbor R0w ltem Qty Unit Pricc Total Onsite installatlon 2 $45O.OO $9OO.OO Annual support pian 1 $1,2OO.OO $1,2OO.OO Tota1 due: $2,1OO.OO ``` what txtfetch returns ``` # Invoice #9042 Bill to: Northwind Traders, 44 Harbor Row | Item | Qty | Unit Price | Total | | --- | --- | --- | --- | | Onsite installation | 2 | $450.00 | $900.00 | | Annual support plan | 1 | $1,200.00 | $1,200.00 | Total due: $2,100.00 ``` This scan has no text layer, so the standard tier's automatic Tesseract OCR escalation is what reads it at all. Tesseract reads most of the page, but confuses look-alike characters (O for 0, l and I for 1) throughout. It also has no table model, so the two-line item table survives only as one run-on blur. The premium tier reads the same image through a vision-language model and gets both the characters and the table right. See /fixes/pdf-extracts-no-text for the OCR-escalation path this document takes. Table cell-F1 and reading order, standard vs. premium: 0.0% → 100.0%. See [/benchmarks](https://txtfetch.com/benchmarks) for the full methodology. [PDF extracts no text (the OCR escalation path) →](https://txtfetch.com/fixes/pdf-extracts-no-text) [See all ten documents, including the two-column report and the table that loses a row →](https://txtfetch.com/diff) * * * how-it-works ## Three steps. Two of them are ours. 1. ### Send anything POST a file or pass a URL and txtfetch fetches it for you. PDF, DOCX, PPTX, XLSX, HTML, EPUB, email — 615 formats with a real parser behind them. 2. ### We detect & extract Format detection, structure-aware parsing with Apache Tika, and Tesseract OCR when the document turns out to be pixels. 3. ### Get clean text A JSON response with the document's plain text — ready to chunk, embed, index, classify, or archive. Nothing stored. [Read the full pipeline →](https://txtfetch.com/how-it-works) * * * output ## Text, Markdown, or element JSON — you pick. Every request answers the same way. Pick the shape your pipeline wants: a flat string, GFM Markdown with real tables, or a typed element tree with page and offset per block. - format=text ### Plain text One flat string. Default, unchanged since day one. - format=markdown ### Markdown GFM headings, lists, and tables. Reading order preserved. - format=json ### Element JSON Typed heading/paragraph/list/table/image/code nodes. [See the same document rendered all three ways →](https://txtfetch.com/output) * * * 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, archives, and caption/media files. It is 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` - `.srt` - `.vtt` - `.mp4` - `.mp3` - `+ ~976 more` **Apache Tika** powers it: 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 →](https://txtfetch.com/formats) * * * use-cases ## Text is the universal interface. ### [RAG & LLM ingestion](https://txtfetch.com/solutions/rag-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](https://txtfetch.com/solutions/search-indexing) Make every contract, deck, and attachment findable. One ingestion path for your whole document estate, OCR included. extract → index → find ### [Document workflows](https://txtfetch.com/solutions/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 [See all 7 use cases →](https://txtfetch.com/solutions) * * * pricing ## Priced per document, not per surprise. **Hobby** — $0/mo — 500 documents / month **Developer** — $19/mo — 10,000 documents / month **Scale** — $99/mo — 100,000 documents / month Hobby is free, permanently, no card needed. [Full pricing →](https://txtfetch.com/pricing) ## Stop parsing. Start shipping. Create an account and get an API key in minutes. The free Hobby plan needs no card. [Get started →](https://app.txtfetch.com/signup)