compare
Nutrient is a Docling alternative that turns documents into data you can check, from a cloud API or SDKs on your own servers. Every extracted field comes back with a match label, plus its place on the page and a confidence score when it’s found. Docling is a free, open source toolkit that turns documents into Markdown and JSON on your own machine. Here’s where each tool is stronger, and what moving involves.
| Nutrient | Docling | |
|---|---|---|
| Core approach | Parse, extract, classify, and split documents, with four
processing modes, from fast text extraction to vision language
models. Every extracted value is matched back to the source. | Open source conversion of many file types into one document
model, exported as Markdown, HTML, or JSON. |
| Who runs it | ||
| Proof per value | ||
| Price |
Nutrient (formerly PSPDFKit) is a commercial document platform. Its Data Extraction API returns Markdown, page elements with coordinates, or JSON shaped to your schema. Every extracted field has a match label, plus its location and confidence score when it’s found, so your code knows which values to trust. Run extraction in Nutrient’s cloud, or on your own servers with the SDKs. The same vendor covers viewing, editing, redaction, and signing.
Docling is an open source toolkit started at IBM Research and now hosted by the LF AI & Data Foundation. It’s strongest when a Python team wants a free converter it can run and change itself. It reads many file types, runs fully offline, and feeds Markdown and JSON into retrieval-augmented generation (RAG) tools such as LangChain and LlamaIndex. Your team runs the models, the servers, and the upgrades.
ParseBench is a public parsing benchmark from LlamaIndex, the maker of LlamaParse: 2,078 pages from 1,211 real documents. Docling appears on its leaderboard as Docling-models (Hugging Face ID docling-project/docling-models). Here’s how Nutrient’s agentic mode compares, dimension by dimension.
| ParseBench (0–100) | Nutrient (agentic) | Docling-models | Higher score |
|---|---|---|---|
| Overall | 76.4 | 50.6 | Nutrient |
| Charts | 83.5 | 52.8 | Nutrient |
| Visual grounding | 77.5 | 66.1 | Nutrient |
| Semantic formatting | 64.7 | 1.0 | Nutrient |
| Content faithfulness | 84.5 | 66.9 | Nutrient |
| Tables | 72.1 | 66.4 | Nutrient |
Nutrient’s scores are its row on the public ParseBench leaderboard, Nutrient DWS (Agentic), which runs agentic mode at 18 credits per page. Nutrient submitted it using ParseBench’s own scoring against the live API. In our internal test of the latest engine on 14 October 2026, which includes improvements that haven’t reached the live API yet, agentic mode scored 82.8 overall and understand mode, at 9 credits, scored 64.0. Internal test scores aren’t independently verified. Docling: parsebench.ai, retrieved 15 October 2026. ParseBench doesn’t list the Docling version or settings it used. Semantic formatting checks bold text, strikethrough, superscript, subscript, and title levels. Docling’s FAQ says its PDF backends can’t yet set text styles, and in its standard pipeline PDF headings come out at one level by default. Gaps under 1 point are shown as level. Every mode and competitor is on the Data Extraction API benchmarks page.
opendataloader-bench is a public set of 200 PDFs with published ground truth for reading order, tables, and headings. On its leaderboard, the Docling entry is open source Docling. The Nutrient entry is the standard engine of the free Nutrient PDF-to-Markdown CLI, not the Data Extraction API. Here are both, metric by metric.
| opendataloader-bench (0–1) | Nutrient (PDF-to-Markdown CLI, standard engine) | Docling (open source) | Higher score |
|---|---|---|---|
| Overall | 0.885 | 0.882 | Level |
| Reading order (NID) | 0.925 | 0.898 | Nutrient |
| Table structure (TEDS) | 0.708 | 0.887 | Docling |
| Heading structure (MHS) | 0.819 | 0.824 | Level |
Source: opendataloader.org leaderboard, retrieved 15 October 2026. The board’s runs used Docling 2.84.0 (6 April 2026) and PDF-to-Markdown CLI 1.0.1 (30 April 2026), according to the opendataloader-bench repository. Scores run from 0 to 1, and higher is better. Gaps under 0.01 count as level. On the public opendataloader-bench leaderboard, the PDF-to-Markdown CLI scores higher than open source Docling on reading order. The Docling entry scores higher on table structure. The two are level on overall and heading structure. See three of these documents side by side in Where PDF parsers fail: Docling vs. Nutrient on three real documents.
Our internal test of the latest engine ran on the same 200 opendataloader-bench PDFs on 13 October 2026. The Data Extraction API’s understand mode scored 0.934 overall and 0.939 on table structure. Internal test scores aren’t independently verified. Every mode is on the benchmarks page.
Capability by capability, including where Docling wins. Docling facts come from Docling’s official documentation as of version 2.143.0 (27 October 2026).
| Nutrient | Docling | Winner | |
|---|---|---|---|
| Price and license | Credits per page, with 5,000 free credits every month. The
SDKs are sold separately. | Free. The code is MIT-licensed. Each AI model it downloads has
its own license. | Docling |
| Setup | Cloud API: an API key and one HTTPS request. No models or GPUs to
manage. | pip install docling also installs PyTorch. Models download
on first use, or ahead of time for offline use. | Nutrient |
| Offline use | Once their models are downloaded, the Python and Java SDKs run
optical character recognition (OCR), layout analysis,
classification, and splitting with no external calls. Schema
extraction needs a model you choose, local or hosted. | Runs fully offline once its models are on disk. Calls to remote
services stay off unless you turn them on. | Draw |
| Markdown tables | Tables come back as HTML inside the Markdown, so merged cells and header cells keep their spans. | Markdown tables flatten merged cells: The text stays in the first
cell, and the rest of the span comes out empty. Docling’s documentation recommends HTML or JSON export when spans matter. | Nutrient |
| Page elements with coordinates | Paragraphs, tables, charts, formulas, pictures, barcodes, and
key-value pairs, each with a bounding box, page, reading order,
and confidence score. | Each item has a page number and bounding box, in reading order,
with lossless JSON export. | Draw |
| Confidence scores | A score on each element, table cell, and key-value pair, and on extracted fields when available, plus optional word-level scores. | Its conversion confidence report grades each page and the
document for layout, OCR, and text. The table score isn’t implemented yet. | Nutrient |
| Schema extraction | JSON shaped to your schema for the whole document. Each field has
a match label, plus its page, bounding box, and confidence score
when it’s found. | DocumentExtractor fills a template from PDFs and images,
with results page by page. Docling labels it beta. Fields have no bounding box or confidence score. | Nutrient |
| Charts in PDFs and images | Charts come back as data tables by default, in understand and
agentic modes with spatial output. | Chart extraction turns bar, pie, and line charts into tables. It’s off by default and
uses the Granite Vision model. Charts in Office files are read from
the file’s own data. | Nutrient |
| Scans and handwriting | OCR in more than 100 languages, with automatic language
detection. For scans, the engine runs OCR alongside a vision model
and settles disagreements. Handwriting comes back as its own
element, with a confidence score. | OCR is on by default, with engines such as RapidOCR, EasyOCR,
Tesseract, and macOS Vision. Docling’s CLI reference sends handwriting to its vision language model pipeline, because standard OCR won’t
handle it. | Draw |
| Forms and key-value pairs | Key-value pairs with a confidence score for the key, the value,
and the link between them. Checkbox states come back as roles. | Detects checkboxes, form regions, and key-value regions. For PDFs
and scans, typed key-value output goes through the beta extractor. | Nutrient |
| Classification and splitting | Score a document against labels you send, with no training. Find
where each document starts in a merged file. The Python and Java
SDKs do both on your servers, and the .NET SDK classifies. | Classifies pictures, such as charts, logos, and signatures, but
not whole documents. No splitting of merged files. | Nutrient |
| Input formats | PDF, images, Word, Excel, and PowerPoint files. XLSX workbooks
are read cell by cell, without OCR. | PDF, Office files, HTML, Markdown, LaTeX, EPUB, email, images,
audio, video, and XML formats such as Journal Article Tag Suite
(JATS) and eXtensible Business Reporting Language (XBRL). | Docling |
| Large documents | Up to 150 MB per direct upload, or 50 MB from a URL. Synchronous requests get five minutes of processing, and asynchronous runs get 15. Split long files or send page ranges. | No built-in page cap. You set page, file-size, and time limits
yourself. | Docling |
| RAG chunking | Markdown and page elements your code can chunk by heading. See
the RAG ingestion example. | Built-in hierarchical and hybrid chunkers, plus integrations with LangChain, LlamaIndex, Haystack, and CrewAI. | Docling |
| SDK languages | Call the REST API from any language. In-process SDKs for Python,
Java, and .NET. | A Python library and CLI. Java and TypeScript clients call a
docling-serve server. The project’s Rust port, docling.rs, runs Docling’s models in process, with bindings for Python,
Node.js, C#, Go, Java, Swift, and more. | Different approaches |
| Support | Commercial support from Nutrient. SDK licenses include support
under a standard service-level agreement (SLA). | Community help in GitHub Discussions. The MIT license provides
the software as is. IBM’s hosted version includes support on its
subscription plan. | Nutrient |
For some teams, Docling is the right tool. Keep it when these points matter most. You can also use both: Docling for clean, born-digital files, and Nutrient for scans, charts, dense tables, and fields that need proof.
Docling’s code is MIT-licensed. You can read it, change it, and ship it without a license fee.
Docling runs fully offline once its models are on disk, with no calls to remote services by default.
HTML, EPUB, email, LaTeX, audio, video, and XML formats such as JATS and XBRL.
Built-in chunkers and integrations with LangChain, LlamaIndex, Haystack, and CrewAI.
Docling and Nutrient both run on your own servers. The difference is how much you build and run yourself.
| Option | Who runs the servers | What you get | Where documents go | Support |
|---|---|---|---|---|
| Docling library | You | Conversion to Markdown, HTML, and JSON; chunkers; a beta
extractor | Your machine | Community |
docling-serve | You. You run the API server and workers, and you set its API key,
limits, and scaling. | A REST API for conversion and chunking. No extraction endpoint. | Your servers | Community |
| Docling for IBM watsonx | IBM, on Amazon Web Services (AWS) | Hosted Docling, with the same REST API as docling-serve | IBM’s AWS instance | Subscription plan only |
| Nutrient Data Extraction API | Nutrient | Parse, extract with per-field citations, classify, and split | Nutrient’s cloud, on AWS in Frankfurt. Extraction and agentic
parsing may run some AI inference in the US. On the free plan,
Nutrient can keep inputs to improve the product. | Nutrient support |
| Nutrient SDKs (Python, Java, .NET) | You, inside your own application | OCR, layout, tables, key-value pairs, and classification run
locally. Python and Java also split files. Schema extraction uses
a model you choose. | Your servers, once the models are downloaded. Nothing leaves
unless you choose a hosted AI model. | Included with the SDK license |
Docling’s documentation says: “Running the API server yourself means operating infrastructure.” IBM describes its hosted version on its product page. Nutrient’s Python and Java SDKs are sold separately; see the .NET parse guide for the .NET SDK. Data handling for the cloud API: privacy guide.
Docling focuses on turning documents into data for AI. Nutrient is a full document platform, so the same vendor also powers the document work people do in your application. That means one vendor instead of two; the SDKs are sold separately.
| Nutrient | Docling | |
|---|---|---|
| Document viewer and rendering | ||
| Annotations and markup | ||
| Redaction | ||
| eSignatures | ||
| Conversion and generation | ||
| Mobile SDKs |
Docling’s code is free. You pay for hardware and for the time to run it. Prices below are list prices.
| Nutrient | Docling (open source) | Docling for IBM watsonx | |
|---|---|---|---|
| Software | Data Extraction API, billed in credits per page | Free, MIT license | Managed service on AWS |
| Free usage | 5,000 credits a month, about 277 to 3,333 parse pages in auto, depending on the mode selected for each page | No usage limits. You supply the hardware. | Free trial |
| Parsing | $1.50 to $18 per 1,000 pages in auto; $9 in understand; $1 to $18 across explicit modes | Your CPU or GPU time | $4 per 1,000 pages of PDFs and images, pay as you go |
| Schema extraction | $7.50 to $24 per 1,000 pages in auto; $15 in understand; $7 to $24 across explicit modes | A beta extractor that runs on your hardware | IBM lists key-field extraction. Its pages don’t describe output shaped to your schema with a
location per field. |
| Support | Support form for the API. SDK licenses include support. | Community | Included on the subscription, from $3,999.60 a year for 1,000,000
pages. Not included on pay as you go. |
Nutrient prices use the Pro plan, $500 a month for 500,000 credits (Starter costs 18% more). Extraction includes parsing. Auto routes each page to structure, understand, or agentic and bills at that mode’s rate. The lowest explicit-mode rates use text mode, which skips OCR and is not selected by auto. Docling’s hardware cost depends on your setup; its documentation publishes throughput on specific GPUs. IBM prices are from ibm.com/products/docling, checked 16 October 2026; one resource unit is 1,000 pages. Full Nutrient rates: Nutrient pricing.
Extract Studio is a desktop app that runs Nutrient’s extraction engine on your Mac. With an AI model running locally through Ollama or LM Studio, your documents stay on the machine while you compare results. It runs on Apple silicon Macs. You need a Nutrient account, and each run uses Data Extraction credits.
Nutrient’s PDF-to-Markdown CLI converts PDFs on your computer and doesn’t upload them. Standard mode is free and needs no account. Vision mode handles scans, handwriting, and complex tables. With a Nutrient account, it works offline for up to an hour after each connection. With a CLI license key, it runs fully offline once its models are downloaded.
| Local run (0–1) | Nutrient Vision | Docling |
|---|---|---|
| Extraction accuracy | 0.933 | 0.892 |
| Reading order | 0.959 | 0.905 |
| Table structure | 0.938 | 0.933 |
| Heading levels | 0.868 | 0.829 |
Nutrient ran both tools on 200 PDFs from the DP-Bench corpus used by opendataloader-bench, on 6–7 July 2026. The run used Nutrient Vision 1.3.1 and Docling 2.110.0 on an Apple M3 Ultra (no discrete GPU). Table structure is level: The gap is less than 0.01. Standard mode scored 0.739 on table structure, lower than Docling. Methodology.
Most Docling calls map to one Data Extraction API endpoint. What changes most is who runs the models: Nutrient does, or the SDK does inside your application.
| Docling | Nutrient |
|---|---|
DocumentConverter → export_to_markdown() | POST /extraction/parse with Markdown output. Tables come
back as HTML, with merged cells kept. To convert PDFs on your own servers,
the Python SDK has export_as_markdown(). |
export_to_dict() (JSON with prov boxes) | POST /extraction/parse with spatial output: output.elements[], each with bounds, page, readingOrder, and confidence. Coordinates start at the top-left corner of the page. |
DocumentExtractor with a Pydantic template | POST /extraction/extract with a JSON Schema. Values arrive
in output.data, and each field’s citation in output.metadata. |
ConversionResult.confidence page grades | A confidence on each element, plus a match label on each extracted field, with a confidence when
one is available. Send fuzzy_match and not_found fields to review. |
| Chunkers such as HybridChunker | Chunk the Markdown by heading in your own code. See the RAG ingestion example. |
| Picture description, picture classes, and chart extraction | Pictures come back with a classification, and agentic mode adds a
description. Charts come back as data tables in understand and
agentic modes with spatial output. |
| Running docling-serve | Nothing to deploy for the API. To keep documents on your servers,
run the Python, Java, or .NET SDK in your own service. |
The extract endpoint accepts a subset of JSON Schema: an object root with type, properties, required, items, description, enum, and date formats. Flatten schemas that use $ref, anyOf, oneOf, or validation ranges before you send them. If you build schemas from Pydantic models with model_json_schema(), inline nested models ($defs and $ref) and replace Optional fields (anyOf with null). Also remove the title, default, and date-time format keys that Pydantic adds. Limits are 128 KB, 2,000 schema nodes, 200 properties per object, 50 enum values per field, and five levels of nesting. See define a schema.
Sign up and get 5,000 free credits every month, with no credit card required.
Use the files you used to judge Docling, including scans, charts, and dense tables. Start with auto, which picks a mode for each page.
Compare extracted numbers with the source page. Use each field’s citation to find it, and send fields marked fuzzy_match or not_found to review.
Move a document type once it meets your accuracy bar. Keep Docling where it already does.
Start on the free plan and test your own documents with 5,000 credits a month. When you’re ready to move a production workload from Docling, talk to us: Enterprise teams that sign a Data Extraction agreement get 3,000,000 additional credits, about six months of Pro plan usage, to cover the migration.
Every extracted field gets a match label, plus its location and confidence score when it’s found, so your code can route uncertain values to review.
Charts come back as data tables, handwriting as text, and merged table cells keep their spans.
Call a cloud API instead of running PyTorch, GPUs, and an API server. Or run the SDK when documents must stay on your servers.
Classify documents and split merged files. Then view, redact, and sign them with the same vendor.
Get 5,000 free Data Extraction API credits every month, with no credit card required. Start with auto. Then pick a fixed mode once you know what you need.
Docling is an open source document conversion toolkit. The AI for knowledge team at IBM Research Zurich started it, and it’s now a graduated project of the LF AI & Data Foundation. It converts PDF, Office files, HTML, images, audio, and more into one document model, and it exports Markdown, HTML, JSON, DocTags, LaTeX, WebVTT, and more. The code is MIT-licensed.
Yes. Docling’s code is free under the MIT license. Each AI model it downloads has its own license, so check the ones you turn on. Running it costs hardware and engineering time. IBM also sells a hosted version, Docling for IBM watsonx, at $4 per 1,000 pages on its pay-as-you-go plan (list price, checked 16 October 2026).
Yes, if you need data you can check, not only Markdown. Nutrient gives every extracted field a match label, plus its page, bounding box, and confidence score when it’s found. It also reads charts, scans, and handwriting. On ParseBench, Nutrient’s agentic mode scores higher than Docling (Docling-models) overall and on charts, visual grounding, semantic formatting, content faithfulness, and tables. Scores are from the public ParseBench leaderboard, retrieved 15 October 2026. Docling is the better fit when you want free, open source code that you run and change yourself.
Docling itself is a Python library and CLI. To call it over HTTP, you run docling-serve, a REST API server, on your own infrastructure. You also set up its API key, limits, and scaling. IBM runs a hosted version with the same REST API. Nutrient hosts its own Data Extraction API, which also adds schema extraction, classification, and splitting.
Yes, with limits. Docling’s DocumentExtractor fills a template from PDFs and images, with results page by page, and Docling labels it a beta feature. The extracted fields have no bounding box or confidence score. Docling’s separate docling-agent package, still in active development, also extracts fields with an AI model. Nutrient’s extract endpoint returns JSON shaped to your schema for the whole document. Each field has a match label, plus its location and confidence when it’s found.
Yes. Once their models are downloaded, the Nutrient Python and Java SDKs run OCR, layout analysis, classification, and splitting on your servers with no external calls. They’re sold separately. Schema extraction uses an AI model you choose, and a local OpenAI-compatible server keeps documents on your machine. The .NET SDK runs parse and extract with the same option names as the cloud API. The Data Extraction API itself is a managed cloud service.
To test Nutrient on your own documents before deciding, use Nutrient Extract Studio for macOS, a desktop app that runs the same extraction engine on an Apple silicon Mac. With an AI model running on that Mac, your documents stay on it. The app needs a Nutrient account and an internet connection to sign in, and runs use Data Extraction credits.
Docling for IBM watsonx is IBM’s hosted Docling: the same conversion, run for you on AWS, with the same REST API as docling-serve. IBM lists key-field extraction, but its pages don’t describe output shaped to your own schema with a location and confidence score per field. Nutrient adds that, plus document classification and splitting. You can also run Nutrient on your own servers with the SDKs.
Yes. Keep Docling for clean, born-digital files where it meets your bar. Send scans, charts, dense tables, and documents that need field-level proof to the Data Extraction API. Text mode costs 1 credit per page for files that don’t need OCR. For local conversion without Python, Nutrient’s PDF-to-Markdown CLI is free in standard mode.
Map Docling’s conversion and extraction calls to Nutrient’s /extraction/parse and /extraction/extract, and turn your Pydantic templates into JSON Schemas. Then run your Docling test set through both. On the free plan, Nutrient can keep inputs to improve the product, so test with files you’re allowed to share, or ask about an evaluation plan before you upload confidential documents (see the privacy guide). When you’re ready to move a production workload, talk to us about the enterprise switch offer. Enterprise teams that sign a Data Extraction agreement get 3,000,000 additional credits.
Yes, Nutrient’s Data Extraction API is the parsing layer of a full document platform. Connect its output to Nutrient’s Document Web Services (DWS) APIs for conversion, redaction, generation, and signing, and to Nutrient SDKs when people need to review, edit, annotate, or approve documents in your application.
EXPLORE
Unstructured.io is a strong RAG-ingestion platform with partitioning, chunking, schema extraction, and 40+ connectors. Nutrient adds a match label on every extracted field, plus viewing, editing, signing, and conversion from the same vendor.
LlamaParse scores higher than Nutrient on ParseBench, LlamaIndex’s own benchmark. Nutrient adds a match label on every extracted field, a viewer to check each citation on the page, and viewing, editing, and signing from the same vendor.
Reducto is a strong agentic extraction platform, with webhooks and batch processing in its cloud API. Nutrient is the broader document platform: a match label on every extracted field, plus viewing, editing, signing, and conversion from the same vendor.
Start with 5,000 free Data Extraction API credits per month, with no credit card required. Parse and extract source-grounded data your AI workflows can trust, on one platform.