Skip to content
dialegein

Marker

PDF-to-Markdown converter built around a vision-language model, sold by Datalab as an open-source tool and a paid hosted API.

Jobs Extract Convert OCR

Since 2023

Operated by Endless Labs, Inc. dba Datalab

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 quality-first mode or a CPU-oriented fast mode. It is also the engine behind Datalab's commercial API, and the two 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 393 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.

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.

https://github.com/datalab-to/marker

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.

    What this hash proves, and what it does not

  • “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.

    What this hash proves, and what it does not

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.

Visit Marker Report a problem

Related reading

How this record was put together

Editorial review.
No editor has signed this record off. That is not the same as nothing having been checked, and the lines below say what has.
Source reading.
2 claims taken from the vendor's own pages, read between 22 September 2026 and 22 September 2026.
Website availability.
The vendor's site was last checked on 16 October 2026.
Behaviour testing.
We ran this ourselves. The file handling was watched directly.

Sources: github.com/datalab-to/marker (README, LICENSE, MODEL_LICENSE, pyproject.toml, repository file listing); api.github.com repository metadata; pypi.org/pypi/marker-pdf JSON API for release dates and version; datalab.to/pricing; datalab.to/terms/privacy; datalab.to/terms/end-user-terms; datalab.to/terms/terms-of-use; documentation.datalab.to (API overview, API limits and rate limiting, on-prem overview).