Running Docling as an API service
  • Python 96.1%
  • Makefile 2.9%
  • Dockerfile 1%
Find a file
2026-07-30 18:29:57 +00:00
.github ci: fix CI build conflicts (#602) 2026-05-08 16:46:31 +02:00
docling_serve feat: support for new chunking options and multiple targets (#664) 2026-07-30 19:56:27 +02:00
docs feat: support for new chunking options and multiple targets (#664) 2026-07-30 19:56:27 +02:00
examples feat: OpenTelemetry support for traces and metrics (#456) 2026-01-12 13:17:07 +01:00
img docs: Update readme to use v1 (#306) 2025-08-08 09:02:29 +02:00
scripts feat: Move client SDK to docling (#575) 2026-04-14 12:56:15 +02:00
tests feat: support for new chunking options and multiple targets (#664) 2026-07-30 19:56:27 +02:00
.dockerignore api v1alpha1 (#17) 2025-02-03 11:00:54 +01:00
.env.example feat: support configurable RQ queue name (#620) (#621) 2026-06-15 15:48:53 +02:00
.gitignore docs: add split processing example (#303) 2025-09-04 10:42:11 +02:00
.markdownlint-cli2.yaml docs: update deployment examples (#135) 2025-04-17 14:29:34 +02:00
.pre-commit-config.yaml feat: experimental client SDK (#571) 2026-04-08 20:55:31 +02:00
.python-version fix: support python 3.13 and docling updates and switch to uv (#48) 2025-02-19 09:53:07 +01:00
CHANGELOG.md chore: bump version to 1.29.0 [skip ci] 2026-07-30 18:29:57 +00:00
CODE_OF_CONDUCT.md Add python, markdown and github action linter (#5) 2024-09-13 14:26:32 +02:00
Containerfile fix: reduce memory usage with mimalloc (#512) 2026-02-24 10:48:32 +01:00
CONTRIBUTING.md chore: move to docling-project gh org (#95) 2025-03-14 14:04:31 +01:00
LICENSE docling_serve 2024-09-06 22:05:58 +02:00
MAINTAINERS.md ci: add spellchecker with custom vocabulary and fix typos (#268) 2025-07-15 14:17:35 +02:00
Makefile feat: add support for ROCm 7.2 (#618) 2026-06-01 15:50:40 +02:00
os-packages.txt feat: add support for ROCm 7.2 (#618) 2026-06-01 15:50:40 +02:00
pyproject.toml chore: bump version to 1.29.0 [skip ci] 2026-07-30 18:29:57 +00:00
README.md docs: Fix docker pull README.md example (#603) 2026-05-21 14:59:56 +02:00
uv.lock chore: bump version to 1.29.0 [skip ci] 2026-07-30 18:29:57 +00:00

Docling

Docling Serve

Running Docling as an API service.

📚 Docling Serve documentation

Note

Migration to the v1 API. Docling Serve now has a stable v1 API. Read more on the migration to v1.

Getting started

Install the docling-serve package and run the server.

# Using the python package
pip install "docling-serve[ui]"
docling-serve run --enable-ui

# Using container images, e.g. with Podman
podman run -p 5001:5001 -e DOCLING_SERVE_ENABLE_UI=1 quay.io/docling-project/docling-serve

The server is available at

API documentation

Try it out with a simple conversion:

curl -X 'POST' \
  'http://localhost:5001/v1/convert/source' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "sources": [{"kind": "http", "url": "https://arxiv.org/pdf/2501.17887"}]
  }'

Container Images

The following container images are available for running Docling Serve with different hardware and PyTorch configurations:

📦 Distributed Images

Image Description Architectures Size
ghcr.io/docling-project/docling-serve
quay.io/docling-project/docling-serve
Base image with all packages installed from the official PyPI index. linux/amd64, linux/arm64 4.4 GB (arm64)
8.7 GB (amd64)
ghcr.io/docling-project/docling-serve-cpu
quay.io/docling-project/docling-serve-cpu
CPU-only variant, using torch from the PyTorch CPU index. linux/amd64, linux/arm64 4.4 GB
ghcr.io/docling-project/docling-serve-cu128
quay.io/docling-project/docling-serve-cu128
CUDA 12.8 build with torch from the cu128 index. linux/amd64 11.4 GB
ghcr.io/docling-project/docling-serve-cu130
quay.io/docling-project/docling-serve-cu130
CUDA 13.0 build with torch from the cu130 index. linux/amd64, linux/arm64 TBD

Important

CUDA Image Tagging Policy

CUDA-specific images (-cu128, -cu130) follow PyTorch's CUDA version support lifecycle and are tagged differently from base images:

  • Base images (docling-serve, docling-serve-cpu): Tagged with latest and main for convenience
  • CUDA images (docling-serve-cu*): Only tagged with explicit versions (e.g., 1.12.0) and main

Why? CUDA versions are deprecated over time as PyTorch adds support for newer CUDA releases. To avoid accidentally pulling deprecated CUDA versions, CUDA images intentionally exclude the latest tag. Always use explicit version tags like:

# ✅ Recommended: Explicit version
docker pull quay.io/docling-project/docling-serve-cu130:v1.18.0

# ❌ Not available for CUDA images
docker pull quay.io/docling-project/docling-serve-cu130:latest

🚫 Not Distributed

An image for AMD ROCm 6.3 (docling-serve-rocm) is supported but not published due to its large size.

To build it locally:

git clone --branch main git@github.com:docling-project/docling-serve.git
cd docling-serve/
make docling-serve-rocm-image

For deployment using Docker Compose, see docs/deployment.md.

Coming soon: docling-serve-slim images will reduce the size by skipping the model weights download.

Demonstration UI

An easy to use UI is available at the /ui endpoint.

Input controllers in the UI

Output visualization in the UI

Get help and support

Please feel free to connect with us using the discussion section.

Contributing

Please read Contributing to Docling Serve for details.

References

If you use Docling in your projects, please consider citing the following:

@techreport{Docling,
  author = {Docling Contributors},
  month = {1},
  title = {Docling: An Efficient Open-Source Toolkit for AI-driven Document Conversion},
  url = {https://arxiv.org/abs/2501.17887},
  eprint = {2501.17887},
  doi = {10.48550/arXiv.2501.17887},
  version = {2.0.0},
  year = {2025}
}

License

The Docling Serve codebase is under MIT license.

IBM ❤️ Open Source AI

Docling has been brought to you by IBM.