Managed Docling SaaS announced by IBM — try Docling for IBM watsonx for free

Open-source document intelligence

Your documents are more than text.

Docling converts messy documents — PDFs, Office files, HTML, images and audio — into structured data, detecting tables, formulas, reading order, OCR and much more.

Install it locally and try it on your own documents. Move the same workflow to a service or private on-prem capacity when you are ready.

pip install docling
document.md
## 5 EXPERIMENTS

The primary goal of DocLayNet is to obtain
high-quality ML models capable of accurate
document-layout analysis [...]

|                | human | MRCNN | FRCNN | YOLO |
|----------------|-------|-------|-------|------|
| Caption        | 84-89 |  68.4 |  70.1 | 77.7 |
| Table          | 77-81 |  82.2 |  82.2 | 86.3 |
| All            | 82-83 |  72.4 |  73.4 | 76.8 |
  1. Source page
  2. Layout detection
  3. Reading order
  4. Structured output

Start in under a minute

Full documentation

No account, no upload, no proprietary SDK. Install the package and convert a document on the machine in front of you.

pip install docling

Requires Python 3.10 or newer. Models are downloaded once and cached, after which conversion runs fully offline.

convert.py
from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("report.pdf")

print(result.document.export_to_markdown())
pip install docling Python API reference

Structure, carried through conversion

All supported formats

One page of a real academic paper: two columns, a complex table, a figure with its caption, and a running page header. Switch layers to see what Docling recovers — and what it would cost you to lose.

Reading order, not page order

A two-column page does not read top-to-bottom. Docling resolves the sequence a human would follow and stores components in that order, so text never interleaves across columns.

Markdown
## 5 EXPERIMENTS

The primary goal of DocLayNet is to obtain high-quality ML models
capable of accurate document-layout analysis on a wide variety of
challenging layouts. [...]

## Baselines for Object Detection

In Table 2, we present baseline experiments (given in mAP) on Mask
R-CNN, Faster R-CNN, and YOLOv5. [...]
Documentation
Source
DocLayNet: A Large Human-Annotated Dataset for Document-Layout Segmentation
Regenerate
docling https://arxiv.org/pdf/2206.01062 --to md --to json

Convert once, reuse forever

All formats

PDFs run the world. They also lock away your knowledge in a printer language. Layout, tables, reading order and scanned pages — Docling gets those right where most tools give up and hand back a wall of text.

It also reads websites, Office files, images and audio the same way. Everything lands in DocLang, one open, high-fidelity document format, and the detail that lives in each original file — a Word file's section structure or review comments, a diagram in your Excel spreadsheet — comes across intact instead of being flattened or dropped.

Any format in

PDFs, websites, Office formats, scanned images and audio — including all the hard parts, not just the easy ones.

  • PDF
  • DOCX
  • PPTX
  • XLSX
  • HTML
  • Images
  • Audio

DocLang

One open, standardized form for every document. Everything the conversion found — structure, tables, reading order and each format's own detail — kept together in one place.

doclang.ai →

Any format out, anytime

Turn a document into Markdown, HTML, JSON or context-informed chunks whenever a later step needs it — produced from DocLang, without converting the original file again.

  • Markdown
  • HTML
  • JSON
  • Text

Built for structure, not just text

Structure, not a text dump

Hierarchy, layout, reading order, tables, formulas, pictures and provenance all survive conversion. What the page meant is still recoverable after parsing.

See what survives

One document model

Many input formats converge on the same expressive DoclingDocument, serializable to Markdown, JSON, HTML and DocLang. One shape to write your application against.

DoclingDocument

Private by design

Everything runs on your machine by default. No account, no upload, no outbound call — then the same pipeline moves to a private environment or managed infrastructure on your terms.

Deployment options

Ready for AI applications

Structure-aware chunking, exports and an MCP server connect Docling to RAG, agents, extraction and automation without a bespoke adapter.

Real workflows

One document or a million, in the shape you need

Whether it's one document right now or all of them at once, a standard format or fields extracted into your own schema — Docling is ready for it.

Conversion for search
Extraction for databases
One at a time instant result

Interactive conversion

A user uploads a document and expects structured Markdown back while they wait. Content-preserving, single-document, latency-bound.

converter.convert(source)

On-demand extraction

Pull a defined set of fields out of one PDF or image against a schema, in time to answer a request or drive an agent step.

extractor.extract(source, template=Invoice)
In bulk high throughput

Corpus ingestion

Convert an archive once, chunk it, embed it, and keep provenance so retrieved passages trace back to the exact region on the page.

converter.convert_all(sources)

Batch structuring

Run a fixed schema across a population of PDFs or images and land typed rows in a warehouse rather than blobs of text.

for r in extractor.extract_all(sources, template=Invoice): ...

From laptop to production, without a rewrite

Compare deployments

Prove the pipeline locally, keep the same document model and configuration, then change where the processing runs.

  1. Local library

    Prove extraction quality and learn the document model.

    Python package, CLI, examples and notebooks with reproducible output.

    Install locally
    converter = DocumentConverter()
    result = converter.convert(source)
  2. Docling Serve

    Wrap the pipeline in a service and test team workflows.

    Containers, an HTTP API and an optional UI, running inside your network.

    Deploy a local service
    client = DoclingServiceClient(url='http://docling.internal:5001')
    result = client.convert(source)
  3. Managed & private — commercial

    Add managed capacity or run privately, operated for you.

    IBM's commercial offering: managed SaaS or private / on-prem deployment, with the same document model and API.

    Docling for IBM watsonx
    client = DoclingServiceClient(url=MANAGED_ENDPOINT, api_key=KEY)
    result = client.convert(source)

What people build with it

More use cases

RAG and enterprise search

RAG with visual grounding

The problem

Flat text extraction destroys the two things retrieval depends on: where a passage sits in the document, and where it came from on the page. Chunks split mid-table and answers cannot be traced.

Why Docling

Every element and chunk keeps its page and bounding-box coordinates, so a retrieved passage points at the exact region on the page. You can highlight where an answer came from, not just cite a page number.

What it uses

  • Reading order
  • Structure-aware chunks
  • Tables
  • Figures
  • Provenance

Path to production

  • Batch processing
  • Concurrency
  • Managed queues
  • Private deployment
recipe.py
from docling.document_converter import DocumentConverter
from docling.chunking import HybridChunker

doc = DocumentConverter().convert("report.pdf").document

for chunk in (chunker := HybridChunker()).chunk(doc):
    embed(
        text=chunker.contextualize(chunk),
        metadata={"doc_id": chunk.meta.origin.binary_hash},
        # for resolving chunk.meta.doc_items page/bbox info
    )
RAG examples

Agents and automation

Give an agent a document it can actually read

The problem

An agent handed raw PDF bytes or a wall of stripped text has to guess at structure on every step. Tool calls become unreliable exactly where the document is hardest.

Why Docling

Docling exposes documents to agents through MCP, so reading, converting and extracting are typed tool calls against a stable document model instead of prompt-level parsing.

What it uses

  • MCP server
  • Schema-based extraction
  • Machine-readable output

Path to production

  • API reliability
  • Job orchestration
  • Governance
recipe.json
{
  "mcpServers": {
    "docling": {
      "command": "uvx",
      "args": ["--from", "docling-mcp", "docling-mcp-server"]
    }
  }
}
Docling MCP

Choose how you run it

Deployment detail

Python library

Local development and custom pipelines

Install Docling

CLI

Batch conversion and scripts

View CLI

Docling Serve

Internal APIs and production services

Deploy Serve

Managed SaaS

Elastic capacity and managed operations

Scale with Docling

On-prem / private cloud

Security, residency, private infrastructure

Deploy privately

It already fits your stack

All integrations

Docling is a library, not a platform you have to move into. It plugs into the frameworks, agents, pipelines and infrastructure you are already running.

Frameworks

Drop Docling in as the document loader for an existing AI stack.

Agents and MCP

Expose document reading to agents as typed tool calls.

Data and pipelines

Prepare, label and transform document corpora at volume.

Platforms and infrastructure

Run the same pipeline as a service, on a cluster, or on the edge.

Search and retrieval

Land structured chunks where your application reads them.

Give your AI the document structure it is missing.

Start on your laptop with one command. Nothing to sign up for, nothing to upload, no proprietary SDK to adopt before you can judge the output.

pip install docling