Skip to content
dialegein

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.

Jobs Extract Convert OCR

Since 2023

Operated by Endless Labs, Inc. dba Datalab

Visit Marker

Opens the vendor's own site.

Jobs covered

Open a task to see exactly what the vendor documentation supports.

Extract Browse all extract tools

extracting 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 tools

converting 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 tools

running 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.

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 21 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).