Skip to main content

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.

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

Metadata

Release files for docling-client 2.135.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for docling-client 2.135.0
File Size Uploaded
docling_client-2.135.0.tar.gz 6.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for docling-client 2.135.0
File Interpreter ABI Platform
docling_client-2.135.0-py3-none-any.whl Python 3 none any Details

Total release size: 9.8 kB

Release files / docling_client-2.135.0.tar.gz

Download URL docling_client-2.135.0.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
47863ec239f6ba82ec53495c667c5e2e5c48a88323e54be4c0b39c1134c48730
BLAKE2b-256 checksum
How to use checksums
6a39ad6a119e2e7dc2622747a13a835860c5b84694e78bd9dc3edf9743cec1dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / docling_client-2.135.0-py3-none-any.whl

Download URL docling_client-2.135.0-py3-none-any.whl
Size 3.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
271fe9315ae5e6d22f36299c96864828b2c9cf60e65ade34e48db31e657b56bb
BLAKE2b-256 checksum
How to use checksums
70a53a5d48a981b6394bdeb1f9f03f70e6ac0dd017ba0b312c2b087ecc1ef899
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page