Docling Client
Lightweight client SDK for converting documents via a remote Docling Serve endpoint
docling-client is a meta-package that installs docling-slim[service-client], giving you DoclingServiceClient — a drop-in replacement for the local DocumentConverter that offloads conversion to a Docling Serve instance over HTTP.
For the full documentation, see the Docling docs.
Why a remote client?
| You want to… | Use |
|---|---|
| Convert documents in a Python application, without running models locally | docling-client → point at a Docling Serve endpoint |
| Run Docling directly in-process in a Python application | docling |
| Full control over which extras are installed | docling-slim[service-client] |
Switching from local to remote conversion typically requires changing only the client class and the endpoint URL — the conversion API (sources, options, output formats) stays the same.
Getting started
1. Install
pip install docling-client
2. Point at a Docling Serve endpoint
You need a running Docling Serve instance — self-hosted or a managed service.
Set your connection details in the environment (or a .env file):
DOCLING_SERVICE_URL=https://your-docling-service.example.com
DOCLING_SERVICE_API_KEY=your-api-key # omit if the service is unauthenticated
3. Convert a document
import os
from docling.service_client import DoclingServiceClient
with DoclingServiceClient(
url=os.environ["DOCLING_SERVICE_URL"],
api_key=os.environ.get("DOCLING_SERVICE_API_KEY", ""),
) as client:
result = client.convert(source="https://arxiv.org/pdf/2501.17887")
print(result.document.export_to_markdown())
Convert many documents concurrently:
sources = [
"https://arxiv.org/pdf/2501.17887",
"path/to/report.pdf",
"path/to/slides.pptx",
]
with DoclingServiceClient(url=os.environ["DOCLING_SERVICE_URL"]) as client:
for result in client.convert_all(source=sources, max_concurrency=4):
print(result.input.file.name, result.status)
print(result.document.export_to_markdown()[:200])
Switching from local to remote
If you already use the local DocumentConverter, the client API mirrors it closely. Only the import and instantiation change:
# Before — local, runs models on this machine
from docling.document_converter import DocumentConverter
converter = DocumentConverter()
result = converter.convert("report.pdf")
# After — remote, offloads conversion to Docling Serve
from docling.service_client import DoclingServiceClient
converter = DoclingServiceClient(url="https://...", api_key="...")
result = converter.convert(source="report.pdf")
Both result.document.export_to_markdown() and other output methods work the same way.
Managed services
Running Docling Serve yourself means operating infrastructure. Managed services remove that overhead.
Docling for IBM watsonx
A fully managed, hosted instance of Docling Serve — no servers, GPUs, scaling, or operational monitoring required. It exposes the same REST API, so your client code stays portable: swap the base URL, supply your API key, and go.
- Product page
- Free trial — no credit card needed
More examples
Runnable examples are in docs/examples/service_client/ in the repository:
| Script | What it shows |
|---|---|
convert.py |
convert() and convert_all() — the high-level API |
tasks.py |
Job lifecycle: submit(), watch(), result(), result targets |
batch.py |
submit_batch() for plugin sources and artifact targets |
chunk.py |
chunk() — split a document into retrieval-ready pieces |
Documentation
License
MIT License — see LICENSE
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file docling_client-2.121.0.tar.gz.
File metadata
- Download URL: docling_client-2.121.0.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da4f45509a14dcb6a87dbf12c7522ce86447517b517283004ef411d89f9556b1
|
|
| MD5 |
ce3a787d83337eec1832da5208f20ae4
|
|
| BLAKE2b-256 |
20504ac47aaa8561d00e53da18b6c073e2dcdef40988b7d521fbf1c2c790a173
|
Provenance
The following attestation bundles were made for docling_client-2.121.0.tar.gz:
Publisher:
pypi.yml on docling-project/docling
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
docling_client-2.121.0.tar.gz -
Subject digest:
da4f45509a14dcb6a87dbf12c7522ce86447517b517283004ef411d89f9556b1 - Sigstore transparency entry: 2529251310
- Sigstore integration time:
-
Permalink:
docling-project/docling@fd4939a539678a390a8e13bc0ee3aedb093ed1f5 -
Branch / Tag:
refs/tags/v2.121.0 - Owner: https://github.com/docling-project
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@fd4939a539678a390a8e13bc0ee3aedb093ed1f5 -
Trigger Event:
release
-
Statement type:
File details
Details for the file docling_client-2.121.0-py3-none-any.whl.
File metadata
- Download URL: docling_client-2.121.0-py3-none-any.whl
- Upload date:
- Size: 3.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f001dbb57316beec810292c64c95f14b0f742d80eda0208fabe13fb96e42100
|
|
| MD5 |
64c5cc6092a4d2431f85f1166d4b3e94
|
|
| BLAKE2b-256 |
638109c588ca981cd265bcae1e59403a761c11a972a6b544febe062d932f8649
|
Provenance
The following attestation bundles were made for docling_client-2.121.0-py3-none-any.whl:
Publisher:
pypi.yml on docling-project/docling
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
docling_client-2.121.0-py3-none-any.whl -
Subject digest:
7f001dbb57316beec810292c64c95f14b0f742d80eda0208fabe13fb96e42100 - Sigstore transparency entry: 2529251375
- Sigstore integration time:
-
Permalink:
docling-project/docling@fd4939a539678a390a8e13bc0ee3aedb093ed1f5 -
Branch / Tag:
refs/tags/v2.121.0 - Owner: https://github.com/docling-project
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@fd4939a539678a390a8e13bc0ee3aedb093ed1f5 -
Trigger Event:
release
-
Statement type: