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.134.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.134.0
File Size Uploaded
docling_client-2.134.0.tar.gz 6.8 kB Details

Built distribution (wheel)

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

Total release size: 9.8 kB

Release files / docling_client-2.134.0.tar.gz

Download URL docling_client-2.134.0.tar.gz
Size 6.8 kB
Tags Source
SHA-256 checksum
How to use checksums
7172a023276a8f3a99d495eddf396d7dd76db3fe2a77e4abb4a2756ec8e5912b
BLAKE2b-256 checksum
How to use checksums
c4a814605630606773966ed3e9140dbcecb11f416c3b018808dbb81af7d0dc76
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 6, 2026.

Transparency log

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

Download URL docling_client-2.134.0-py3-none-any.whl
Size 3.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2bbce7c01647f44202729555d8f17b383fcd727fffc4c59e3242edaeacefed88
BLAKE2b-256 checksum
How to use checksums
5e5c5a4974e4064b107e1a4ed262cc669972ac3c7e45c9b76b7211bc7ce379d6
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 6, 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