Surya
Open document OCR and layout model that returns text, reading order and tables as structured output.
Operated by Endless Labs, Inc. dba Datalab
Where your files are processed
No server involved
An OCR and layout model that runs on your own hardware. It does need an inference backend — vLLM or llama.cpp — which it starts as a local process, and the documentation allows pointing it at a server elsewhere through an environment variable, but no vendor service receives the document by default. That is a property of the library itself: what an application built with it does with your file depends on that application, not on this.
The model and the code run on your own hardware. It does need an inference server — vLLM or llama.cpp — which it will spawn as a local process by default, but the environment variable SURYA_INFERENCE_URL can point it at a server somewhere else, so an operator can send documents off the machine by configuration. Datalab also sells a managed platform, which is a separate hosted product rather than this package.
What it does
Surya is a document OCR and analysis toolkit built on a single 650-million-parameter vision-language model. It reads a page and returns structured JSON or HTML: the text, a layout label for each block, the reading order, table rows and columns, and mathematics as LaTeX. It runs from the command line or from Python, and it needs a local inference server — vLLM on a GPU or llama.cpp on a CPU — which it will start for you. Its sibling Marker turns the same output into Markdown, and both come from Datalab.
Best for: Teams building a document pipeline who need reading order and table structure rather than raw text, and who are willing to run a model to get it. It is built for hard pages: multi-column layouts, scanned tables and old mathematics, on documents in any of the 91 languages the vendor benchmarks.
Worth knowing: The licence is split, and the half that matters is the model. The code is Apache-2.0, but the weights carry a modified AI Pubs Open RAIL-M licence that is free for research and personal use and for companies under a revenue and funding threshold, and that additionally restricts entities offering competing products or services — so a growing business can be using it acceptably one year and be out of licence the next, and the remedy is a commercial licence from Datalab. It also expects an inference backend: the documentation assumes you will run vLLM or llama.cpp, which means a GPU for realistic throughput, and the package's own performance figures are measured against a running server rather than a laptop. Expect the output schema to move: the vendor's own release notes describe a rewrite in which text_lines became blocks, the layout output changed shape and table cells lost their header and span attributes, which is a migration for anything reading the JSON. And the accuracy numbers, including the benchmark it tops, are the vendor's own.
Details, and where each comes from
Vendor statements, our own reading of their pages, and the things nobody has established yet, each answered separately. Where we have not confirmed something it says so rather than guessing, and a row nobody has established is greyed out.
- Versions covered
- Linux · Windows · macOS · Self-hosted
- Website
- github.com
- Requires an account
- Not applicable
- Free tier
- Yes
- Watermark on the free tier
- Not verified
- Maximum file size
- Not verified
- Batch processing
- Yes
- Data residency
- Self-hosted
- Open source
- Yes
- Self-hostable
- Yes
- Licence
- Apache-2.0 for the code; model weights under a modified AI Pubs Open RAIL-M licence (free for research, personal use and organisations under US$5M funding or revenue)
- Redaction
- No redaction feature
- Programmatic access
- Embeddable library · Command line
- Last availability check
- Responded in 356 ms 16 October 2026
Checked automatically by our own runner, not reported by the vendor. 100% of our last 30 checks got a response.
What the redaction verdict rests on
From the vendor's own documentation, read 22 September 2026. Not tested by us.
“Surya is a 650M param OCR model with these features: Accuracy - scores 83.3% on olmOCR-bench (top under 3B params); Layout analysis (table, image, header, etc.) with reading order; Table recognition (rows + columns)”
What that does not establish: Recorded as `none` on absence: Surya reads page images and emits text, layout, reading order and tables as JSON or HTML, and nothing in its documentation describes editing a PDF or removing content from one. It is a reader, and it does not write PDFs. What it does not establish: anything about the safety of its output. The reading text it extracts is the document's content, so this is an extraction tool in the same sense as Tika and pdfminer.six, and the same warning applies — reading a document is not redacting it.
What the vendor says
Claims are labelled rather than repeated as fact. Where we have checked something ourselves, it says so and shows when. Checked means we read the vendor's own page and it says what we recorded — not that we tested the behaviour, unless the note says we did.
-
“The Surya code is licensed under Apache 2.0. The model weights use a modified AI Pubs Open Rail-M license (free for research, personal use, and startups under $5M funding/revenue). For broader commercial licensing of the model weights, visit our pricing page here.”
Checked by us — the source says this Read 1 October 2026
Confirmed. The quoted text appears in the rendered page as read on 2026-10-01. This claim was carried as reported rather than checked until this read.
Standing: Not re-read against the live source
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- e9dd0fb4e15ae2a51f34dcc797718a69ebe9168be85dafebb59b8a0d7f4b39e5
How we checked: Read as rendered text in headless Chrome on 2026-10-01 and saved to the evidence archive, so the read can be repeated against the same file. Comparison ignores case, punctuation and hyphenation, which is why "open-source" on the record matches "open source" on the page.
-
“Surya is a 650M param OCR model with these features: Accuracy - scores 83.3% on olmOCR-bench (top under 3B params)”
Checked by us — the source says this Read 1 October 2026
Confirmed. The quoted text appears in the rendered page as read on 2026-10-01. This claim was carried as reported rather than checked until this read.
Standing: Not re-read against the live source
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- e9dd0fb4e15ae2a51f34dcc797718a69ebe9168be85dafebb59b8a0d7f4b39e5
How we checked: Read as rendered text in headless Chrome on 2026-10-01 and saved to the evidence archive, so the read can be repeated against the same file. Comparison ignores case, punctuation and hyphenation, which is why "open-source" on the record matches "open source" on the page.
Each claim is quoted from the vendor's own pages. This section describes what we have and have not checked — it is not a judgement about anyone.
Sponsorship is distribution, not an endorsement or a promise of search rankings, AI citations, traffic, or sales. This listing is a free entry, compiled from published sources.
Related reading
- Which PDF tools keep your file on your machine — what we count as processing on your own device.
- Open source PDF tools, and what their licences require — what open source does and does not tell you.