Docling website screenshot

Docling

Docling is an open-source toolkit for parsing diverse document formats — PDF, DOCX, PPTX, XLSX, HTML, images, audio, LaTeX, plain text — into a unified, lossless DoclingDocument representation that downstream generative AI and RAG systems can consume directly. It pairs IBM Research's DocLayout and TableFormer models with the GraniteDocling visual language model and pluggable OCR engines, runs entirely locally for air-gapped use, and ships as a Python library and CLI, a FastAPI HTTP service (docling-serve), an MCP server (docling-mcp), and a Kubernetes operator. Originally created by IBM Research Zurich; now hosted by the LF AI and Data Foundation under the MIT license.

16 APIs 19 Features
DocumentsParsingPDFOCRLayoutTablesRAGLLMOpen SourceIBM ResearchLF AI and DataMCPKnowledge GraphGenerative AI

APIs

Docling Python Library

The core Docling Python library and `docling` CLI. Parses PDFs, DOCX, PPTX, XLSX, HTML, images (PNG/TIFF/JPEG), audio (WAV/MP3), WebVTT, LaTeX, and plain text into a unified `Do...

Docling Serve REST API

Docling Serve exposes the Docling pipeline as an HTTP service. Synchronous endpoints `POST /v1/convert/source` and `POST /v1/convert/file` accept URL- or upload-sourced document...

Docling MCP Server

Model Context Protocol server that exposes Docling document parsing as MCP tools so Claude, Cursor, Gemini, and other MCP-aware agents can convert PDFs, Office files, and images...

Docling Core Types

Canonical `DoclingDocument` data model and serialization primitives — text, tables, pictures, layout, hierarchy, bounding boxes, provenance — shared by the Docling library, Docl...

Docling Parse PDF Extractor

Native C++ PDF parsing engine used by Docling to extract text with precise coordinates from programmatic (non-scanned) PDF files. Distributed as a Python extension.

Docling IBM Models

Open-weight IBM Research models that power Docling's understanding pipeline — DocLayout (layout detection and reading order), TableFormer (table structure), code- and formula-re...

Docling Eval

End-to-end evaluation framework for document parsing models and services. Provides standard datasets and metrics for layout, tables, OCR, and reading-order quality so teams can ...

Docling Synthetic Data Generation

Tools for synthesizing labeled document data from real corpora — useful for fine-tuning layout, table, and reading-order models, and for stress-testing downstream RAG pipelines.

Docling Graph

Transform unstructured documents — once normalized to `DoclingDocument` — into validated, rich, queryable knowledge graphs. Intended for GraphRAG and entity-extraction workflows...

Docling Agent

Reference agent that reads, writes, and edits documents using Docling as the IO layer. Demonstrates how Docling output composes with tool-using LLMs to produce structured edits.

Docling Kubernetes Operator

Go-based Kubernetes operator that deploys and manages Docling Serve workloads — model cache PVCs, GPU/CPU pools, RQ workers, replica sets with sticky sessions, OAuth — from a si...

Docling Java Bindings

A Java API for Docling that lets JVM applications call into the Docling pipeline. Complementary to `docling4j`, which targets Java-native document understanding integrations.

Docling4j

Brings Docling document understanding into Java projects with idiomatic Java APIs over the Docling serialization format.

Docling TypeScript

TypeScript/JavaScript types and helpers for consuming Docling output (DoclingDocument JSON, DocTags) in Node.js and browser applications.

Docling LangChain Integration

First-party LangChain document loader and chunker for Docling. Drops Docling output directly into LangChain retrieval pipelines.

Docling Jobkit

Shared job-runner primitives used by Docling Serve and the Docling Operator to dispatch conversion work across RQ workers and Ray.

Collections

Features

Parses PDF, DOCX, PPTX, XLSX, HTML, PNG/TIFF/JPEG, WAV/MP3, WebVTT, LaTeX, and plain text
Unified DoclingDocument representation with lossless JSON, Markdown, HTML, DocTags, and WebVTT exports
Advanced PDF understanding — page layout, reading order, table structure, code, formulas, image classification
TableFormer model for accurate table structure recognition
GraniteDocling-258M visual language model pipeline for image-first document understanding
OCR engines — EasyOCR, Tesseract, RapidOCR, Mac OCR — with per-language configuration
Automatic Speech Recognition (ASR) for audio inputs (WAV, MP3) producing WebVTT
Local, air-gapped execution — no data leaves the host
MCP server (docling-mcp) exposes parsing as agent tools for Claude, Cursor, Gemini and other clients
Docling Serve HTTP API with sync and async endpoints, WebSocket task streaming, and zip-bundle output
Kubernetes-native deployment via the Docling Operator (model-cache PVCs, RQ workers, GPU pools, OAuth, sticky sessions)
Plug-and-play integrations with LangChain, LlamaIndex, Haystack, Crew AI, txtai, Bee, spaCy
Application-specific XML schemas (USPTO, JATS, XBRL)
Knowledge-graph extraction via docling-graph
Synthetic data generation via docling-sdg for fine-tuning
End-to-end evaluation framework (docling-eval) with standard datasets and metrics
Java, Java-native, TypeScript, and Swift (docling-snap) bindings
Open-source MIT license, governed by the LF AI and Data Foundation
Originated at IBM Research Zurich (AI for Knowledge team)

Semantic Vocabularies

Docling Context

0 classes · 12 properties

JSON-LD

API Governance Rules

Docling API Rules

6 rules · 1 errors 5 warnings

SPECTRAL

JSON Structure

Docling Document Structure

0 properties

JSON STRUCTURE

Example Payloads

Docling Cli Convert Example

3 fields

EXAMPLE

Resources

🌐
Portal
Portal
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
💻
SourceCode
SourceCode
👥
GitHubOrganization
GitHubOrganization
🔗
License
License
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
📦
SDKs
SDKs
🔗
CLI
CLI
📄
ReleaseNotes
ReleaseNotes
📄
ChangeLog
ChangeLog
🔗
Issues
Issues
🔗
Forums
Forums
🔗
ContributionGuide
ContributionGuide
💻
CodeOfConduct
CodeOfConduct
🔗
Governance
Governance
🔗
Foundation
Foundation
🔗
Models
Models
🔗
Models
Models
📰
Blog
Blog
🔗
AcademicPaper
AcademicPaper
🔗
ContainerImage
ContainerImage
🔗
ContainerImage
ContainerImage
🔗
KubernetesOperator
KubernetesOperator

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Docling Serve REST API
  version: '1.0'
items:
- info:
    name: Convert
    type: folder
  items:
  - info:
      name: Convert Documents From Source URLs
      type: http
    http:
      method: POST
      url: http://localhost:5001/v1/convert/source
      body:
        type: json
        data: '{}'
    docs: 'Synchronously convert one or more documents pulled from HTTP source URLs or

      provided inline as base64. Returns the converted document(s) directly in the

      response body.

      '
  - info:
      name: Convert Documents From Uploaded Files
      type: http
    http:
      method: POST
      url: http://localhost:5001/v1/convert/file
      body:
        type: multipart-form
        data: []
    docs: 'Synchronously convert one or more documents uploaded as multipart form data.

      Conversion options are supplied as additional form fields.

      '
- info:
    name: Async
    type: folder
  items:
  - info:
      name: Submit Source Conversion Asynchronously
      type: http
    http:
      method: POST
      url: http://localhost:5001/v1/convert/source/async
      body:
        type: json
        data: '{}'
    docs: 'Submit a source-based conversion job to the async queue. Returns a `TaskDetail`

      with the queue position and a `task_id` for subsequent polling.

      '
  - info:
      name: Submit File Conversion Asynchronously
      type: http
    http:
      method: POST
      url: http://localhost:5001/v1/convert/file/async
      body:
        type: multipart-form
        data: []
    docs: 'Submit an upload-based conversion job to the async queue. Returns a `TaskDetail`

      for polling.

      '
- info:
    name: Tasks
    type: folder
  items:
  - info:
      name: Poll Asynchronous Task Status
      type: http
    http:
      method: GET
      url: http://localhost:5001/v1/status/poll/:task_id
      params:
      - name: task_id
        value: ''
        type: path
    docs: Return the current `TaskDetail` for the task identified by `task_id`.
  - info:
      name: Get Asynchronous Task Result
      type: http
    http:
      method: GET
      url: http://localhost:5001/v1/result/:task_id
      params:
      - name: task_id
        value: ''
        type: path
    docs: Return the conversion result for a completed asynchronous task.
- info:
    name: System
    type: folder
  items:
  - info:
      name: Service Health Check
      type: http
    http:
      method: GET
      url: http://localhost:5001/health
    docs: Liveness/readiness probe for Docling Serve.
  - info:
      name: Get OpenAPI Specification
      type: http
    http:
      method: GET
      url: http://localhost:5001/openapi.json
    docs: Returns the live OpenAPI specification for the running Docling Serve instance.
bundled: true