txtfetch vs Unstructured.io

Unstructured.io is open-core etl for rag pipelines, priced per page. Here's an honest comparison: pricing math, capabilities, and where each tool wins.

at a glance

Unstructured.io

Billing
per page (pay-as-you-go)
Rate used below
$0.03/page
Free tier
15,000 pages/month free.

txtfetch

Billing
per document, regardless of page count
Rate used below
flat monthly quota (see plans)
Free tier
500 documents/month, free, ongoing (Hobby plan)

capability table

CapabilityUnstructured.iotxtfetch
Billing unitper pageper document
Format coverage~25 file types615 formats (Apache Tika, checked)
OCR for scans / images++
Table extraction++*
Complex layout fidelity~~*
Structured field extractionnot yet*
Self-hosted option+*
Single HTTP endpoint~+

Vendor-published benchmarks are marked directional throughout. See sources below. * txtfetch notes: Tables come back as structured rows and cells, not flattened text. Use ?format=markdown for GFM pipe tables, or ?format=json for table elements with a cells array. Output is clean linear or structured text, not a visual layout reconstruction. That's by design, but worth knowing. Structured markdown and element-JSON document output ship today (?format=markdown / ?format=json). Schema-defined field extraction means pulling typed fields per your own schema. That feature is on the roadmap, not shipped yet. We won't claim it early. No shipped self-host or VPC artifact today. It is on the roadmap. Apache Tika itself is free to run yourself. See the page below for what that takes.

Weighing self-hosting against either API? See what running Apache Tika yourself actually takes.

the cost calculator

Per page vs per document, worked out.

A 300-page PDF is 300 units of billing to Unstructured.io. It's one document to txtfetch. Adjust the numbers to your own workload.

Unstructured.io

Pay-as-you-go API, standard tier · $0.03/page

txtfetch

Unstructured.io's figure is their cheapest OCR/base tier — forms, tables, and higher-fidelity models cost more on top. txtfetch bills a flat monthly document quota: the page count inside a document doesn't change your bill.

where unstructured wins

  • Purpose-built chunking strategies (by-title, by-similarity) tuned specifically for RAG retrieval, not just text extraction.
  • Open-source core you can self-host and modify if you need full control over the pipeline.
  • Deep partitioning options per element type (titles, narrative text, tables, images) for teams that want to post-process structure, not just plain text.

where txtfetch wins

  • Breadth: 615 formats, each with a real Apache Tika parser behind it. That's checked against the exact build we run, not a curated list of a dozen file types.
  • One HTTP endpoint. Pass a URL or upload a file, and get text back. No SDK and no async job polling required.
  • Priced per document, so a 300-page report doesn't cost 300x a one-pager.
  • A durable free tier (500 documents/month, ongoing) rather than a time-boxed trial.

What we don't claim yet: schema-defined structured field extraction, or an uptime SLA. Those ship later. See the capability table above.

next step

Ready to switch? See what your code looks like after migrating from Unstructured.io: the call you run today, the call that replaces it, and a drop-in adapter.

sources

Check the numbers yourself.

The benchmark runs against a committed corpus. You can re-run it.

See the benchmarks →

Get an API key →