Surya
Open document OCR and layout model that returns text, reading order and tables as structured output.
Operated by Endless Labs, Inc. dba Datalab
Opens the vendor's own site.
Jobs covered
Open a task to see exactly what the vendor documentation supports.
Extract
Browse all extract toolsextracting layout-aware structured document content with Surya: taking image/PDF page inputs and returning JSON/HTML blocks with text, layout labels, reading order, bounding boxes/polygons, table rows/columns and mathematics as LaTeX/HTML. The scope records layout analysis, reading-order and table/math extraction output plus the local package/CLI; it does not claim searchable-PDF creation, PDF editing, redaction, signing, conversion to Office formats, hosted API use or benchmark accuracy, and it treats the schema/output as model-generated rather than a guaranteed document reconstruction
OCR
Browse all ocr toolsrunning text recognition on document page images/PDFs with Surya: loading a page, recognising text and returning JSON text with bounding boxes/polygons for each block/line, alongside language support reported for 91 languages. The scope records OCR/text recognition as a distinct output from layout/table extraction; it does not claim searchable-PDF creation, handwriting-specific accuracy, PDF editing, redaction, signing, accessibility validation or hosted OCR service, and accuracy figures are vendor benchmarks
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 package runs the model on the caller's own hardware. It auto-spawns a local inference server (vLLM on NVIDIA GPU or llama.cpp on CPU/Apple Silicon) by default, but SURYA_INFERENCE_URL can point it at a server elsewhere, so an operator can send documents off the machine by configuration.
Datalab's managed platform is a separate hosted product. Local processing is the documented default, not an absolute no-network guarantee.
What it does
Surya is a document OCR and analysis toolkit built on a 650-million-parameter vision-language model. It reads a page and returns structured JSON/HTML: text, layout labels and reading order for each block, table rows/columns, and mathematics as LaTeX/HTML.
It runs from the command line or Python, and needs an inference server - vLLM on a GPU or llama.cpp on CPU/Apple Silicon - which it starts locally by default; SURYA_INFERENCE_URL can point at another server. Inputs can be images, PDFs or folders of them; output is JSON (with optional page/block images), not a searchable PDF.
Current PyPI release is 0.22.1 (20 July 2026; Python >=3.10), code Apache-2.0 with OpenRAIL-M weights. The model reports OCR/layout/reading-order/table recognition for 91 languages; those are vendor benchmarks.
It is an OCR/layout toolkit, not a PDF editor, searchable-PDF writer, redaction/signing tool or hosted OCR service; Datalab's managed platform is separate.
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: code Apache-2.0, but the weights use a modified AI Pubs Open RAIL-M licence that is free for research/personal use and organisations under the stated revenue/funding threshold, restricts competing products/services, and requires a commercial licence from Datalab above that line. It expects an inference backend - vLLM/GPU or llama.cpp/CPU - and the package's performance figures assume a running server, not a laptop.
Output schemas have changed between versions (text_lines became blocks, table cells lost header/span attributes), so JSON consumers must budget for migrations. It recognises text/layout/tables but does not write a searchable PDF or edit/redact/sign PDFs; multilingual and accuracy figures are the vendor's own benchmarks, and handwriting coverage is not separately established.
Datalab's managed platform is a different hosted service, not the local package. SURYA_INFERENCE_URL can move inference off the machine, so local processing is configuration-dependent.
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 Surya code
Apache-2.0 for the Surya code; model weights under a modified AI Pubs Open RAIL-M licence (free for research, personal use and organisations under the stated funding/revenue threshold, with a competing-products restriction). Broader commercial use requires a licence from Datalab.
The package itself needs no account; Datalab's managed platform is a separate paid hosted product, not this package.
- Redaction
- No redaction feature
- Programmatic access
- Embeddable library · Command line
- Last availability check
- Responded in 399 ms 21 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 16 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 16 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.