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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

docling_client-2.120.3.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

docling_client-2.120.3-py3-none-any.whl (3.1 kB view details)

Uploaded Python 3

File details

Details for the file docling_client-2.120.3.tar.gz.

File metadata

  • Download URL: docling_client-2.120.3.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

Hashes for docling_client-2.120.3.tar.gz
Algorithm Hash digest
SHA256 01030c145ef803281cde921793e6ccfbff92799e1baf8a0c9bc7350e8ce5d904
MD5 378eb2691eda58d8a29de93af6f12388
BLAKE2b-256 3b7b3cfd3b785fe10e723e1221c923975795cd82c1f814a415ccf322a22dbfb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for docling_client-2.120.3.tar.gz:

Publisher: pypi.yml on docling-project/docling

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file docling_client-2.120.3-py3-none-any.whl.

File metadata

File hashes

Hashes for docling_client-2.120.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5288192a02b6d2b49e53b3ac21335bdd8d1c1747b7bb023141a4142c69416ebb
MD5 ddaa6998f8be5cc53230db9203023ebb
BLAKE2b-256 df944ed75c50736e9dd42121ecba3bcb6f14a1ecc80e38a4e362e2370ecd1c5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for docling_client-2.120.3-py3-none-any.whl:

Publisher: pypi.yml on docling-project/docling

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

2.124.0

2 files

2.123.1

2 files

2.123.0

2 files

2.122.0

2 files

2.121.0

2 files

This release

2.120.3 This release

2 files

2.120.2

2 files

2.120.1

2 files

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