ReadAnyDoc documentation¶
ReadAnyDoc is the open-source alternative to Reducto. It parses and extracts PDFs, scans, photos and Office files with a vision model (Claude Haiku 5.5 by default, or any model you choose) and returns structured data where every value carries a citation back to the place on the page it was read from.
You can use it two ways:
- As a Python library.
pip install "readanydoc[engine]", thenreadanydoc.parse(...)andreadanydoc.extract(...). No server, nothing to deploy. - As a server with Reducto's API. Run
readanydoc serveor the Docker image and call it over HTTP from any language, or point Reducto's own SDK at it.
Either way it runs on your machine and calls the model provider with your own key. Nothing is sent to us.
-
Quickstart (Python)
Install, parse your first document and extract into your own pydantic class in five minutes.
-
Migrate from Reducto
Keep your code and Reducto's SDK; change the base URL. Route-by-route compatibility included.
-
Choose your models
Claude, OpenAI or a self-hosted model, with the effort and every provider option you need.
-
Benchmarks
Measured against Reducto on five public benchmarks, about 4,250 pages and 10 long documents.
What it does¶
| Function | What you get | Library | Server |
|---|---|---|---|
| Parse | Typed blocks (text, tables, form fields, figures, headers) with positions, Markdown, chunks for search | readanydoc.parse |
POST /parse |
| Extract | Your schema filled in, with a citation for every value | readanydoc.extract |
POST /extract |
| Split | Where each document starts and ends inside one combined PDF | POST /split |
|
| Classify | A document type label, with the text that supports it | POST /classify |
|
| Edit | PDF forms filled in, including flat and scanned ones | POST /edit |
|
| Jobs and webhooks | Every call as a background job, with a callback when it finishes | *_async, GET /job |
Two modes¶
| Mode | What runs | Cost per page |
|---|---|---|
engine (default) |
The model reads each page; ReadAnyDoc adds layout, form fields, table checks, zoomed re-reads of scans and word-level citations. Handwritten pages go to Claude Sonnet 5.5. | about $0.003 to $0.005 |
model-only |
One model read per page and nothing else | about $0.001 to $0.002 |
Read more in Modes. Reducto charges $0.010 a page for comparison.
Where to go next¶
- New here: Quickstart (Python).
- Replacing Reducto: Switch in one URL.
- Running it for a team: Docker and Configuration.
- Using a coding agent: Guide for coding agents.
- Curious how it was built: How we built it.