Marker
PDF-to-Markdown converter built around a vision-language model, published by Datalab as an open-source tool with a hosted API and managed platform.
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 structured content from documents with the open-source Marker tool, where the current README at https://github.com/datalab-to/marker says Marker converts documents to markdown, JSON, chunks and HTML, converts PDF, image, PPTX, DOCX, XLSX, HTML and EPUB files in all languages, formats tables, forms, equations, inline math, links, references and code blocks, extracts and saves images, removes headers, footers and other artifacts, works on GPU, CPU or MPS, and offers optional LLM assistance; the same README documents marker, marker_single and marker_gui entry points, the balanced and fast modes which default by device, a disable_ocr option that uses the pure text layer and skips equations and scanned pages, a page_range option, and converter classes for whole-PDF conversion or table-only extraction; surya is a declared dependency (surya-ocr at version 0.22.x in pyproject) and the README says Surya auto-spawns its inference server, using vllm on NVIDIA GPUs or the llama.cpp llama-server on CPU and Apple Silicon; hybrid mode is documented as an optional LLM call that merges tables across pages, handles inline math, formats tables and extracts values from forms; and the README's limitations section says very complex layouts with nested tables and forms may not work and forms may not be rendered well, with the LLM and force-OCR flags noted as mitigating those cases, while Datalab's managed platform is a separate hosted product running Chandra rather than this open-source tool
Convert
Browse all convert toolsconverting document formats with the open-source Marker tool, where the README at https://github.com/datalab-to/marker says Marker converts documents to markdown, JSON, chunks and HTML, and its marker and marker_single commands take an output format of markdown, json, html or chunks together with an output directory, a page range and an option to paginate the output; it converts PDF, image, PPTX, DOCX, XLSX, HTML and EPUB files in all languages; its converter classes are PdfConverter for the whole document and TableConverter for table-only extraction and conversion; it extracts and saves images alongside the converted output; and it offers marker, marker_single and marker_gui entry points plus a Modal deployment example for exposing marker through a web endpoint, with the documented outputs being extracted representations of the source rather than a converted PDF or Office document, so no PDF-to-PDF or Office round-trip conversion is claimed
OCR
Browse all ocr toolsrunning OCR with the open-source Marker tool, where the README at https://github.com/datalab-to/marker says Marker runs layout, OCR and table recognition through a single surya vision-language model served by a local inference server that is spawned automatically on first use with vLLM in Docker on NVIDIA GPUs and llama.cpp elsewhere, can be pointed at an already running server through SURYA_INFERENCE_URL, and uses that model for OCR in both balanced and fast modes and for layout in balanced mode; balanced mode re-OCRs the whole page whenever any of its embedded text is bad, while fast mode keeps model use minimal with equations, surgical block-level repair of garbled or empty blocks, and a single full-page pass only for pages that are scanned or mostly bad, so a clean digital document without equations never starts the server; tables are reconstructed from the PDF text layer in both modes, scanned tables come from the full-page OCR, and low-confidence reconstructions fall back to the model; force_ocr forces OCR on all pages, strip_existing_ocr keeps the digital text and strips out existing OCR text, and disable_ocr turns off all model calls including equations for pure text-layer extraction; the README says OCR runs through the surya VLM which is multilingual and points to the surya project at https://github.com/datalab-to/surya, whose own README describes a 650M parameter OCR model, also Apache-2.0 code with model weights under the model licence, claiming an internal benchmark of 91 languages and shipped separately from Marker as the surya-ocr package (0.22.1 on PyPI, and the marker pyproject pins surya-ocr 0.22.x); OCR-only extraction is available through the OCRConverter at marker.converters.ocr via Python or marker_single --converter_cls marker.converters.ocr.OCRConverter, and keep_chars keeps individual characters and bounding boxes for digital PDFs while pages that go through the model return block-level HTML without character boxes; the README limitations say very complex layouts with nested tables and forms may not work and forms may not be rendered well, with use_llm and force_ocr noted as mitigating those, and no conventional third-party OCR engine, hosted OCR service or accuracy guarantee is claimed here
Where your files are processed
No server involved
Two products share the name, and four distinct paths sit inside the first. The open-source package runs on your own machine, but it is not offline out of the box: model weights download on first use, and the GPU path spawns a vLLM inference server inside Docker with the CPU and Apple Silicon path needing the llama.cpp server binary. The optional --use_llm workflow is the one whose destination varies, and it depends on the service chosen: Gemini is the documented default, and the README also lists a local Ollama and configurable OpenAI-compatible endpoints, so it does not follow that every invocation uploads to somebody else's model. The Datalab hosted API is the second product and is a service in the ordinary sense. 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.
Two distinct products share the name. The open-source package runs entirely on your own machine - pip install marker-pdf, a CLI and a Python API, no account, no upload - but it is not offline out of the box: model weights download on first run, the GPU path spawns a vLLM server inside Docker with the NVIDIA Container Toolkit, the CPU and Apple Silicon path needs the llama.cpp server binary, and the optional --use_llm hybrid mode sends pages, and possibly images, to Google Gemini by default.
The Datalab hosted API at www.datalab.to is a separate hosted product that does upload, and its playground explicitly has no opt-out from having submissions used for training.
What it does
Marker converts PDF, image, PPTX, DOCX, XLSX, HTML and EPUB files into Markdown, HTML, JSON or RAG-ready chunks, formatting tables, forms, equations, inline maths, links, references and code blocks, and stripping running headers and footers. It reads the embedded PDF text where that text is good and falls back to OCR through the surya vision-language model on garbled or scanned pages, in either a balanced mode or a fast mode, defaulting to balanced on a GPU and to fast on CPU or Apple MPS.
Datalab documents its platform API as powered by marker and surya, and separately advertises a managed platform running the newer Chandra model, so the open-source tool and the hosted products overlap without being the same model everywhere, and the open-source package and the hosted services are licensed differently.
Best for
People converting complex or scanned documents into structured Markdown who want the choice of running the model locally or sending pages to a service.
Worth knowing
The licensing is a trap for companies: the code is Apache-2.0, but the model weights are under a modified AI Pubs Open RAIL-M licence that forbids any use by an entity with more than USD 5,000,000 in prior-year gross revenue or USD 5,000,000 in raised funding, and also forbids any use by an entity that offers a product competing with Datalab - so a commercial deployment needs a paid on-prem or API licence that the price list does not state.
Separately, the project's own README concedes that 'very complex layouts, with nested tables and forms, may not work' and that forms 'may not be rendered well', which is precisely where its headline accuracy claim is hardest to check.
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
- Windows · macOS · Linux · API · Self-hosted
- Website
- github.com
- Requires an account
- Not applicable
- Free tier
- Yes
- Watermark on the free tier
- Not verified
- Maximum file size
- 200 MB
- Batch processing
- Yes
- Data residency
- Not verified
- Open source
- Yes
- Self-hostable
- Yes
- Licence
- Apache-2.0 code, modified AI Pubs Open RAIL-M model weights
- Redaction
- No redaction feature
- Programmatic access
- Embeddable library · Command line · HTTP API
- Last availability check
- Responded in 381 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.
What that does not establish
The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist - it may be undocumented, or on a page the reading did not reach - but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote.
Recorded as such rather than presented as certainty.
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.
-
“Marker (this repo) beats **both** MinerU and docling on score *and* throughput at once: balanced matches Gemini/MinerU quality while running ~5× more pages/sec than MinerU, and fast trades a little quality for a big speedup.”
Checked by us - the source says this Read 22 September 2026
Confirmed verbatim: the sentence appears unaltered beneath a benchmark chart the vendor publishes itself, and the markdown bold around "both" is the vendor's. It is the most specific performance claim in this tier - a comparison against MinerU and docling on olmocr-bench, naming the benchmark and the axes - and it is still the vendor's own measurement of its own tool, run and published by the project.
The page states its throughput basis elsewhere (sustained concurrent pages per second on one B200 host, which it notes is the deployment-relevant number rather than single-stream latency), which is more methodological care than most benchmark claims in this index carry. Recorded as the project's claim; the benchmark was not reproduced.
Standing: Re-read and matched byte for byte
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- f01c0be3a0b86dda47bef7fe6a0d25903455e59c9354434686a1daddda308964
How we checked
Re-verified verbatim on 2026-09-22: https://github.com/datalab-to/marker re-rendered in headless Chrome with scripts/render-page.mjs and the claim's wording found in the rendered text. Originally verified on 2026-09-21. sourceHash is the SHA-256 of the re-rendered text, held as rv-github-com-datalab-to-marker-71687c31.txt.
-
“Our managed platform runs a version of our latest open source model, Chandra - higher accuracy than Marker, with zero data retention by default, SOC 2 Type 2, and custom BAAs.”
Checked by us - the source says this Read 22 September 2026
Confirmed verbatim: the sentence appears unaltered in the README. The thing a reader of this index most needs to know is its scope, which the sentence itself states and the claim's context obscures: it begins "Our managed platform", so zero data retention, SOC 2 Type 2 and custom BAAs describe the vendor's hosted commercial service, not the open-source library this index lists.
For a self-hosted marker there is no vendor in the data path at all, which is a stronger retention position than the sentence being verified and is a different fact. Two further limits: "zero data retention by default" carries its own qualifier, so retention is something the hosted product can turn on; and SOC 2 Type 2 and BAAs are vendor assertions - we have not seen a report or a signed agreement, and this tier cannot establish either from a README.
Recorded as the vendor's description; no control was run.
Standing: Re-read and matched byte for byte
Check it yourself: the source, the SHA-256, and how we checked
- From
- the text a browser renders
- SHA-256
- f01c0be3a0b86dda47bef7fe6a0d25903455e59c9354434686a1daddda308964
How we checked
Re-verified verbatim on 2026-09-22: https://github.com/datalab-to/marker re-rendered in headless Chrome with scripts/render-page.mjs and the claim's wording found in the rendered text. Originally verified on 2026-09-21. sourceHash is the SHA-256 of the re-rendered text, held as rv-github-com-datalab-to-marker-71687c31.txt.
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.