txtfetch is live. Delete your parser zoo.

One HTTP endpoint turns any document — PDF, DOCX, PPTX, XLSX, HTML, email, scans — into clean plain text. Built for the pipelines that feed LLMs, search indexes, and anything else that reads text for a living.

the wedge

Four reasons to rip out your parser stack.

breadth

1,000+ formats, one call.

PDF, DOCX, PPTX, XLSX, HTML, EML, scanned images — anything Apache Tika parses. Stop maintaining a parser per format.

one endpoint

URL in or file in, text out.

One HTTP endpoint. Pass ?url= and we fetch it server-side, or POST the bytes. No SDK to install, no client library to pin.

honest price

Priced per document.

Not per page, not per megabyte. A 300-page PDF and a one-page receipt both count as one document, at a price you can see on /pricing.

free tier

Durable, not a trial.

500 documents a month, free, for as long as you're building. Not a 14-day countdown — a tier meant to be lived in.

see it work

Two calls. That's the whole API.

# fetch a URL server-side

$ curl "https://api.txtfetch.com/v1/extract?url=https://example.com/report.pdf"

{
  "status": "success",
  "extracted_text": "Revenue for the fiscal year grew 34%…"
}

# upload bytes directly

$ curl -F file=@scanned-invoice.png \
    https://api.txtfetch.com/v1/extract

{
  "status": "success",
  "extracted_text": "INVOICE #2041 — Acme Industrial Supply…"
}

Same endpoint either way. No client library, no format switch statement on your side — Tika detects the real content type and Tesseract OCR kicks in automatically when a page has no text layer.

what txtfetch doesn't do yet

The honest limits.

We'd rather you learn these from us than from a bad extraction in production. Nothing below is a secret — it's the current edge of what's shipped.

  • Tables reconstruct into structured rows and cells: ?format=markdown returns GFM pipe tables, ?format=json returns table elements with cells — no longer just flattened text.
  • OCR accuracy tracks scan quality. Clean 300 DPI scans do well; noisy faxes, skewed photos, and low-DPI images will lose characters. Always spot-check OCR output for anything you didn't scan yourself.
  • No SLA today. txtfetch is early access — we're honest about uptime because we're not yet claiming a number we'd have to defend.
  • Structured markdown and element-JSON document output ship today (?format=markdown / ?format=json). What's still not offered is schema-defined field extraction — pulling typed fields per your own schema, not just structured document output.

faq

Questions we'd ask too.

Does txtfetch reconstruct tables into structured rows and columns?
Yes — with ?format=markdown or ?format=json, tables come back as structured rows/cells (GFM pipe tables or element JSON with a cells array), not flattened text. What we don't yet offer is schema-defined field extraction — pulling typed fields per your own schema.
How accurate is OCR on scanned documents?
It depends on scan quality. Clean, high-DPI scans extract well with Tesseract OCR. Noisy faxes, skewed photos, and low-DPI images will lose characters — treat OCR output on rough scans as a draft, not ground truth.
Why not just run Apache Tika myself?
You can — Tika is open source. txtfetch is for when you'd rather not run and patch a JVM + Tesseract stack yourself: it's hosted, scales to zero, ships OCR out of the box, and the free tier covers most side projects outright.
Why price per document instead of per page?
Per-page pricing punishes exactly the documents people most want extracted — long reports, contracts, books. Per-document pricing is one predictable unit: one URL or one upload, one price, regardless of length.
Does txtfetch store the documents I send it?
No. Documents are processed in memory for the duration of the request and discarded once the response is returned. We keep request metadata for metering, never the content.

Stop parsing. Start shipping.

Create an account and get an API key in minutes — the free Hobby plan needs no card.

Get started →