diff --git a/0.3.1/core/index.html b/0.3.1/core/index.html index c93331d3..e167987e 100644 --- a/0.3.1/core/index.html +++ b/0.3.1/core/index.html @@ -819,6 +819,7 @@
The docling-core module provides the core data types used by Docling for document representation. It defines the DoclingDocument model, which captures the structure and content of documents across various formats, along with utilities for working with these types.
The base Java version is 17. This module has no external dependencies, making it lightweight and easy to integrate into your projects. It represents the foundational building block for the other Docling Java modules.
The docling-serve-api module defines the core, framework-agnostic Java API used to communicate
with a Docling Serve backend. It provides the request/response model and the main DoclingServeApi
interface. You can use any implementation of this interface to talk to a running
diff --git a/0.3.1/docling-serve/serve-client/index.html b/0.3.1/docling-serve/serve-client/index.html
index 303968e1..b666908f 100644
--- a/0.3.1/docling-serve/serve-client/index.html
+++ b/0.3.1/docling-serve/serve-client/index.html
@@ -1391,6 +1391,7 @@
The docling-serve-client module is the reference HTTP client for talking to a
Docling Serve backend.
It implements the framework‑agnostic DoclingServeApi interface from
diff --git a/0.3.1/search/search_index.json b/0.3.1/search/search_index.json
index baff3680..162b5e33 100644
--- a/0.3.1/search/search_index.json
+++ b/0.3.1/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Docling Java","text":"
Docling Java is the official Java client and tooling for Docling \u2014 a suite that simplifies document processing and parsing across diverse formats (with advanced PDF understanding) and integrates seamlessly with GenAI frameworks.
"},{"location":"#what-is-docling","title":"What is Docling?","text":"Docling extracts structured information from documents. It understands page layout, reading order, tables, code, formulas, and images, and exports results into convenient formats like Markdown, HTML, and JSON.
"},{"location":"#key-features","title":"Key features","text":"DoclingDocument representationThis repository provides a set of artifacts you can mix and match depending on your needs:
docling-core: Java API for working with the data types used by Docling for document representation (see Docling Core).docling-serve-api: Java API for interacting with a Docling Serve backend (framework\u2011agnostic).docling-serve-client: Reference HTTP client built with Java HttpClient and Jackson for connecting to a Docling Serve endpoint.docling-testing: Utilities for testing Docling integrations in your codebase.docling-testcontainers: A Testcontainers module for running Docling Serve in containers.The codebase is released under the MIT License. Contributions are welcome \u2014 please see CONTRIBUTING.md for guidelines and CODE_OF_CONDUCT.md for community standards.
The docling-core module provides the core data types used by Docling for document representation. It defines the DoclingDocument model, which captures the structure and content of documents across various formats, along with utilities for working with these types.
The base Java version is 17. This module has no external dependencies, making it lightweight and easy to integrate into your projects. It represents the foundational building block for the other Docling Java modules.
"},{"location":"core/#when-to-use-this-module","title":"When to use this module","text":"You typically won't need to use this module directly, as it is consumed by higher-level modules like docling-serve-api and docling-serve-client.
Add the dependency to your project.
GradleMavendependencies {\n implementation(\"ai.docling:docling-core:0.3.1\")\n}\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-core</artifactId>\n <version>0.3.1</version>\n</dependency>\n"},{"location":"core/#core-concepts","title":"Core concepts","text":"The DoclingDocument class is the primary representation of a document in Docling. It can be retrieved as the result of a document conversion process against a Docling Serve backend via the docling-serve-api or docling-serve-client modules.
To learn more about the DoclingDocument model and related types, refer to the Docling documentation: Docling Document.
Use the DoclingServeApi to convert a document by pointing at a running Docling Serve instance.
import ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory;\n\nDoclingServeApi doclingServeApi = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"<location of docling serve instance>\")\n .build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(\n HttpSource.builder()\n .url(URI.create(\"https://arxiv.org/pdf/2408.09869\"))\n .build()\n )\n .build();\n\nConvertDocumentResponse response = doclingServeApi.convertSource(request);\nSystem.out.println(response.getDocument().getMarkdownContent());\n For more examples and options, explore the modules listed above and the repository README.
"},{"location":"getting-started/#links","title":"Links","text":"The docling-testcontainers module provides a ready-to-use Testcontainers integration for running a Docling Serve instance in your tests. It wraps the official container image and exposes a simple Java API so you can spin up Docling as part of your JUnit test lifecycle and exercise client code against a real server.
If you need to talk to a running server from your application code, pair this module with the reference HTTP client: - docling-serve-client
Add the Testcontainers module to your test dependencies.
GradleMavendependencies {\n testImplementation(\"ai.docling:docling-testcontainers:0.3.1\")\n}\n <dependencies>\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-testcontainers</artifactId>\n <version>0.3.1</version>\n <scope>test</scope>\n </dependency>\n</dependencies>\n"},{"location":"testcontainers/#quick-start","title":"Quick start","text":"Spin up Docling Serve with JUnit 5 and run a simple health check using the reference client.
import static org.assertj.core.api.Assertions.assertThat;\n\nimport java.net.URI;\n\nimport org.junit.jupiter.api.Test;\nimport org.testcontainers.junit.jupiter.Container;\nimport org.testcontainers.junit.jupiter.Testcontainers;\n\nimport ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.health.HealthCheckResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory;\nimport ai.docling.testcontainers.serve.DoclingServeContainer;\nimport ai.docling.testcontainers.serve.config.DoclingServeContainerConfig;\n\n@Testcontainers\nclass DoclingContainerSmokeTest {\n @Container\n private final DoclingServeContainer docling = new DoclingServeContainer(\n DoclingServeContainerConfig.builder()\n .image(DoclingServeContainerConfig.DOCLING_IMAGE)\n .enableUi(true)\n .build()\n );\n\n @Test\n void health_is_ok() {\n String base = \"http://\" + docling.getHost() + \":\" + docling.getPort();\n\n DoclingServeApi api = DoclingServeClientBuilderFactory\n .newBuilder()\n .baseUrl(base)\n .build();\n\n HealthCheckResponse health = api.health();\n assertThat(health.getStatus()).isNotBlank();\n }\n}\n Note @Container manages container lifecycle for you. Use a static field to reuse the container across tests in the class.getHost() and getPort() are provided by Testcontainers/GenericContainer; getPort() maps the container\u2019s internal port to a random free host port.Once the container is up, you can call the Convert endpoint through docling-serve-client:
import java.net.URI;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;\nimport ai.docling.serve.api.convert.request.options.OutputFormat;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.request.target.InBodyTarget;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\n\nString baseUrl = \"http://\" + docling.getHost() + \":\" + docling.getPort();\nDoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder().baseUrl(baseUrl).build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(HttpSource.builder().url(URI.create(\"https://arxiv.org/pdf/2408.09869\")).build())\n .options(ConvertDocumentOptions.builder()\n .toFormat(OutputFormat.MARKDOWN)\n .includeImages(true)\n .build())\n .target(InBodyTarget.builder().build())\n .build();\n\nConvertDocumentResponse response = api.convertSource(request);\n// Assert on response.getDocument().getMarkdownContent(), errors, timings, etc.\n"},{"location":"testcontainers/#configuration","title":"Configuration","text":"The container is configured via DoclingServeContainerConfig. Use its fluent builder to customize:
import java.time.Duration;\nimport java.util.Map;\nimport ai.docling.testcontainers.serve.config.DoclingServeContainerConfig;\nimport ai.docling.testcontainers.serve.DoclingServeContainer;\n\nDoclingServeContainerConfig config = DoclingServeContainerConfig.builder()\n // Override the image if you need a different tag or registry\n .image(\"ghcr.io/docling-project/docling-serve:v1.9.0\")\n // Enable the optional web UI served by Docling Serve\n .enableUi(true)\n // Pass environment variables to fine\u2011tune behavior\n .containerEnv(Map.of(\n // Example: configure OCR languages or pipeline hints if supported by the server\n \"DOCLING_OCR_LANG\", \"eng,deu\"\n ))\n // Increase startup timeout if your CI is slow to pull images\n .startupTimeout(Duration.ofMinutes(2))\n .build();\n\nDoclingServeContainer container = new DoclingServeContainer(config);\n"},{"location":"testcontainers/#defaults","title":"Defaults","text":"5001 (exposed and mapped automatically)ghcr.io/docling-project/docling-serve:<version>static containers for faster test suites; or use reusability where applicable per Testcontainers guidelines.@Testcontainers test base to avoid repeated pulls.http:// base URLs, the reference client forces HTTP/1.1 to interoperate smoothly with FastAPI.start()/stop().docling-serve-apidocling-serve-clientThe docling-testing area contains tooling used to validate Docling Serve images and to help you test your integration. The main utility today is a small Quarkus/Picocli command that automatically verifies multiple Docling Serve versions by:
If you\u2019re looking to test your application code against a running server during unit/integration tests, consider the Testcontainers module instead: - docling-testcontainers
docling-testing","text":"Submodule: docling-testing/docling-version-tests
docling-serve-client) to call the Health and Convert endpointsghcr.io)You can run the CLI directly from the repository using the Quarkus Gradle plugin.
Option A \u2014 Dev mode (quick iteration):
./gradlew :docling-version-tests:quarkusDev\n Option B \u2014 Build a runnable JAR and execute it:
# Build the application\n./gradlew :docling-version-tests:build\n\n# Run it\njava -jar docling-testing/docling-version-tests/build/quarkus-app/quarkus-run.jar\n Notes: - The CLI will spin up Docker containers; ensure your user can access the Docker daemon. - By default it fetches all version tags for the given image and tests them serially (configurable with --parallelism).
These map to the Picocli command docling-serve-version-tests.
-p, --parallelism (int, default 1): How many versions to verify in parallel.-i, --image (string, default docling-project/docling-serve): The image repository name (without registry and tag).-r, --registry (string, default ghcr.io): Which registry to query for tags and pull from.-o, --output (path, default results): Output directory. A timestamped subfolder is created per run.-t, --tags (multiple): Explicit list of tags to test. If omitted, the tool fetches all available version tags from the registry.-g, --create-github-issue (boolean, default true): When enabled, and if configured with credentials, creates/updates a GitHub issue on failures.Examples:
# Test the latest published versions from GHCR, one at a time\n./gradlew :docling-version-tests:quarkusDev\n\n# Test a specific set of tags in parallel\n./gradlew :docling-version-tests:quarkusDev \\\n -p 3 \\\n -t v1.8.0 \\\n -t v1.7.3 \\\n -t v1.6.5\n\n# Save artifacts under a custom directory and disable GitHub issue creation\n./gradlew :docling-version-tests:quarkusDev \\\n -o ./my-results \\\n --no-create-github-issue\n"},{"location":"testing/#what-the-tool-verifies","title":"What the tool verifies","text":"For each tag under test, the tool:
ghcr.io/<registry>/<image>:<tag> with Testcontainers (default internal port 5001)./health using DoclingServeApi.health().DoclingServeApi.convertSource() on a simple HTTP source.Under the hood, this is implemented in: - ai.docling.client.tester.service.TagsTester (spins up the container, runs checks) - ai.docling.client.tester.VersionTestsCommand (parses options, parallelizes work, aggregates results)
At the end of a run, you\u2019ll find a timestamped directory under the output path, for example:
results/\n results-20250101T121314Z/\n summary.md # Markdown summary of tags tested and outcomes\n <tag>-server.log # Logs captured from the Docling Serve container for each tag\n ...\n Depending on your configuration, a GitHub issue may be created or updated to include the summary table and failure details.
"},{"location":"testing/#ci-tips","title":"CI tips","text":"--parallelism prudently on shared or small CI runners to avoid resource contention.docling-serve-clientdocling-testcontainersDocling Java 0.3.1 provides a number of new features, enhancements, and bug fixes. This page includes the highlights of the release, but you can also check out the full release notes for more details about each new feature and bug fix.
"},{"location":"whats-new/#docling-serve","title":"Docling Serve","text":"docling-serve-api module have been moved from the ai.docling.api.serve package to the ai.docling.serve.api package.docling-serve-client module have been moved from the ai.docling.client.serve package to the ai.docling.serve.client package.docling-core module have been moved from the ai.docling.api.core package to the ai.docling.core package.DoclingServeApi provides two new methods: chunkSourceWithHierarchicalChunker() for chunking a source document with a hierarchical chunker and chunkSourceWithHybridChunker() for chunking a source document with a hybrid chunker. Read more about Docling chunkers in the Chunking section of the Docling documentation.The docling-serve-api module defines the core, framework-agnostic Java API used to communicate with a Docling Serve backend. It provides the request/response model and the main DoclingServeApi interface. You can use any implementation of this interface to talk to a running Docling Serve instance.
The base Java version is 17. This module has no other required dependencies, although it is compatible with both Jackson 2.x and 3.x.
If you need a ready-to-use HTTP implementation, see the reference client: - Docling Serve Client: docling-serve-client
Add the API dependency to your project.
GradleMavendependencies {\n implementation(\"ai.docling:docling-serve-api:0.3.1\")\n}\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-serve-api</artifactId>\n <version>0.3.1</version>\n</dependency>\n Note: The API module does not perform network I/O by itself. To call a live service, combine it with an implementation such as docling-serve-client.
Below is a minimal example using the reference client to create an implementation of DoclingServeApi, build a conversion request, and retrieve Markdown output. The request/response types all come from docling-serve-api.
import java.net.URI;\nimport ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;\nimport ai.docling.serve.api.convert.request.options.OutputFormat;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.request.target.InBodyTarget;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory; // from docling-serve-client\n\nDoclingServeApi api = DoclingServeClientBuilderFactory\n .newBuilder()\n .baseUrl(\"http://localhost:8000\") // your Docling Serve URL\n .build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(HttpSource.builder().url(URI.create(\"https://arxiv.org/pdf/2408.09869\"))\n .build())\n .options(ConvertDocumentOptions.builder()\n .toFormat(OutputFormat.MARKDOWN) // request Markdown output\n .includeImages(true)\n .build())\n .target(InBodyTarget.builder().build()) // get results in the HTTP response body\n .build();\n\nConvertDocumentResponse response = api.convertSource(request);\nSystem.out.println(response.getDocument().getMarkdownContent());\n"},{"location":"docling-serve/serve-api/#core-concepts","title":"Core concepts","text":""},{"location":"docling-serve/serve-api/#the-doclingserveapi-interface","title":"The DoclingServeApi interface","text":"Defined in ai.docling.serve.api.DoclingServeApi, this interface exposes two primary operations:
health() \u2192 returns a HealthCheckResponse with service status.convertSource(request) \u2192 submits one or more sources plus options and an optional target, returning ConvertDocumentResponse.Any HTTP or non-HTTP implementation can implement this interface. The reference implementation is provided by the docling-serve-client module.
ConvertDocumentRequest","text":"Create a request via the builder:
ConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(/* one of the supported sources */)\n .options(/* conversion options */)\n .target(/* optional delivery target */)\n .build();\n Supported sources (ai.docling.serve.api.convert.request.source): - HttpSource \u2014 fetch content from a URL (optional custom headers) - FileSource \u2014 embed content as Base64 with a filename
Targets (ai.docling.serve.api.convert.request.target): - InBodyTarget \u2014 receive results directly in the API response body (default use case) - PutTarget \u2014 the service uploads converted content via HTTP PUT to a specified URI - ZipTarget \u2014 receive a zipped result
Options (ai.docling.serve.api.convert.request.options.ConvertDocumentOptions) let you control: - Input/output formats (e.g., fromFormats, toFormats) - OCR (e.g., doOcr, forceOcr, ocrEngine, ocrLang) - PDF processing (e.g., pdfBackend) - Tables (e.g., tableMode, tableCellMatching) - Pipelines and page ranges (e.g., pipeline, pageRange) - Timeouts and error behavior (e.g., documentTimeout, abortOnError) - Enrichments (code/formula/picture), image handling, scaling, page break placeholder - VLM pipeline hints
Explore the options package for the full list of knobs you can turn.
ConvertDocumentResponse and DocumentResponse","text":"ConvertDocumentResponse contains the converted document (if any), errors, processing status, total processing_time, and detailed timings map.DocumentResponse holds the actual content fields you requested, such as md_content (Markdown), html_content, text_content, and a json_content map. It also includes the filename and doctags_content when relevant.You can ping the service to check readiness and basic status:
import ai.docling.serve.api.health.HealthCheckResponse;\n\nHealthCheckResponse health = api.health();\nSystem.out.println(\"Service status: \" + health.getStatus());\n"},{"location":"docling-serve/serve-api/#error-handling","title":"Error handling","text":"Conversion may succeed partially (e.g., some pages) while returning warnings or errors. Always inspect ConvertDocumentResponse#getErrors() and consider status:
ConvertDocumentResponse response = api.convertSource(request);\n\nif (response.getErrors() != null && !response.getErrors().isEmpty()) {\n response.getErrors().forEach(err ->\n System.err.println(\"Component: \" + err.getComponentType() + \n \", Module: \" + err.getModuleName() + \n \", Message: \" + err.getErrorMessage()));\n}\n\nif (response.getDocument() != null && response.getDocument().getMarkdownContent() != null) {\n // Use the output\n}\n The exact transport-level exceptions (e.g., timeouts, connectivity) depend on the client implementation you use. The reference client throws standard Java exceptions for HTTP and I/O failures.
"},{"location":"docling-serve/serve-api/#logging-and-builders","title":"Logging and builders","text":"DoclingServeApi exposes a toBuilder() method so implementations can be duplicated and tweaked. Most client builders, including the reference client, also expose logRequests() and logResponses() for simple diagnostics:
DoclingServeApi newApi = api.toBuilder()\n .logRequests()\n .logResponses()\n .build();\n"},{"location":"docling-serve/serve-api/#version-compatibility","title":"Version compatibility","text":"The API is tested against all published versions of Docling Serve each week. Below are the latest run results:
"},{"location":"docling-serve/serve-api/#results-for-ghcriodocling-projectdocling-serve-as-of-2025-12-02t010531617877845z","title":"Results for ghcr.io/docling-project/docling-serve as of 2025-12-02T01:05:31.617877845Z","text":"Here are the results:
Tag Result Details v1.0.1 \u2705 SUCCESS Click for run details v1.1.0 \u2705 SUCCESS Click for run details v1.0.0 \u2705 SUCCESS Click for run details v1.2.1 \u2705 SUCCESS Click for run details v1.2.2 \u2705 SUCCESS Click for run details v1.2.0 \u2705 SUCCESS Click for run details v1.3.1 \u2705 SUCCESS Click for run details v1.3.0 \u2705 SUCCESS Click for run details v1.4.0 \u2705 SUCCESS Click for run details v1.5.0 \u2705 SUCCESS Click for run details v1.4.1 \u2705 SUCCESS Click for run details v1.5.1 \u2705 SUCCESS Click for run details v1.6.0 \u2705 SUCCESS Click for run details v1.7.0 \u2705 SUCCESS Click for run details v1.7.1 \u2705 SUCCESS Click for run details v1.7.2 \u2705 SUCCESS Click for run details v1.8.0 \u2705 SUCCESS Click for run details v1.9.0 \u2705 SUCCESS Click for run details"},{"location":"docling-serve/serve-api/#details","title":"Details","text":""},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev101","title":"ghcr.io/docling-project/docling-serve:v1.0.1","text":"Click to expand ###### Message Click to collapseTag v1.0.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:59886 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:59890 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:59890 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev110","title":"ghcr.io/docling-project/docling-serve:v1.1.0","text":"Click to expand ###### Message Click to collapse Tag v1.1.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:40006 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:40014 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:40014 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev100","title":"ghcr.io/docling-project/docling-serve:v1.0.0","text":"Click to expand ###### Message Click to collapse Tag v1.0.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:38522 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:38534 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:38534 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev121","title":"ghcr.io/docling-project/docling-serve:v1.2.1","text":"Click to expand ###### Message Click to collapse Tag v1.2.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49312 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49328 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49328 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev122","title":"ghcr.io/docling-project/docling-serve:v1.2.2","text":"Click to expand ###### Message Click to collapse Tag v1.2.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50440 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50452 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50452 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev120","title":"ghcr.io/docling-project/docling-serve:v1.2.0","text":"Click to expand ###### Message Click to collapse Tag v1.2.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49238 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49250 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49250 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev131","title":"ghcr.io/docling-project/docling-serve:v1.3.1","text":"Click to expand ###### Message Click to collapse Tag v1.3.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49294 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49304 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49304 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev130","title":"ghcr.io/docling-project/docling-serve:v1.3.0","text":"Click to expand ###### Message Click to collapse Tag v1.3.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60976 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60982 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60982 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev140","title":"ghcr.io/docling-project/docling-serve:v1.4.0","text":"Click to expand ###### Message Click to collapse Tag v1.4.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:39904 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:39920 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:39920 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev150","title":"ghcr.io/docling-project/docling-serve:v1.5.0","text":"Click to expand ###### Message Click to collapse Tag v1.5.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:34606 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:34620 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:34620 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev141","title":"ghcr.io/docling-project/docling-serve:v1.4.1","text":"Click to expand ###### Message Click to collapse Tag v1.4.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:46264 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:46272 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:46272 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev151","title":"ghcr.io/docling-project/docling-serve:v1.5.1","text":"Click to expand ###### Message Click to collapse Tag v1.5.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:43484 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:43496 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:43496 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev160","title":"ghcr.io/docling-project/docling-serve:v1.6.0","text":"Click to expand ###### Message Click to collapse Tag v1.6.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50858 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50872 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50872 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev170","title":"ghcr.io/docling-project/docling-serve:v1.7.0","text":"Click to expand ###### Message Click to collapse Tag v1.7.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:54056 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:54060 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:54060 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev171","title":"ghcr.io/docling-project/docling-serve:v1.7.1","text":"Click to expand ###### Message Click to collapse Tag v1.7.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:01:17,311 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,314 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:33120 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:33136 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:33136 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev172","title":"ghcr.io/docling-project/docling-serve:v1.7.2","text":"Click to expand ###### Message Click to collapse Tag v1.7.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:32,060 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,064 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:32,291 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,292 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60552 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60562 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60562 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev180","title":"ghcr.io/docling-project/docling-serve:v1.8.0","text":"Click to expand ###### Message Click to collapse Tag v1.8.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:37,497 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,499 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:37,712 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,713 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:51968 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:51980 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:51980 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev190","title":"ghcr.io/docling-project/docling-serve:v1.9.0","text":"Click to expand ###### Message Click to collapse Tag v1.9.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:05:21,583 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,584 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49084 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49094 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49094 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/","title":"Docling Serve Client","text":"The docling-serve-client module is the reference HTTP client for talking to a Docling Serve backend.
It implements the framework\u2011agnostic DoclingServeApi interface from docling-serve-api using Java's built\u2011in HttpClient for transport and Jackson for JSON (auto\u2011detecting Jackson 2 or 3 at runtime).
If you only need the request/response model (without HTTP), use the API module: - docling-serve-api
HttpClient + Jackson).Add the client dependency to your project.
GradleMavendependencies {\n implementation(\"ai.docling:docling-serve-client:0.3.1\")\n}\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-serve-client</artifactId>\n <version>0.3.1</version>\n</dependency>\n This artifact brings in the API types transitively, so you can use DoclingServeApi, ConvertDocumentRequest, etc., directly.
Make sure you also include either a Jackson 2 or Jackson 3 dependency.
"},{"location":"docling-serve/serve-client/#quick-start","title":"Quick start","text":"Create a client with DoclingServeClientBuilderFactory, build a request, and call convertSource():
import java.net.URI;\nimport ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;\nimport ai.docling.serve.api.convert.request.options.OutputFormat;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.request.target.InBodyTarget;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory;\n\nDoclingServeApi api = DoclingServeClientBuilderFactory\n .newBuilder()\n .baseUrl(\"http://localhost:8000\") // your Docling Serve URL\n .build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(HttpSource.builder().url(URI.create(\"https://arxiv.org/pdf/2408.09869\")).build())\n .options(ConvertDocumentOptions.builder()\n .toFormat(OutputFormat.MARKDOWN)\n .includeImages(true)\n .build())\n .target(InBodyTarget.builder().build())\n .build();\n\nConvertDocumentResponse response = api.convertSource(request);\nSystem.out.println(response.getDocument().getMarkdownContent());\n"},{"location":"docling-serve/serve-client/#core-concepts-and-configuration","title":"Core concepts and configuration","text":""},{"location":"docling-serve/serve-client/#builder-factory-and-jackson-autodetection","title":"Builder factory and Jackson auto\u2011detection","text":"DoclingServeClientBuilderFactory.newBuilder() chooses an implementation based on what's on your classpath:
DoclingServeJackson3ClientDoclingServeJackson2ClientIllegalStateExceptionAdvanced: You can customize the JSON mapper via .toBuilder().jsonParser(...) on the concrete client type if you need special Jackson modules or settings.
Set the Docling Serve base URL with either a String or URI:
DoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"http://localhost:8000\")\n .build();\n Note: When using plain http://, the client enforces HTTP/1.1 for compatibility with FastAPI, which avoids HTTP/2 downgrade mishaps in some environments.
You can supply and tune a java.net.http.HttpClient.Builder:
import java.net.http.HttpClient;\nimport java.time.Duration;\n\nDoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"https://serve.example.com\")\n .httpClientBuilder(HttpClient.newBuilder()\n .connectTimeout(Duration.ofSeconds(20))\n // .proxy(ProxySelector.of(new InetSocketAddress(\"proxy\", 8080)))\n // .sslContext(customSslContext)\n )\n .build();\n"},{"location":"docling-serve/serve-client/#requestresponse-logging","title":"Request/response logging","text":"Enable lightweight logging for diagnostics:
DoclingServeApi noisy = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"http://localhost:8000\")\n .logRequests()\n .logResponses()\n .build();\n"},{"location":"docling-serve/serve-client/#health-checks","title":"Health checks","text":"import ai.docling.serve.api.health.HealthCheckResponse;\n\nHealthCheckResponse health = api.health();\nSystem.out.println(\"Service status: \" + health.getStatus());\n"},{"location":"docling-serve/serve-client/#working-with-sources-and-targets","title":"Working with sources and targets","text":"All request/response types come from docling-serve-api. Common patterns:
import ai.docling.serve.api.convert.request.source.HttpSource;\nvar httpSource = HttpSource.builder()\n .url(URI.create(\"https://example.com/file.pdf\"))\n // .header(\"Authorization\", \"Bearer ...\")\n .build();\n import java.util.Base64;\nimport ai.docling.serve.api.convert.request.source.FileSource;\nbyte[] bytes = /* read file */\nvar fileSource = FileSource.builder()\n .filename(\"report.pdf\")\n .base64String(Base64.getEncoder().encodeToString(bytes))\n .build();\n import ai.docling.serve.api.convert.request.target.InBodyTarget;\nvar target = InBodyTarget.builder().build();\n import ai.docling.serve.api.convert.request.target.PutTarget;\nvar put = PutTarget.builder()\n .uri(URI.create(\"https://storage.example.com/out/report.md\"))\n // .header(\"Authorization\", \"Bearer ...\")\n .build();\n"},{"location":"docling-serve/serve-client/#error-handling-tips","title":"Error handling tips","text":"Transport errors (DNS, TLS, connection reset, timeouts) are thrown as standard Java exceptions from HttpClient. Conversion may also return structured errors in the response body \u2014 inspect ConvertDocumentResponse#getErrors() even when content is present:
var result = api.convertSource(request);\nif (result.getErrors() != null && !result.getErrors().isEmpty()) {\n result.getErrors().forEach(err ->\n System.err.println(\"Component=\" + err.getComponentType()\n + \", Module=\" + err.getModuleName()\n + \", Message=\" + err.getErrorMessage()));\n}\n"},{"location":"docling-serve/serve-client/#version-compatibility","title":"Version compatibility","text":"The client is tested against all published versions of Docling Serve each week. Below are the latest run results:
"},{"location":"docling-serve/serve-client/#results-for-ghcriodocling-projectdocling-serve-as-of-2025-12-02t010531617877845z","title":"Results for ghcr.io/docling-project/docling-serve as of 2025-12-02T01:05:31.617877845Z","text":"Here are the results:
Tag Result Details v1.0.1 \u2705 SUCCESS Click for run details v1.1.0 \u2705 SUCCESS Click for run details v1.0.0 \u2705 SUCCESS Click for run details v1.2.1 \u2705 SUCCESS Click for run details v1.2.2 \u2705 SUCCESS Click for run details v1.2.0 \u2705 SUCCESS Click for run details v1.3.1 \u2705 SUCCESS Click for run details v1.3.0 \u2705 SUCCESS Click for run details v1.4.0 \u2705 SUCCESS Click for run details v1.5.0 \u2705 SUCCESS Click for run details v1.4.1 \u2705 SUCCESS Click for run details v1.5.1 \u2705 SUCCESS Click for run details v1.6.0 \u2705 SUCCESS Click for run details v1.7.0 \u2705 SUCCESS Click for run details v1.7.1 \u2705 SUCCESS Click for run details v1.7.2 \u2705 SUCCESS Click for run details v1.8.0 \u2705 SUCCESS Click for run details v1.9.0 \u2705 SUCCESS Click for run details"},{"location":"docling-serve/serve-client/#details","title":"Details","text":""},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev101","title":"ghcr.io/docling-project/docling-serve:v1.0.1","text":"Click to expand ###### Message Click to collapseTag v1.0.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:59886 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:59890 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:59890 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev110","title":"ghcr.io/docling-project/docling-serve:v1.1.0","text":"Click to expand ###### Message Click to collapse Tag v1.1.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:40006 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:40014 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:40014 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev100","title":"ghcr.io/docling-project/docling-serve:v1.0.0","text":"Click to expand ###### Message Click to collapse Tag v1.0.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:38522 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:38534 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:38534 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev121","title":"ghcr.io/docling-project/docling-serve:v1.2.1","text":"Click to expand ###### Message Click to collapse Tag v1.2.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49312 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49328 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49328 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev122","title":"ghcr.io/docling-project/docling-serve:v1.2.2","text":"Click to expand ###### Message Click to collapse Tag v1.2.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50440 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50452 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50452 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev120","title":"ghcr.io/docling-project/docling-serve:v1.2.0","text":"Click to expand ###### Message Click to collapse Tag v1.2.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49238 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49250 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49250 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev131","title":"ghcr.io/docling-project/docling-serve:v1.3.1","text":"Click to expand ###### Message Click to collapse Tag v1.3.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49294 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49304 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49304 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev130","title":"ghcr.io/docling-project/docling-serve:v1.3.0","text":"Click to expand ###### Message Click to collapse Tag v1.3.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60976 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60982 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60982 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev140","title":"ghcr.io/docling-project/docling-serve:v1.4.0","text":"Click to expand ###### Message Click to collapse Tag v1.4.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:39904 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:39920 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:39920 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev150","title":"ghcr.io/docling-project/docling-serve:v1.5.0","text":"Click to expand ###### Message Click to collapse Tag v1.5.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:34606 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:34620 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:34620 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev141","title":"ghcr.io/docling-project/docling-serve:v1.4.1","text":"Click to expand ###### Message Click to collapse Tag v1.4.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:46264 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:46272 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:46272 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev151","title":"ghcr.io/docling-project/docling-serve:v1.5.1","text":"Click to expand ###### Message Click to collapse Tag v1.5.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:43484 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:43496 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:43496 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev160","title":"ghcr.io/docling-project/docling-serve:v1.6.0","text":"Click to expand ###### Message Click to collapse Tag v1.6.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50858 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50872 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50872 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev170","title":"ghcr.io/docling-project/docling-serve:v1.7.0","text":"Click to expand ###### Message Click to collapse Tag v1.7.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:54056 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:54060 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:54060 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev171","title":"ghcr.io/docling-project/docling-serve:v1.7.1","text":"Click to expand ###### Message Click to collapse Tag v1.7.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:01:17,311 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,314 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:33120 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:33136 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:33136 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev172","title":"ghcr.io/docling-project/docling-serve:v1.7.2","text":"Click to expand ###### Message Click to collapse Tag v1.7.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:32,060 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,064 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:32,291 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,292 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60552 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60562 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60562 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev180","title":"ghcr.io/docling-project/docling-serve:v1.8.0","text":"Click to expand ###### Message Click to collapse Tag v1.8.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:37,497 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,499 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:37,712 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,713 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:51968 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:51980 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:51980 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev190","title":"ghcr.io/docling-project/docling-serve:v1.9.0","text":"Click to expand ###### Message Click to collapse Tag v1.9.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:05:21,583 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,584 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49084 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49094 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49094 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/","title":"Results for ghcr.io/docling-project/docling-serve as of 2025-12-02T01:05:31.617877845Z","text":"Here are the results:
Tag Result Details v1.0.1 \u2705 SUCCESS Click for run details v1.1.0 \u2705 SUCCESS Click for run details v1.0.0 \u2705 SUCCESS Click for run details v1.2.1 \u2705 SUCCESS Click for run details v1.2.2 \u2705 SUCCESS Click for run details v1.2.0 \u2705 SUCCESS Click for run details v1.3.1 \u2705 SUCCESS Click for run details v1.3.0 \u2705 SUCCESS Click for run details v1.4.0 \u2705 SUCCESS Click for run details v1.5.0 \u2705 SUCCESS Click for run details v1.4.1 \u2705 SUCCESS Click for run details v1.5.1 \u2705 SUCCESS Click for run details v1.6.0 \u2705 SUCCESS Click for run details v1.7.0 \u2705 SUCCESS Click for run details v1.7.1 \u2705 SUCCESS Click for run details v1.7.2 \u2705 SUCCESS Click for run details v1.8.0 \u2705 SUCCESS Click for run details v1.9.0 \u2705 SUCCESS Click for run details"},{"location":"includes/docling-serve/serve-compatibility/#details","title":"Details","text":""},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev101","title":"ghcr.io/docling-project/docling-serve:v1.0.1","text":"Click to expand #### Message Click to collapseTag v1.0.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:59886 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:59890 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:59890 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev110","title":"ghcr.io/docling-project/docling-serve:v1.1.0","text":"Click to expand #### Message Click to collapse Tag v1.1.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:40006 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:40014 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:40014 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev100","title":"ghcr.io/docling-project/docling-serve:v1.0.0","text":"Click to expand #### Message Click to collapse Tag v1.0.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:38522 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:38534 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:38534 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev121","title":"ghcr.io/docling-project/docling-serve:v1.2.1","text":"Click to expand #### Message Click to collapse Tag v1.2.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49312 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49328 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49328 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev122","title":"ghcr.io/docling-project/docling-serve:v1.2.2","text":"Click to expand #### Message Click to collapse Tag v1.2.2 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50440 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50452 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50452 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev120","title":"ghcr.io/docling-project/docling-serve:v1.2.0","text":"Click to expand #### Message Click to collapse Tag v1.2.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49238 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49250 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49250 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev131","title":"ghcr.io/docling-project/docling-serve:v1.3.1","text":"Click to expand #### Message Click to collapse Tag v1.3.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49294 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49304 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49304 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev130","title":"ghcr.io/docling-project/docling-serve:v1.3.0","text":"Click to expand #### Message Click to collapse Tag v1.3.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60976 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60982 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60982 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev140","title":"ghcr.io/docling-project/docling-serve:v1.4.0","text":"Click to expand #### Message Click to collapse Tag v1.4.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:39904 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:39920 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:39920 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev150","title":"ghcr.io/docling-project/docling-serve:v1.5.0","text":"Click to expand #### Message Click to collapse Tag v1.5.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:34606 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:34620 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:34620 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev141","title":"ghcr.io/docling-project/docling-serve:v1.4.1","text":"Click to expand #### Message Click to collapse Tag v1.4.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:46264 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:46272 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:46272 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev151","title":"ghcr.io/docling-project/docling-serve:v1.5.1","text":"Click to expand #### Message Click to collapse Tag v1.5.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:43484 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:43496 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:43496 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev160","title":"ghcr.io/docling-project/docling-serve:v1.6.0","text":"Click to expand #### Message Click to collapse Tag v1.6.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50858 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50872 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50872 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev170","title":"ghcr.io/docling-project/docling-serve:v1.7.0","text":"Click to expand #### Message Click to collapse Tag v1.7.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:54056 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:54060 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:54060 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev171","title":"ghcr.io/docling-project/docling-serve:v1.7.1","text":"Click to expand #### Message Click to collapse Tag v1.7.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:01:17,311 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,314 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:33120 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:33136 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:33136 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev172","title":"ghcr.io/docling-project/docling-serve:v1.7.2","text":"Click to expand #### Message Click to collapse Tag v1.7.2 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:32,060 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,064 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:32,291 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,292 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60552 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60562 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60562 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev180","title":"ghcr.io/docling-project/docling-serve:v1.8.0","text":"Click to expand #### Message Click to collapse Tag v1.8.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:37,497 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,499 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:37,712 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,713 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:51968 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:51980 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:51980 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev190","title":"ghcr.io/docling-project/docling-serve:v1.9.0","text":"Click to expand #### Message Click to collapse Tag v1.9.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:05:21,583 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,584 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49084 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49094 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49094 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"}]}
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Docling Java","text":"Docling Java is the official Java client and tooling for Docling \u2014 a suite that simplifies document processing and parsing across diverse formats (with advanced PDF understanding) and integrates seamlessly with GenAI frameworks.
"},{"location":"#what-is-docling","title":"What is Docling?","text":"Docling extracts structured information from documents. It understands page layout, reading order, tables, code, formulas, and images, and exports results into convenient formats like Markdown, HTML, and JSON.
"},{"location":"#key-features","title":"Key features","text":"DoclingDocument representationThis repository provides a set of artifacts you can mix and match depending on your needs:
docling-core: Java API for working with the data types used by Docling for document representation (see Docling Core).docling-serve-api: Java API for interacting with a Docling Serve backend (framework\u2011agnostic).docling-serve-client: Reference HTTP client built with Java HttpClient and Jackson for connecting to a Docling Serve endpoint.docling-testing: Utilities for testing Docling integrations in your codebase.docling-testcontainers: A Testcontainers module for running Docling Serve in containers.The codebase is released under the MIT License. Contributions are welcome \u2014 please see CONTRIBUTING.md for guidelines and CODE_OF_CONDUCT.md for community standards.
The docling-core module provides the core data types used by Docling for document representation. It defines the DoclingDocument model, which captures the structure and content of documents across various formats, along with utilities for working with these types.
The base Java version is 17. This module has no external dependencies, making it lightweight and easy to integrate into your projects. It represents the foundational building block for the other Docling Java modules.
"},{"location":"core/#when-to-use-this-module","title":"When to use this module","text":"You typically won't need to use this module directly, as it is consumed by higher-level modules like docling-serve-api and docling-serve-client.
Add the dependency to your project.
GradleMavendependencies {\n implementation(\"ai.docling:docling-core:0.3.1\")\n}\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-core</artifactId>\n <version>0.3.1</version>\n</dependency>\n"},{"location":"core/#core-concepts","title":"Core concepts","text":"The DoclingDocument class is the primary representation of a document in Docling. It can be retrieved as the result of a document conversion process against a Docling Serve backend via the docling-serve-api or docling-serve-client modules.
To learn more about the DoclingDocument model and related types, refer to the Docling documentation: Docling Document.
Use the DoclingServeApi to convert a document by pointing at a running Docling Serve instance.
import ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory;\n\nDoclingServeApi doclingServeApi = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"<location of docling serve instance>\")\n .build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(\n HttpSource.builder()\n .url(URI.create(\"https://arxiv.org/pdf/2408.09869\"))\n .build()\n )\n .build();\n\nConvertDocumentResponse response = doclingServeApi.convertSource(request);\nSystem.out.println(response.getDocument().getMarkdownContent());\n For more examples and options, explore the modules listed above and the repository README.
"},{"location":"getting-started/#links","title":"Links","text":"The docling-testcontainers module provides a ready-to-use Testcontainers integration for running a Docling Serve instance in your tests. It wraps the official container image and exposes a simple Java API so you can spin up Docling as part of your JUnit test lifecycle and exercise client code against a real server.
If you need to talk to a running server from your application code, pair this module with the reference HTTP client: - docling-serve-client
Add the Testcontainers module to your test dependencies.
GradleMavendependencies {\n testImplementation(\"ai.docling:docling-testcontainers:0.3.1\")\n}\n <dependencies>\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-testcontainers</artifactId>\n <version>0.3.1</version>\n <scope>test</scope>\n </dependency>\n</dependencies>\n"},{"location":"testcontainers/#quick-start","title":"Quick start","text":"Spin up Docling Serve with JUnit 5 and run a simple health check using the reference client.
import static org.assertj.core.api.Assertions.assertThat;\n\nimport java.net.URI;\n\nimport org.junit.jupiter.api.Test;\nimport org.testcontainers.junit.jupiter.Container;\nimport org.testcontainers.junit.jupiter.Testcontainers;\n\nimport ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.health.HealthCheckResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory;\nimport ai.docling.testcontainers.serve.DoclingServeContainer;\nimport ai.docling.testcontainers.serve.config.DoclingServeContainerConfig;\n\n@Testcontainers\nclass DoclingContainerSmokeTest {\n @Container\n private final DoclingServeContainer docling = new DoclingServeContainer(\n DoclingServeContainerConfig.builder()\n .image(DoclingServeContainerConfig.DOCLING_IMAGE)\n .enableUi(true)\n .build()\n );\n\n @Test\n void health_is_ok() {\n String base = \"http://\" + docling.getHost() + \":\" + docling.getPort();\n\n DoclingServeApi api = DoclingServeClientBuilderFactory\n .newBuilder()\n .baseUrl(base)\n .build();\n\n HealthCheckResponse health = api.health();\n assertThat(health.getStatus()).isNotBlank();\n }\n}\n Note @Container manages container lifecycle for you. Use a static field to reuse the container across tests in the class.getHost() and getPort() are provided by Testcontainers/GenericContainer; getPort() maps the container\u2019s internal port to a random free host port.Once the container is up, you can call the Convert endpoint through docling-serve-client:
import java.net.URI;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;\nimport ai.docling.serve.api.convert.request.options.OutputFormat;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.request.target.InBodyTarget;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\n\nString baseUrl = \"http://\" + docling.getHost() + \":\" + docling.getPort();\nDoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder().baseUrl(baseUrl).build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(HttpSource.builder().url(URI.create(\"https://arxiv.org/pdf/2408.09869\")).build())\n .options(ConvertDocumentOptions.builder()\n .toFormat(OutputFormat.MARKDOWN)\n .includeImages(true)\n .build())\n .target(InBodyTarget.builder().build())\n .build();\n\nConvertDocumentResponse response = api.convertSource(request);\n// Assert on response.getDocument().getMarkdownContent(), errors, timings, etc.\n"},{"location":"testcontainers/#configuration","title":"Configuration","text":"The container is configured via DoclingServeContainerConfig. Use its fluent builder to customize:
import java.time.Duration;\nimport java.util.Map;\nimport ai.docling.testcontainers.serve.config.DoclingServeContainerConfig;\nimport ai.docling.testcontainers.serve.DoclingServeContainer;\n\nDoclingServeContainerConfig config = DoclingServeContainerConfig.builder()\n // Override the image if you need a different tag or registry\n .image(\"ghcr.io/docling-project/docling-serve:v1.9.0\")\n // Enable the optional web UI served by Docling Serve\n .enableUi(true)\n // Pass environment variables to fine\u2011tune behavior\n .containerEnv(Map.of(\n // Example: configure OCR languages or pipeline hints if supported by the server\n \"DOCLING_OCR_LANG\", \"eng,deu\"\n ))\n // Increase startup timeout if your CI is slow to pull images\n .startupTimeout(Duration.ofMinutes(2))\n .build();\n\nDoclingServeContainer container = new DoclingServeContainer(config);\n"},{"location":"testcontainers/#defaults","title":"Defaults","text":"5001 (exposed and mapped automatically)ghcr.io/docling-project/docling-serve:<version>static containers for faster test suites; or use reusability where applicable per Testcontainers guidelines.@Testcontainers test base to avoid repeated pulls.http:// base URLs, the reference client forces HTTP/1.1 to interoperate smoothly with FastAPI.start()/stop().docling-serve-apidocling-serve-clientThe docling-testing area contains tooling used to validate Docling Serve images and to help you test your integration. The main utility today is a small Quarkus/Picocli command that automatically verifies multiple Docling Serve versions by:
If you\u2019re looking to test your application code against a running server during unit/integration tests, consider the Testcontainers module instead: - docling-testcontainers
docling-testing","text":"Submodule: docling-testing/docling-version-tests
docling-serve-client) to call the Health and Convert endpointsghcr.io)You can run the CLI directly from the repository using the Quarkus Gradle plugin.
Option A \u2014 Dev mode (quick iteration):
./gradlew :docling-version-tests:quarkusDev\n Option B \u2014 Build a runnable JAR and execute it:
# Build the application\n./gradlew :docling-version-tests:build\n\n# Run it\njava -jar docling-testing/docling-version-tests/build/quarkus-app/quarkus-run.jar\n Notes: - The CLI will spin up Docker containers; ensure your user can access the Docker daemon. - By default it fetches all version tags for the given image and tests them serially (configurable with --parallelism).
These map to the Picocli command docling-serve-version-tests.
-p, --parallelism (int, default 1): How many versions to verify in parallel.-i, --image (string, default docling-project/docling-serve): The image repository name (without registry and tag).-r, --registry (string, default ghcr.io): Which registry to query for tags and pull from.-o, --output (path, default results): Output directory. A timestamped subfolder is created per run.-t, --tags (multiple): Explicit list of tags to test. If omitted, the tool fetches all available version tags from the registry.-g, --create-github-issue (boolean, default true): When enabled, and if configured with credentials, creates/updates a GitHub issue on failures.Examples:
# Test the latest published versions from GHCR, one at a time\n./gradlew :docling-version-tests:quarkusDev\n\n# Test a specific set of tags in parallel\n./gradlew :docling-version-tests:quarkusDev \\\n -p 3 \\\n -t v1.8.0 \\\n -t v1.7.3 \\\n -t v1.6.5\n\n# Save artifacts under a custom directory and disable GitHub issue creation\n./gradlew :docling-version-tests:quarkusDev \\\n -o ./my-results \\\n --no-create-github-issue\n"},{"location":"testing/#what-the-tool-verifies","title":"What the tool verifies","text":"For each tag under test, the tool:
ghcr.io/<registry>/<image>:<tag> with Testcontainers (default internal port 5001)./health using DoclingServeApi.health().DoclingServeApi.convertSource() on a simple HTTP source.Under the hood, this is implemented in: - ai.docling.client.tester.service.TagsTester (spins up the container, runs checks) - ai.docling.client.tester.VersionTestsCommand (parses options, parallelizes work, aggregates results)
At the end of a run, you\u2019ll find a timestamped directory under the output path, for example:
results/\n results-20250101T121314Z/\n summary.md # Markdown summary of tags tested and outcomes\n <tag>-server.log # Logs captured from the Docling Serve container for each tag\n ...\n Depending on your configuration, a GitHub issue may be created or updated to include the summary table and failure details.
"},{"location":"testing/#ci-tips","title":"CI tips","text":"--parallelism prudently on shared or small CI runners to avoid resource contention.docling-serve-clientdocling-testcontainersDocling Java 0.3.1 provides a number of new features, enhancements, and bug fixes. This page includes the highlights of the release, but you can also check out the full release notes for more details about each new feature and bug fix.
"},{"location":"whats-new/#docling-serve","title":"Docling Serve","text":""},{"location":"whats-new/#031","title":"0.3.1","text":"docling-serve-api and docling-serve-client.pretty-print configuration option to DoclingServeClient to enable pretty printing of JSON requests and responses.docling-serve-api module have been moved from the ai.docling.api.serve package to the ai.docling.serve.api package.docling-serve-client module have been moved from the ai.docling.client.serve package to the ai.docling.serve.client package.docling-core module have been moved from the ai.docling.api.core package to the ai.docling.core package.DoclingServeApi provides two new methods: chunkSourceWithHierarchicalChunker() for chunking a source document with a hierarchical chunker and chunkSourceWithHybridChunker() for chunking a source document with a hybrid chunker. Read more about Docling chunkers in the Chunking section of the Docling documentation.The docling-serve-api module defines the core, framework-agnostic Java API used to communicate with a Docling Serve backend. It provides the request/response model and the main DoclingServeApi interface. You can use any implementation of this interface to talk to a running Docling Serve instance.
The base Java version is 17. This module has no other required dependencies, although it is compatible with both Jackson 2.x and 3.x.
If you need a ready-to-use HTTP implementation, see the reference client: - Docling Serve Client: docling-serve-client
Add the API dependency to your project.
GradleMavendependencies {\n implementation(\"ai.docling:docling-serve-api:0.3.1\")\n}\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-serve-api</artifactId>\n <version>0.3.1</version>\n</dependency>\n Note: The API module does not perform network I/O by itself. To call a live service, combine it with an implementation such as docling-serve-client.
Below is a minimal example using the reference client to create an implementation of DoclingServeApi, build a conversion request, and retrieve Markdown output. The request/response types all come from docling-serve-api.
import java.net.URI;\nimport ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;\nimport ai.docling.serve.api.convert.request.options.OutputFormat;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.request.target.InBodyTarget;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory; // from docling-serve-client\n\nDoclingServeApi api = DoclingServeClientBuilderFactory\n .newBuilder()\n .baseUrl(\"http://localhost:8000\") // your Docling Serve URL\n .build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(HttpSource.builder().url(URI.create(\"https://arxiv.org/pdf/2408.09869\"))\n .build())\n .options(ConvertDocumentOptions.builder()\n .toFormat(OutputFormat.MARKDOWN) // request Markdown output\n .includeImages(true)\n .build())\n .target(InBodyTarget.builder().build()) // get results in the HTTP response body\n .build();\n\nConvertDocumentResponse response = api.convertSource(request);\nSystem.out.println(response.getDocument().getMarkdownContent());\n"},{"location":"docling-serve/serve-api/#core-concepts","title":"Core concepts","text":""},{"location":"docling-serve/serve-api/#the-doclingserveapi-interface","title":"The DoclingServeApi interface","text":"Defined in ai.docling.serve.api.DoclingServeApi, this interface exposes two primary operations:
health() \u2192 returns a HealthCheckResponse with service status.convertSource(request) \u2192 submits one or more sources plus options and an optional target, returning ConvertDocumentResponse.Any HTTP or non-HTTP implementation can implement this interface. The reference implementation is provided by the docling-serve-client module.
ConvertDocumentRequest","text":"Create a request via the builder:
ConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(/* one of the supported sources */)\n .options(/* conversion options */)\n .target(/* optional delivery target */)\n .build();\n Supported sources (ai.docling.serve.api.convert.request.source): - HttpSource \u2014 fetch content from a URL (optional custom headers) - FileSource \u2014 embed content as Base64 with a filename
Targets (ai.docling.serve.api.convert.request.target): - InBodyTarget \u2014 receive results directly in the API response body (default use case) - PutTarget \u2014 the service uploads converted content via HTTP PUT to a specified URI - ZipTarget \u2014 receive a zipped result
Options (ai.docling.serve.api.convert.request.options.ConvertDocumentOptions) let you control: - Input/output formats (e.g., fromFormats, toFormats) - OCR (e.g., doOcr, forceOcr, ocrEngine, ocrLang) - PDF processing (e.g., pdfBackend) - Tables (e.g., tableMode, tableCellMatching) - Pipelines and page ranges (e.g., pipeline, pageRange) - Timeouts and error behavior (e.g., documentTimeout, abortOnError) - Enrichments (code/formula/picture), image handling, scaling, page break placeholder - VLM pipeline hints
Explore the options package for the full list of knobs you can turn.
ConvertDocumentResponse and DocumentResponse","text":"ConvertDocumentResponse contains the converted document (if any), errors, processing status, total processing_time, and detailed timings map.DocumentResponse holds the actual content fields you requested, such as md_content (Markdown), html_content, text_content, and a json_content map. It also includes the filename and doctags_content when relevant.You can ping the service to check readiness and basic status:
import ai.docling.serve.api.health.HealthCheckResponse;\n\nHealthCheckResponse health = api.health();\nSystem.out.println(\"Service status: \" + health.getStatus());\n"},{"location":"docling-serve/serve-api/#error-handling","title":"Error handling","text":"Conversion may succeed partially (e.g., some pages) while returning warnings or errors. Always inspect ConvertDocumentResponse#getErrors() and consider status:
ConvertDocumentResponse response = api.convertSource(request);\n\nif (response.getErrors() != null && !response.getErrors().isEmpty()) {\n response.getErrors().forEach(err ->\n System.err.println(\"Component: \" + err.getComponentType() + \n \", Module: \" + err.getModuleName() + \n \", Message: \" + err.getErrorMessage()));\n}\n\nif (response.getDocument() != null && response.getDocument().getMarkdownContent() != null) {\n // Use the output\n}\n The exact transport-level exceptions (e.g., timeouts, connectivity) depend on the client implementation you use. The reference client throws standard Java exceptions for HTTP and I/O failures.
"},{"location":"docling-serve/serve-api/#logging-and-builders","title":"Logging and builders","text":"DoclingServeApi exposes a toBuilder() method so implementations can be duplicated and tweaked. Most client builders, including the reference client, also expose logRequests() and logResponses() for simple diagnostics:
DoclingServeApi newApi = api.toBuilder()\n .logRequests()\n .logResponses()\n .build();\n"},{"location":"docling-serve/serve-api/#version-compatibility","title":"Version compatibility","text":"The API is tested against all published versions of Docling Serve each week. Below are the latest run results:
"},{"location":"docling-serve/serve-api/#results-for-ghcriodocling-projectdocling-serve-as-of-2025-12-02t010531617877845z","title":"Results for ghcr.io/docling-project/docling-serve as of 2025-12-02T01:05:31.617877845Z","text":"Here are the results:
Tag Result Details v1.0.1 \u2705 SUCCESS Click for run details v1.1.0 \u2705 SUCCESS Click for run details v1.0.0 \u2705 SUCCESS Click for run details v1.2.1 \u2705 SUCCESS Click for run details v1.2.2 \u2705 SUCCESS Click for run details v1.2.0 \u2705 SUCCESS Click for run details v1.3.1 \u2705 SUCCESS Click for run details v1.3.0 \u2705 SUCCESS Click for run details v1.4.0 \u2705 SUCCESS Click for run details v1.5.0 \u2705 SUCCESS Click for run details v1.4.1 \u2705 SUCCESS Click for run details v1.5.1 \u2705 SUCCESS Click for run details v1.6.0 \u2705 SUCCESS Click for run details v1.7.0 \u2705 SUCCESS Click for run details v1.7.1 \u2705 SUCCESS Click for run details v1.7.2 \u2705 SUCCESS Click for run details v1.8.0 \u2705 SUCCESS Click for run details v1.9.0 \u2705 SUCCESS Click for run details"},{"location":"docling-serve/serve-api/#details","title":"Details","text":""},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev101","title":"ghcr.io/docling-project/docling-serve:v1.0.1","text":"Click to expand ###### Message Click to collapseTag v1.0.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:59886 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:59890 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:59890 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev110","title":"ghcr.io/docling-project/docling-serve:v1.1.0","text":"Click to expand ###### Message Click to collapse Tag v1.1.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:40006 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:40014 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:40014 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev100","title":"ghcr.io/docling-project/docling-serve:v1.0.0","text":"Click to expand ###### Message Click to collapse Tag v1.0.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:38522 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:38534 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:38534 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev121","title":"ghcr.io/docling-project/docling-serve:v1.2.1","text":"Click to expand ###### Message Click to collapse Tag v1.2.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49312 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49328 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49328 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev122","title":"ghcr.io/docling-project/docling-serve:v1.2.2","text":"Click to expand ###### Message Click to collapse Tag v1.2.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50440 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50452 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50452 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev120","title":"ghcr.io/docling-project/docling-serve:v1.2.0","text":"Click to expand ###### Message Click to collapse Tag v1.2.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49238 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49250 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49250 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev131","title":"ghcr.io/docling-project/docling-serve:v1.3.1","text":"Click to expand ###### Message Click to collapse Tag v1.3.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49294 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49304 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49304 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev130","title":"ghcr.io/docling-project/docling-serve:v1.3.0","text":"Click to expand ###### Message Click to collapse Tag v1.3.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60976 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60982 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60982 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev140","title":"ghcr.io/docling-project/docling-serve:v1.4.0","text":"Click to expand ###### Message Click to collapse Tag v1.4.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:39904 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:39920 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:39920 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev150","title":"ghcr.io/docling-project/docling-serve:v1.5.0","text":"Click to expand ###### Message Click to collapse Tag v1.5.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:34606 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:34620 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:34620 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev141","title":"ghcr.io/docling-project/docling-serve:v1.4.1","text":"Click to expand ###### Message Click to collapse Tag v1.4.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:46264 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:46272 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:46272 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev151","title":"ghcr.io/docling-project/docling-serve:v1.5.1","text":"Click to expand ###### Message Click to collapse Tag v1.5.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:43484 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:43496 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:43496 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev160","title":"ghcr.io/docling-project/docling-serve:v1.6.0","text":"Click to expand ###### Message Click to collapse Tag v1.6.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50858 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50872 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50872 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev170","title":"ghcr.io/docling-project/docling-serve:v1.7.0","text":"Click to expand ###### Message Click to collapse Tag v1.7.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:54056 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:54060 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:54060 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev171","title":"ghcr.io/docling-project/docling-serve:v1.7.1","text":"Click to expand ###### Message Click to collapse Tag v1.7.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:01:17,311 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,314 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:33120 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:33136 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:33136 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev172","title":"ghcr.io/docling-project/docling-serve:v1.7.2","text":"Click to expand ###### Message Click to collapse Tag v1.7.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:32,060 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,064 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:32,291 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,292 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60552 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60562 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60562 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev180","title":"ghcr.io/docling-project/docling-serve:v1.8.0","text":"Click to expand ###### Message Click to collapse Tag v1.8.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:37,497 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,499 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:37,712 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,713 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:51968 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:51980 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:51980 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev190","title":"ghcr.io/docling-project/docling-serve:v1.9.0","text":"Click to expand ###### Message Click to collapse Tag v1.9.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:05:21,583 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,584 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49084 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49094 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49094 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/","title":"Docling Serve Client","text":"The docling-serve-client module is the reference HTTP client for talking to a Docling Serve backend.
It implements the framework\u2011agnostic DoclingServeApi interface from docling-serve-api using Java's built\u2011in HttpClient for transport and Jackson for JSON (auto\u2011detecting Jackson 2 or 3 at runtime).
If you only need the request/response model (without HTTP), use the API module: - docling-serve-api
HttpClient + Jackson).Add the client dependency to your project.
GradleMavendependencies {\n implementation(\"ai.docling:docling-serve-client:0.3.1\")\n}\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-serve-client</artifactId>\n <version>0.3.1</version>\n</dependency>\n This artifact brings in the API types transitively, so you can use DoclingServeApi, ConvertDocumentRequest, etc., directly.
Make sure you also include either a Jackson 2 or Jackson 3 dependency.
"},{"location":"docling-serve/serve-client/#quick-start","title":"Quick start","text":"Create a client with DoclingServeClientBuilderFactory, build a request, and call convertSource():
import java.net.URI;\nimport ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;\nimport ai.docling.serve.api.convert.request.options.OutputFormat;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.request.target.InBodyTarget;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory;\n\nDoclingServeApi api = DoclingServeClientBuilderFactory\n .newBuilder()\n .baseUrl(\"http://localhost:8000\") // your Docling Serve URL\n .build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(HttpSource.builder().url(URI.create(\"https://arxiv.org/pdf/2408.09869\")).build())\n .options(ConvertDocumentOptions.builder()\n .toFormat(OutputFormat.MARKDOWN)\n .includeImages(true)\n .build())\n .target(InBodyTarget.builder().build())\n .build();\n\nConvertDocumentResponse response = api.convertSource(request);\nSystem.out.println(response.getDocument().getMarkdownContent());\n"},{"location":"docling-serve/serve-client/#core-concepts-and-configuration","title":"Core concepts and configuration","text":""},{"location":"docling-serve/serve-client/#builder-factory-and-jackson-autodetection","title":"Builder factory and Jackson auto\u2011detection","text":"DoclingServeClientBuilderFactory.newBuilder() chooses an implementation based on what's on your classpath:
DoclingServeJackson3ClientDoclingServeJackson2ClientIllegalStateExceptionAdvanced: You can customize the JSON mapper via .toBuilder().jsonParser(...) on the concrete client type if you need special Jackson modules or settings.
Set the Docling Serve base URL with either a String or URI:
DoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"http://localhost:8000\")\n .build();\n Note: When using plain http://, the client enforces HTTP/1.1 for compatibility with FastAPI, which avoids HTTP/2 downgrade mishaps in some environments.
You can supply and tune a java.net.http.HttpClient.Builder:
import java.net.http.HttpClient;\nimport java.time.Duration;\n\nDoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"https://serve.example.com\")\n .httpClientBuilder(HttpClient.newBuilder()\n .connectTimeout(Duration.ofSeconds(20))\n // .proxy(ProxySelector.of(new InetSocketAddress(\"proxy\", 8080)))\n // .sslContext(customSslContext)\n )\n .build();\n"},{"location":"docling-serve/serve-client/#requestresponse-logging","title":"Request/response logging","text":"Enable lightweight logging for diagnostics:
DoclingServeApi noisy = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"http://localhost:8000\")\n .logRequests()\n .logResponses()\n .build();\n"},{"location":"docling-serve/serve-client/#health-checks","title":"Health checks","text":"import ai.docling.serve.api.health.HealthCheckResponse;\n\nHealthCheckResponse health = api.health();\nSystem.out.println(\"Service status: \" + health.getStatus());\n"},{"location":"docling-serve/serve-client/#working-with-sources-and-targets","title":"Working with sources and targets","text":"All request/response types come from docling-serve-api. Common patterns:
import ai.docling.serve.api.convert.request.source.HttpSource;\nvar httpSource = HttpSource.builder()\n .url(URI.create(\"https://example.com/file.pdf\"))\n // .header(\"Authorization\", \"Bearer ...\")\n .build();\n import java.util.Base64;\nimport ai.docling.serve.api.convert.request.source.FileSource;\nbyte[] bytes = /* read file */\nvar fileSource = FileSource.builder()\n .filename(\"report.pdf\")\n .base64String(Base64.getEncoder().encodeToString(bytes))\n .build();\n import ai.docling.serve.api.convert.request.target.InBodyTarget;\nvar target = InBodyTarget.builder().build();\n import ai.docling.serve.api.convert.request.target.PutTarget;\nvar put = PutTarget.builder()\n .uri(URI.create(\"https://storage.example.com/out/report.md\"))\n // .header(\"Authorization\", \"Bearer ...\")\n .build();\n"},{"location":"docling-serve/serve-client/#error-handling-tips","title":"Error handling tips","text":"Transport errors (DNS, TLS, connection reset, timeouts) are thrown as standard Java exceptions from HttpClient. Conversion may also return structured errors in the response body \u2014 inspect ConvertDocumentResponse#getErrors() even when content is present:
var result = api.convertSource(request);\nif (result.getErrors() != null && !result.getErrors().isEmpty()) {\n result.getErrors().forEach(err ->\n System.err.println(\"Component=\" + err.getComponentType()\n + \", Module=\" + err.getModuleName()\n + \", Message=\" + err.getErrorMessage()));\n}\n"},{"location":"docling-serve/serve-client/#version-compatibility","title":"Version compatibility","text":"The client is tested against all published versions of Docling Serve each week. Below are the latest run results:
"},{"location":"docling-serve/serve-client/#results-for-ghcriodocling-projectdocling-serve-as-of-2025-12-02t010531617877845z","title":"Results for ghcr.io/docling-project/docling-serve as of 2025-12-02T01:05:31.617877845Z","text":"Here are the results:
Tag Result Details v1.0.1 \u2705 SUCCESS Click for run details v1.1.0 \u2705 SUCCESS Click for run details v1.0.0 \u2705 SUCCESS Click for run details v1.2.1 \u2705 SUCCESS Click for run details v1.2.2 \u2705 SUCCESS Click for run details v1.2.0 \u2705 SUCCESS Click for run details v1.3.1 \u2705 SUCCESS Click for run details v1.3.0 \u2705 SUCCESS Click for run details v1.4.0 \u2705 SUCCESS Click for run details v1.5.0 \u2705 SUCCESS Click for run details v1.4.1 \u2705 SUCCESS Click for run details v1.5.1 \u2705 SUCCESS Click for run details v1.6.0 \u2705 SUCCESS Click for run details v1.7.0 \u2705 SUCCESS Click for run details v1.7.1 \u2705 SUCCESS Click for run details v1.7.2 \u2705 SUCCESS Click for run details v1.8.0 \u2705 SUCCESS Click for run details v1.9.0 \u2705 SUCCESS Click for run details"},{"location":"docling-serve/serve-client/#details","title":"Details","text":""},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev101","title":"ghcr.io/docling-project/docling-serve:v1.0.1","text":"Click to expand ###### Message Click to collapseTag v1.0.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:59886 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:59890 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:59890 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev110","title":"ghcr.io/docling-project/docling-serve:v1.1.0","text":"Click to expand ###### Message Click to collapse Tag v1.1.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:40006 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:40014 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:40014 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev100","title":"ghcr.io/docling-project/docling-serve:v1.0.0","text":"Click to expand ###### Message Click to collapse Tag v1.0.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:38522 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:38534 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:38534 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev121","title":"ghcr.io/docling-project/docling-serve:v1.2.1","text":"Click to expand ###### Message Click to collapse Tag v1.2.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49312 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49328 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49328 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev122","title":"ghcr.io/docling-project/docling-serve:v1.2.2","text":"Click to expand ###### Message Click to collapse Tag v1.2.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50440 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50452 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50452 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev120","title":"ghcr.io/docling-project/docling-serve:v1.2.0","text":"Click to expand ###### Message Click to collapse Tag v1.2.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49238 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49250 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49250 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev131","title":"ghcr.io/docling-project/docling-serve:v1.3.1","text":"Click to expand ###### Message Click to collapse Tag v1.3.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49294 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49304 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49304 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev130","title":"ghcr.io/docling-project/docling-serve:v1.3.0","text":"Click to expand ###### Message Click to collapse Tag v1.3.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60976 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60982 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60982 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev140","title":"ghcr.io/docling-project/docling-serve:v1.4.0","text":"Click to expand ###### Message Click to collapse Tag v1.4.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:39904 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:39920 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:39920 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev150","title":"ghcr.io/docling-project/docling-serve:v1.5.0","text":"Click to expand ###### Message Click to collapse Tag v1.5.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:34606 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:34620 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:34620 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev141","title":"ghcr.io/docling-project/docling-serve:v1.4.1","text":"Click to expand ###### Message Click to collapse Tag v1.4.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:46264 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:46272 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:46272 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev151","title":"ghcr.io/docling-project/docling-serve:v1.5.1","text":"Click to expand ###### Message Click to collapse Tag v1.5.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:43484 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:43496 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:43496 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev160","title":"ghcr.io/docling-project/docling-serve:v1.6.0","text":"Click to expand ###### Message Click to collapse Tag v1.6.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50858 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50872 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50872 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev170","title":"ghcr.io/docling-project/docling-serve:v1.7.0","text":"Click to expand ###### Message Click to collapse Tag v1.7.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:54056 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:54060 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:54060 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev171","title":"ghcr.io/docling-project/docling-serve:v1.7.1","text":"Click to expand ###### Message Click to collapse Tag v1.7.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:01:17,311 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,314 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:33120 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:33136 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:33136 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev172","title":"ghcr.io/docling-project/docling-serve:v1.7.2","text":"Click to expand ###### Message Click to collapse Tag v1.7.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:32,060 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,064 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:32,291 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,292 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60552 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60562 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60562 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev180","title":"ghcr.io/docling-project/docling-serve:v1.8.0","text":"Click to expand ###### Message Click to collapse Tag v1.8.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:37,497 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,499 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:37,712 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,713 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:51968 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:51980 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:51980 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev190","title":"ghcr.io/docling-project/docling-serve:v1.9.0","text":"Click to expand ###### Message Click to collapse Tag v1.9.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:05:21,583 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,584 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49084 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49094 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49094 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/","title":"Results for ghcr.io/docling-project/docling-serve as of 2025-12-02T01:05:31.617877845Z","text":"Here are the results:
Tag Result Details v1.0.1 \u2705 SUCCESS Click for run details v1.1.0 \u2705 SUCCESS Click for run details v1.0.0 \u2705 SUCCESS Click for run details v1.2.1 \u2705 SUCCESS Click for run details v1.2.2 \u2705 SUCCESS Click for run details v1.2.0 \u2705 SUCCESS Click for run details v1.3.1 \u2705 SUCCESS Click for run details v1.3.0 \u2705 SUCCESS Click for run details v1.4.0 \u2705 SUCCESS Click for run details v1.5.0 \u2705 SUCCESS Click for run details v1.4.1 \u2705 SUCCESS Click for run details v1.5.1 \u2705 SUCCESS Click for run details v1.6.0 \u2705 SUCCESS Click for run details v1.7.0 \u2705 SUCCESS Click for run details v1.7.1 \u2705 SUCCESS Click for run details v1.7.2 \u2705 SUCCESS Click for run details v1.8.0 \u2705 SUCCESS Click for run details v1.9.0 \u2705 SUCCESS Click for run details"},{"location":"includes/docling-serve/serve-compatibility/#details","title":"Details","text":""},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev101","title":"ghcr.io/docling-project/docling-serve:v1.0.1","text":"Click to expand #### Message Click to collapseTag v1.0.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:59886 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:59890 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:59890 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev110","title":"ghcr.io/docling-project/docling-serve:v1.1.0","text":"Click to expand #### Message Click to collapse Tag v1.1.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:40006 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:40014 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:40014 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev100","title":"ghcr.io/docling-project/docling-serve:v1.0.0","text":"Click to expand #### Message Click to collapse Tag v1.0.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:38522 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:38534 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:38534 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev121","title":"ghcr.io/docling-project/docling-serve:v1.2.1","text":"Click to expand #### Message Click to collapse Tag v1.2.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49312 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49328 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49328 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev122","title":"ghcr.io/docling-project/docling-serve:v1.2.2","text":"Click to expand #### Message Click to collapse Tag v1.2.2 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50440 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50452 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50452 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev120","title":"ghcr.io/docling-project/docling-serve:v1.2.0","text":"Click to expand #### Message Click to collapse Tag v1.2.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49238 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49250 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49250 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev131","title":"ghcr.io/docling-project/docling-serve:v1.3.1","text":"Click to expand #### Message Click to collapse Tag v1.3.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49294 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49304 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49304 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev130","title":"ghcr.io/docling-project/docling-serve:v1.3.0","text":"Click to expand #### Message Click to collapse Tag v1.3.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60976 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60982 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60982 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev140","title":"ghcr.io/docling-project/docling-serve:v1.4.0","text":"Click to expand #### Message Click to collapse Tag v1.4.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:39904 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:39920 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:39920 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev150","title":"ghcr.io/docling-project/docling-serve:v1.5.0","text":"Click to expand #### Message Click to collapse Tag v1.5.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:34606 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:34620 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:34620 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev141","title":"ghcr.io/docling-project/docling-serve:v1.4.1","text":"Click to expand #### Message Click to collapse Tag v1.4.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:46264 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:46272 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:46272 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev151","title":"ghcr.io/docling-project/docling-serve:v1.5.1","text":"Click to expand #### Message Click to collapse Tag v1.5.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:43484 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:43496 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:43496 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev160","title":"ghcr.io/docling-project/docling-serve:v1.6.0","text":"Click to expand #### Message Click to collapse Tag v1.6.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50858 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50872 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50872 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev170","title":"ghcr.io/docling-project/docling-serve:v1.7.0","text":"Click to expand #### Message Click to collapse Tag v1.7.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:54056 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:54060 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:54060 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev171","title":"ghcr.io/docling-project/docling-serve:v1.7.1","text":"Click to expand #### Message Click to collapse Tag v1.7.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:01:17,311 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,314 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:33120 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:33136 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:33136 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev172","title":"ghcr.io/docling-project/docling-serve:v1.7.2","text":"Click to expand #### Message Click to collapse Tag v1.7.2 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:32,060 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,064 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:32,291 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,292 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60552 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60562 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60562 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev180","title":"ghcr.io/docling-project/docling-serve:v1.8.0","text":"Click to expand #### Message Click to collapse Tag v1.8.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:37,497 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,499 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:37,712 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,713 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:51968 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:51980 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:51980 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev190","title":"ghcr.io/docling-project/docling-serve:v1.9.0","text":"Click to expand #### Message Click to collapse Tag v1.9.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:05:21,583 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,584 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49084 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49094 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49094 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"}]}
\ No newline at end of file
diff --git a/0.3.1/testcontainers/index.html b/0.3.1/testcontainers/index.html
index 69d5b246..babe6076 100644
--- a/0.3.1/testcontainers/index.html
+++ b/0.3.1/testcontainers/index.html
@@ -919,6 +919,7 @@
The docling-testcontainers module provides a ready-to-use Testcontainers integration for running a Docling Serve instance in your tests. It wraps the official container image and exposes a simple Java API so you can spin up Docling as part of your JUnit test lifecycle and exercise client code against a real server.
If you need to talk to a running server from your application code, pair this module with the reference HTTP client:
- docling-serve-client
Docling Java 0.3.1 provides a number of new features, enhancements, and bug fixes. This page includes the highlights of the release, but you can also check out the full release notes for more details about each new feature and bug fix.
docling-serve-api and docling-serve-client.pretty-print configuration option to DoclingServeClient to enable pretty printing of JSON requests and responses.docling-serve-api module have been moved from the ai.docling.api.serve package to the ai.docling.serve.api package.docling-serve-client module have been moved from the ai.docling.client.serve package to the ai.docling.serve.client package.The docling-core module provides the core data types used by Docling for document representation. It defines the DoclingDocument model, which captures the structure and content of documents across various formats, along with utilities for working with these types.
The base Java version is 17. This module has no external dependencies, making it lightweight and easy to integrate into your projects. It represents the foundational building block for the other Docling Java modules.
The docling-serve-api module defines the core, framework-agnostic Java API used to communicate
with a Docling Serve backend. It provides the request/response model and the main DoclingServeApi
interface. You can use any implementation of this interface to talk to a running
diff --git a/dev/docling-serve/serve-client/index.html b/dev/docling-serve/serve-client/index.html
index 303968e1..b666908f 100644
--- a/dev/docling-serve/serve-client/index.html
+++ b/dev/docling-serve/serve-client/index.html
@@ -1391,6 +1391,7 @@
The docling-serve-client module is the reference HTTP client for talking to a
Docling Serve backend.
It implements the framework‑agnostic DoclingServeApi interface from
diff --git a/dev/search/search_index.json b/dev/search/search_index.json
index baff3680..162b5e33 100644
--- a/dev/search/search_index.json
+++ b/dev/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Docling Java","text":"
Docling Java is the official Java client and tooling for Docling \u2014 a suite that simplifies document processing and parsing across diverse formats (with advanced PDF understanding) and integrates seamlessly with GenAI frameworks.
"},{"location":"#what-is-docling","title":"What is Docling?","text":"Docling extracts structured information from documents. It understands page layout, reading order, tables, code, formulas, and images, and exports results into convenient formats like Markdown, HTML, and JSON.
"},{"location":"#key-features","title":"Key features","text":"DoclingDocument representationThis repository provides a set of artifacts you can mix and match depending on your needs:
docling-core: Java API for working with the data types used by Docling for document representation (see Docling Core).docling-serve-api: Java API for interacting with a Docling Serve backend (framework\u2011agnostic).docling-serve-client: Reference HTTP client built with Java HttpClient and Jackson for connecting to a Docling Serve endpoint.docling-testing: Utilities for testing Docling integrations in your codebase.docling-testcontainers: A Testcontainers module for running Docling Serve in containers.The codebase is released under the MIT License. Contributions are welcome \u2014 please see CONTRIBUTING.md for guidelines and CODE_OF_CONDUCT.md for community standards.
The docling-core module provides the core data types used by Docling for document representation. It defines the DoclingDocument model, which captures the structure and content of documents across various formats, along with utilities for working with these types.
The base Java version is 17. This module has no external dependencies, making it lightweight and easy to integrate into your projects. It represents the foundational building block for the other Docling Java modules.
"},{"location":"core/#when-to-use-this-module","title":"When to use this module","text":"You typically won't need to use this module directly, as it is consumed by higher-level modules like docling-serve-api and docling-serve-client.
Add the dependency to your project.
GradleMavendependencies {\n implementation(\"ai.docling:docling-core:0.3.1\")\n}\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-core</artifactId>\n <version>0.3.1</version>\n</dependency>\n"},{"location":"core/#core-concepts","title":"Core concepts","text":"The DoclingDocument class is the primary representation of a document in Docling. It can be retrieved as the result of a document conversion process against a Docling Serve backend via the docling-serve-api or docling-serve-client modules.
To learn more about the DoclingDocument model and related types, refer to the Docling documentation: Docling Document.
Use the DoclingServeApi to convert a document by pointing at a running Docling Serve instance.
import ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory;\n\nDoclingServeApi doclingServeApi = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"<location of docling serve instance>\")\n .build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(\n HttpSource.builder()\n .url(URI.create(\"https://arxiv.org/pdf/2408.09869\"))\n .build()\n )\n .build();\n\nConvertDocumentResponse response = doclingServeApi.convertSource(request);\nSystem.out.println(response.getDocument().getMarkdownContent());\n For more examples and options, explore the modules listed above and the repository README.
"},{"location":"getting-started/#links","title":"Links","text":"The docling-testcontainers module provides a ready-to-use Testcontainers integration for running a Docling Serve instance in your tests. It wraps the official container image and exposes a simple Java API so you can spin up Docling as part of your JUnit test lifecycle and exercise client code against a real server.
If you need to talk to a running server from your application code, pair this module with the reference HTTP client: - docling-serve-client
Add the Testcontainers module to your test dependencies.
GradleMavendependencies {\n testImplementation(\"ai.docling:docling-testcontainers:0.3.1\")\n}\n <dependencies>\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-testcontainers</artifactId>\n <version>0.3.1</version>\n <scope>test</scope>\n </dependency>\n</dependencies>\n"},{"location":"testcontainers/#quick-start","title":"Quick start","text":"Spin up Docling Serve with JUnit 5 and run a simple health check using the reference client.
import static org.assertj.core.api.Assertions.assertThat;\n\nimport java.net.URI;\n\nimport org.junit.jupiter.api.Test;\nimport org.testcontainers.junit.jupiter.Container;\nimport org.testcontainers.junit.jupiter.Testcontainers;\n\nimport ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.health.HealthCheckResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory;\nimport ai.docling.testcontainers.serve.DoclingServeContainer;\nimport ai.docling.testcontainers.serve.config.DoclingServeContainerConfig;\n\n@Testcontainers\nclass DoclingContainerSmokeTest {\n @Container\n private final DoclingServeContainer docling = new DoclingServeContainer(\n DoclingServeContainerConfig.builder()\n .image(DoclingServeContainerConfig.DOCLING_IMAGE)\n .enableUi(true)\n .build()\n );\n\n @Test\n void health_is_ok() {\n String base = \"http://\" + docling.getHost() + \":\" + docling.getPort();\n\n DoclingServeApi api = DoclingServeClientBuilderFactory\n .newBuilder()\n .baseUrl(base)\n .build();\n\n HealthCheckResponse health = api.health();\n assertThat(health.getStatus()).isNotBlank();\n }\n}\n Note @Container manages container lifecycle for you. Use a static field to reuse the container across tests in the class.getHost() and getPort() are provided by Testcontainers/GenericContainer; getPort() maps the container\u2019s internal port to a random free host port.Once the container is up, you can call the Convert endpoint through docling-serve-client:
import java.net.URI;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;\nimport ai.docling.serve.api.convert.request.options.OutputFormat;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.request.target.InBodyTarget;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\n\nString baseUrl = \"http://\" + docling.getHost() + \":\" + docling.getPort();\nDoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder().baseUrl(baseUrl).build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(HttpSource.builder().url(URI.create(\"https://arxiv.org/pdf/2408.09869\")).build())\n .options(ConvertDocumentOptions.builder()\n .toFormat(OutputFormat.MARKDOWN)\n .includeImages(true)\n .build())\n .target(InBodyTarget.builder().build())\n .build();\n\nConvertDocumentResponse response = api.convertSource(request);\n// Assert on response.getDocument().getMarkdownContent(), errors, timings, etc.\n"},{"location":"testcontainers/#configuration","title":"Configuration","text":"The container is configured via DoclingServeContainerConfig. Use its fluent builder to customize:
import java.time.Duration;\nimport java.util.Map;\nimport ai.docling.testcontainers.serve.config.DoclingServeContainerConfig;\nimport ai.docling.testcontainers.serve.DoclingServeContainer;\n\nDoclingServeContainerConfig config = DoclingServeContainerConfig.builder()\n // Override the image if you need a different tag or registry\n .image(\"ghcr.io/docling-project/docling-serve:v1.9.0\")\n // Enable the optional web UI served by Docling Serve\n .enableUi(true)\n // Pass environment variables to fine\u2011tune behavior\n .containerEnv(Map.of(\n // Example: configure OCR languages or pipeline hints if supported by the server\n \"DOCLING_OCR_LANG\", \"eng,deu\"\n ))\n // Increase startup timeout if your CI is slow to pull images\n .startupTimeout(Duration.ofMinutes(2))\n .build();\n\nDoclingServeContainer container = new DoclingServeContainer(config);\n"},{"location":"testcontainers/#defaults","title":"Defaults","text":"5001 (exposed and mapped automatically)ghcr.io/docling-project/docling-serve:<version>static containers for faster test suites; or use reusability where applicable per Testcontainers guidelines.@Testcontainers test base to avoid repeated pulls.http:// base URLs, the reference client forces HTTP/1.1 to interoperate smoothly with FastAPI.start()/stop().docling-serve-apidocling-serve-clientThe docling-testing area contains tooling used to validate Docling Serve images and to help you test your integration. The main utility today is a small Quarkus/Picocli command that automatically verifies multiple Docling Serve versions by:
If you\u2019re looking to test your application code against a running server during unit/integration tests, consider the Testcontainers module instead: - docling-testcontainers
docling-testing","text":"Submodule: docling-testing/docling-version-tests
docling-serve-client) to call the Health and Convert endpointsghcr.io)You can run the CLI directly from the repository using the Quarkus Gradle plugin.
Option A \u2014 Dev mode (quick iteration):
./gradlew :docling-version-tests:quarkusDev\n Option B \u2014 Build a runnable JAR and execute it:
# Build the application\n./gradlew :docling-version-tests:build\n\n# Run it\njava -jar docling-testing/docling-version-tests/build/quarkus-app/quarkus-run.jar\n Notes: - The CLI will spin up Docker containers; ensure your user can access the Docker daemon. - By default it fetches all version tags for the given image and tests them serially (configurable with --parallelism).
These map to the Picocli command docling-serve-version-tests.
-p, --parallelism (int, default 1): How many versions to verify in parallel.-i, --image (string, default docling-project/docling-serve): The image repository name (without registry and tag).-r, --registry (string, default ghcr.io): Which registry to query for tags and pull from.-o, --output (path, default results): Output directory. A timestamped subfolder is created per run.-t, --tags (multiple): Explicit list of tags to test. If omitted, the tool fetches all available version tags from the registry.-g, --create-github-issue (boolean, default true): When enabled, and if configured with credentials, creates/updates a GitHub issue on failures.Examples:
# Test the latest published versions from GHCR, one at a time\n./gradlew :docling-version-tests:quarkusDev\n\n# Test a specific set of tags in parallel\n./gradlew :docling-version-tests:quarkusDev \\\n -p 3 \\\n -t v1.8.0 \\\n -t v1.7.3 \\\n -t v1.6.5\n\n# Save artifacts under a custom directory and disable GitHub issue creation\n./gradlew :docling-version-tests:quarkusDev \\\n -o ./my-results \\\n --no-create-github-issue\n"},{"location":"testing/#what-the-tool-verifies","title":"What the tool verifies","text":"For each tag under test, the tool:
ghcr.io/<registry>/<image>:<tag> with Testcontainers (default internal port 5001)./health using DoclingServeApi.health().DoclingServeApi.convertSource() on a simple HTTP source.Under the hood, this is implemented in: - ai.docling.client.tester.service.TagsTester (spins up the container, runs checks) - ai.docling.client.tester.VersionTestsCommand (parses options, parallelizes work, aggregates results)
At the end of a run, you\u2019ll find a timestamped directory under the output path, for example:
results/\n results-20250101T121314Z/\n summary.md # Markdown summary of tags tested and outcomes\n <tag>-server.log # Logs captured from the Docling Serve container for each tag\n ...\n Depending on your configuration, a GitHub issue may be created or updated to include the summary table and failure details.
"},{"location":"testing/#ci-tips","title":"CI tips","text":"--parallelism prudently on shared or small CI runners to avoid resource contention.docling-serve-clientdocling-testcontainersDocling Java 0.3.1 provides a number of new features, enhancements, and bug fixes. This page includes the highlights of the release, but you can also check out the full release notes for more details about each new feature and bug fix.
"},{"location":"whats-new/#docling-serve","title":"Docling Serve","text":"docling-serve-api module have been moved from the ai.docling.api.serve package to the ai.docling.serve.api package.docling-serve-client module have been moved from the ai.docling.client.serve package to the ai.docling.serve.client package.docling-core module have been moved from the ai.docling.api.core package to the ai.docling.core package.DoclingServeApi provides two new methods: chunkSourceWithHierarchicalChunker() for chunking a source document with a hierarchical chunker and chunkSourceWithHybridChunker() for chunking a source document with a hybrid chunker. Read more about Docling chunkers in the Chunking section of the Docling documentation.The docling-serve-api module defines the core, framework-agnostic Java API used to communicate with a Docling Serve backend. It provides the request/response model and the main DoclingServeApi interface. You can use any implementation of this interface to talk to a running Docling Serve instance.
The base Java version is 17. This module has no other required dependencies, although it is compatible with both Jackson 2.x and 3.x.
If you need a ready-to-use HTTP implementation, see the reference client: - Docling Serve Client: docling-serve-client
Add the API dependency to your project.
GradleMavendependencies {\n implementation(\"ai.docling:docling-serve-api:0.3.1\")\n}\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-serve-api</artifactId>\n <version>0.3.1</version>\n</dependency>\n Note: The API module does not perform network I/O by itself. To call a live service, combine it with an implementation such as docling-serve-client.
Below is a minimal example using the reference client to create an implementation of DoclingServeApi, build a conversion request, and retrieve Markdown output. The request/response types all come from docling-serve-api.
import java.net.URI;\nimport ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;\nimport ai.docling.serve.api.convert.request.options.OutputFormat;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.request.target.InBodyTarget;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory; // from docling-serve-client\n\nDoclingServeApi api = DoclingServeClientBuilderFactory\n .newBuilder()\n .baseUrl(\"http://localhost:8000\") // your Docling Serve URL\n .build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(HttpSource.builder().url(URI.create(\"https://arxiv.org/pdf/2408.09869\"))\n .build())\n .options(ConvertDocumentOptions.builder()\n .toFormat(OutputFormat.MARKDOWN) // request Markdown output\n .includeImages(true)\n .build())\n .target(InBodyTarget.builder().build()) // get results in the HTTP response body\n .build();\n\nConvertDocumentResponse response = api.convertSource(request);\nSystem.out.println(response.getDocument().getMarkdownContent());\n"},{"location":"docling-serve/serve-api/#core-concepts","title":"Core concepts","text":""},{"location":"docling-serve/serve-api/#the-doclingserveapi-interface","title":"The DoclingServeApi interface","text":"Defined in ai.docling.serve.api.DoclingServeApi, this interface exposes two primary operations:
health() \u2192 returns a HealthCheckResponse with service status.convertSource(request) \u2192 submits one or more sources plus options and an optional target, returning ConvertDocumentResponse.Any HTTP or non-HTTP implementation can implement this interface. The reference implementation is provided by the docling-serve-client module.
ConvertDocumentRequest","text":"Create a request via the builder:
ConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(/* one of the supported sources */)\n .options(/* conversion options */)\n .target(/* optional delivery target */)\n .build();\n Supported sources (ai.docling.serve.api.convert.request.source): - HttpSource \u2014 fetch content from a URL (optional custom headers) - FileSource \u2014 embed content as Base64 with a filename
Targets (ai.docling.serve.api.convert.request.target): - InBodyTarget \u2014 receive results directly in the API response body (default use case) - PutTarget \u2014 the service uploads converted content via HTTP PUT to a specified URI - ZipTarget \u2014 receive a zipped result
Options (ai.docling.serve.api.convert.request.options.ConvertDocumentOptions) let you control: - Input/output formats (e.g., fromFormats, toFormats) - OCR (e.g., doOcr, forceOcr, ocrEngine, ocrLang) - PDF processing (e.g., pdfBackend) - Tables (e.g., tableMode, tableCellMatching) - Pipelines and page ranges (e.g., pipeline, pageRange) - Timeouts and error behavior (e.g., documentTimeout, abortOnError) - Enrichments (code/formula/picture), image handling, scaling, page break placeholder - VLM pipeline hints
Explore the options package for the full list of knobs you can turn.
ConvertDocumentResponse and DocumentResponse","text":"ConvertDocumentResponse contains the converted document (if any), errors, processing status, total processing_time, and detailed timings map.DocumentResponse holds the actual content fields you requested, such as md_content (Markdown), html_content, text_content, and a json_content map. It also includes the filename and doctags_content when relevant.You can ping the service to check readiness and basic status:
import ai.docling.serve.api.health.HealthCheckResponse;\n\nHealthCheckResponse health = api.health();\nSystem.out.println(\"Service status: \" + health.getStatus());\n"},{"location":"docling-serve/serve-api/#error-handling","title":"Error handling","text":"Conversion may succeed partially (e.g., some pages) while returning warnings or errors. Always inspect ConvertDocumentResponse#getErrors() and consider status:
ConvertDocumentResponse response = api.convertSource(request);\n\nif (response.getErrors() != null && !response.getErrors().isEmpty()) {\n response.getErrors().forEach(err ->\n System.err.println(\"Component: \" + err.getComponentType() + \n \", Module: \" + err.getModuleName() + \n \", Message: \" + err.getErrorMessage()));\n}\n\nif (response.getDocument() != null && response.getDocument().getMarkdownContent() != null) {\n // Use the output\n}\n The exact transport-level exceptions (e.g., timeouts, connectivity) depend on the client implementation you use. The reference client throws standard Java exceptions for HTTP and I/O failures.
"},{"location":"docling-serve/serve-api/#logging-and-builders","title":"Logging and builders","text":"DoclingServeApi exposes a toBuilder() method so implementations can be duplicated and tweaked. Most client builders, including the reference client, also expose logRequests() and logResponses() for simple diagnostics:
DoclingServeApi newApi = api.toBuilder()\n .logRequests()\n .logResponses()\n .build();\n"},{"location":"docling-serve/serve-api/#version-compatibility","title":"Version compatibility","text":"The API is tested against all published versions of Docling Serve each week. Below are the latest run results:
"},{"location":"docling-serve/serve-api/#results-for-ghcriodocling-projectdocling-serve-as-of-2025-12-02t010531617877845z","title":"Results for ghcr.io/docling-project/docling-serve as of 2025-12-02T01:05:31.617877845Z","text":"Here are the results:
Tag Result Details v1.0.1 \u2705 SUCCESS Click for run details v1.1.0 \u2705 SUCCESS Click for run details v1.0.0 \u2705 SUCCESS Click for run details v1.2.1 \u2705 SUCCESS Click for run details v1.2.2 \u2705 SUCCESS Click for run details v1.2.0 \u2705 SUCCESS Click for run details v1.3.1 \u2705 SUCCESS Click for run details v1.3.0 \u2705 SUCCESS Click for run details v1.4.0 \u2705 SUCCESS Click for run details v1.5.0 \u2705 SUCCESS Click for run details v1.4.1 \u2705 SUCCESS Click for run details v1.5.1 \u2705 SUCCESS Click for run details v1.6.0 \u2705 SUCCESS Click for run details v1.7.0 \u2705 SUCCESS Click for run details v1.7.1 \u2705 SUCCESS Click for run details v1.7.2 \u2705 SUCCESS Click for run details v1.8.0 \u2705 SUCCESS Click for run details v1.9.0 \u2705 SUCCESS Click for run details"},{"location":"docling-serve/serve-api/#details","title":"Details","text":""},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev101","title":"ghcr.io/docling-project/docling-serve:v1.0.1","text":"Click to expand ###### Message Click to collapseTag v1.0.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:59886 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:59890 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:59890 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev110","title":"ghcr.io/docling-project/docling-serve:v1.1.0","text":"Click to expand ###### Message Click to collapse Tag v1.1.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:40006 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:40014 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:40014 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev100","title":"ghcr.io/docling-project/docling-serve:v1.0.0","text":"Click to expand ###### Message Click to collapse Tag v1.0.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:38522 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:38534 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:38534 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev121","title":"ghcr.io/docling-project/docling-serve:v1.2.1","text":"Click to expand ###### Message Click to collapse Tag v1.2.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49312 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49328 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49328 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev122","title":"ghcr.io/docling-project/docling-serve:v1.2.2","text":"Click to expand ###### Message Click to collapse Tag v1.2.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50440 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50452 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50452 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev120","title":"ghcr.io/docling-project/docling-serve:v1.2.0","text":"Click to expand ###### Message Click to collapse Tag v1.2.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49238 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49250 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49250 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev131","title":"ghcr.io/docling-project/docling-serve:v1.3.1","text":"Click to expand ###### Message Click to collapse Tag v1.3.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49294 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49304 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49304 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev130","title":"ghcr.io/docling-project/docling-serve:v1.3.0","text":"Click to expand ###### Message Click to collapse Tag v1.3.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60976 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60982 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60982 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev140","title":"ghcr.io/docling-project/docling-serve:v1.4.0","text":"Click to expand ###### Message Click to collapse Tag v1.4.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:39904 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:39920 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:39920 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev150","title":"ghcr.io/docling-project/docling-serve:v1.5.0","text":"Click to expand ###### Message Click to collapse Tag v1.5.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:34606 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:34620 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:34620 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev141","title":"ghcr.io/docling-project/docling-serve:v1.4.1","text":"Click to expand ###### Message Click to collapse Tag v1.4.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:46264 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:46272 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:46272 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev151","title":"ghcr.io/docling-project/docling-serve:v1.5.1","text":"Click to expand ###### Message Click to collapse Tag v1.5.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:43484 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:43496 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:43496 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev160","title":"ghcr.io/docling-project/docling-serve:v1.6.0","text":"Click to expand ###### Message Click to collapse Tag v1.6.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50858 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50872 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50872 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev170","title":"ghcr.io/docling-project/docling-serve:v1.7.0","text":"Click to expand ###### Message Click to collapse Tag v1.7.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:54056 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:54060 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:54060 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev171","title":"ghcr.io/docling-project/docling-serve:v1.7.1","text":"Click to expand ###### Message Click to collapse Tag v1.7.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:01:17,311 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,314 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:33120 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:33136 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:33136 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev172","title":"ghcr.io/docling-project/docling-serve:v1.7.2","text":"Click to expand ###### Message Click to collapse Tag v1.7.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:32,060 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,064 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:32,291 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,292 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60552 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60562 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60562 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev180","title":"ghcr.io/docling-project/docling-serve:v1.8.0","text":"Click to expand ###### Message Click to collapse Tag v1.8.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:37,497 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,499 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:37,712 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,713 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:51968 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:51980 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:51980 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev190","title":"ghcr.io/docling-project/docling-serve:v1.9.0","text":"Click to expand ###### Message Click to collapse Tag v1.9.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:05:21,583 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,584 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49084 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49094 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49094 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/","title":"Docling Serve Client","text":"The docling-serve-client module is the reference HTTP client for talking to a Docling Serve backend.
It implements the framework\u2011agnostic DoclingServeApi interface from docling-serve-api using Java's built\u2011in HttpClient for transport and Jackson for JSON (auto\u2011detecting Jackson 2 or 3 at runtime).
If you only need the request/response model (without HTTP), use the API module: - docling-serve-api
HttpClient + Jackson).Add the client dependency to your project.
GradleMavendependencies {\n implementation(\"ai.docling:docling-serve-client:0.3.1\")\n}\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-serve-client</artifactId>\n <version>0.3.1</version>\n</dependency>\n This artifact brings in the API types transitively, so you can use DoclingServeApi, ConvertDocumentRequest, etc., directly.
Make sure you also include either a Jackson 2 or Jackson 3 dependency.
"},{"location":"docling-serve/serve-client/#quick-start","title":"Quick start","text":"Create a client with DoclingServeClientBuilderFactory, build a request, and call convertSource():
import java.net.URI;\nimport ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;\nimport ai.docling.serve.api.convert.request.options.OutputFormat;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.request.target.InBodyTarget;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory;\n\nDoclingServeApi api = DoclingServeClientBuilderFactory\n .newBuilder()\n .baseUrl(\"http://localhost:8000\") // your Docling Serve URL\n .build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(HttpSource.builder().url(URI.create(\"https://arxiv.org/pdf/2408.09869\")).build())\n .options(ConvertDocumentOptions.builder()\n .toFormat(OutputFormat.MARKDOWN)\n .includeImages(true)\n .build())\n .target(InBodyTarget.builder().build())\n .build();\n\nConvertDocumentResponse response = api.convertSource(request);\nSystem.out.println(response.getDocument().getMarkdownContent());\n"},{"location":"docling-serve/serve-client/#core-concepts-and-configuration","title":"Core concepts and configuration","text":""},{"location":"docling-serve/serve-client/#builder-factory-and-jackson-autodetection","title":"Builder factory and Jackson auto\u2011detection","text":"DoclingServeClientBuilderFactory.newBuilder() chooses an implementation based on what's on your classpath:
DoclingServeJackson3ClientDoclingServeJackson2ClientIllegalStateExceptionAdvanced: You can customize the JSON mapper via .toBuilder().jsonParser(...) on the concrete client type if you need special Jackson modules or settings.
Set the Docling Serve base URL with either a String or URI:
DoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"http://localhost:8000\")\n .build();\n Note: When using plain http://, the client enforces HTTP/1.1 for compatibility with FastAPI, which avoids HTTP/2 downgrade mishaps in some environments.
You can supply and tune a java.net.http.HttpClient.Builder:
import java.net.http.HttpClient;\nimport java.time.Duration;\n\nDoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"https://serve.example.com\")\n .httpClientBuilder(HttpClient.newBuilder()\n .connectTimeout(Duration.ofSeconds(20))\n // .proxy(ProxySelector.of(new InetSocketAddress(\"proxy\", 8080)))\n // .sslContext(customSslContext)\n )\n .build();\n"},{"location":"docling-serve/serve-client/#requestresponse-logging","title":"Request/response logging","text":"Enable lightweight logging for diagnostics:
DoclingServeApi noisy = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"http://localhost:8000\")\n .logRequests()\n .logResponses()\n .build();\n"},{"location":"docling-serve/serve-client/#health-checks","title":"Health checks","text":"import ai.docling.serve.api.health.HealthCheckResponse;\n\nHealthCheckResponse health = api.health();\nSystem.out.println(\"Service status: \" + health.getStatus());\n"},{"location":"docling-serve/serve-client/#working-with-sources-and-targets","title":"Working with sources and targets","text":"All request/response types come from docling-serve-api. Common patterns:
import ai.docling.serve.api.convert.request.source.HttpSource;\nvar httpSource = HttpSource.builder()\n .url(URI.create(\"https://example.com/file.pdf\"))\n // .header(\"Authorization\", \"Bearer ...\")\n .build();\n import java.util.Base64;\nimport ai.docling.serve.api.convert.request.source.FileSource;\nbyte[] bytes = /* read file */\nvar fileSource = FileSource.builder()\n .filename(\"report.pdf\")\n .base64String(Base64.getEncoder().encodeToString(bytes))\n .build();\n import ai.docling.serve.api.convert.request.target.InBodyTarget;\nvar target = InBodyTarget.builder().build();\n import ai.docling.serve.api.convert.request.target.PutTarget;\nvar put = PutTarget.builder()\n .uri(URI.create(\"https://storage.example.com/out/report.md\"))\n // .header(\"Authorization\", \"Bearer ...\")\n .build();\n"},{"location":"docling-serve/serve-client/#error-handling-tips","title":"Error handling tips","text":"Transport errors (DNS, TLS, connection reset, timeouts) are thrown as standard Java exceptions from HttpClient. Conversion may also return structured errors in the response body \u2014 inspect ConvertDocumentResponse#getErrors() even when content is present:
var result = api.convertSource(request);\nif (result.getErrors() != null && !result.getErrors().isEmpty()) {\n result.getErrors().forEach(err ->\n System.err.println(\"Component=\" + err.getComponentType()\n + \", Module=\" + err.getModuleName()\n + \", Message=\" + err.getErrorMessage()));\n}\n"},{"location":"docling-serve/serve-client/#version-compatibility","title":"Version compatibility","text":"The client is tested against all published versions of Docling Serve each week. Below are the latest run results:
"},{"location":"docling-serve/serve-client/#results-for-ghcriodocling-projectdocling-serve-as-of-2025-12-02t010531617877845z","title":"Results for ghcr.io/docling-project/docling-serve as of 2025-12-02T01:05:31.617877845Z","text":"Here are the results:
Tag Result Details v1.0.1 \u2705 SUCCESS Click for run details v1.1.0 \u2705 SUCCESS Click for run details v1.0.0 \u2705 SUCCESS Click for run details v1.2.1 \u2705 SUCCESS Click for run details v1.2.2 \u2705 SUCCESS Click for run details v1.2.0 \u2705 SUCCESS Click for run details v1.3.1 \u2705 SUCCESS Click for run details v1.3.0 \u2705 SUCCESS Click for run details v1.4.0 \u2705 SUCCESS Click for run details v1.5.0 \u2705 SUCCESS Click for run details v1.4.1 \u2705 SUCCESS Click for run details v1.5.1 \u2705 SUCCESS Click for run details v1.6.0 \u2705 SUCCESS Click for run details v1.7.0 \u2705 SUCCESS Click for run details v1.7.1 \u2705 SUCCESS Click for run details v1.7.2 \u2705 SUCCESS Click for run details v1.8.0 \u2705 SUCCESS Click for run details v1.9.0 \u2705 SUCCESS Click for run details"},{"location":"docling-serve/serve-client/#details","title":"Details","text":""},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev101","title":"ghcr.io/docling-project/docling-serve:v1.0.1","text":"Click to expand ###### Message Click to collapseTag v1.0.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:59886 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:59890 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:59890 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev110","title":"ghcr.io/docling-project/docling-serve:v1.1.0","text":"Click to expand ###### Message Click to collapse Tag v1.1.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:40006 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:40014 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:40014 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev100","title":"ghcr.io/docling-project/docling-serve:v1.0.0","text":"Click to expand ###### Message Click to collapse Tag v1.0.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:38522 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:38534 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:38534 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev121","title":"ghcr.io/docling-project/docling-serve:v1.2.1","text":"Click to expand ###### Message Click to collapse Tag v1.2.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49312 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49328 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49328 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev122","title":"ghcr.io/docling-project/docling-serve:v1.2.2","text":"Click to expand ###### Message Click to collapse Tag v1.2.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50440 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50452 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50452 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev120","title":"ghcr.io/docling-project/docling-serve:v1.2.0","text":"Click to expand ###### Message Click to collapse Tag v1.2.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49238 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49250 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49250 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev131","title":"ghcr.io/docling-project/docling-serve:v1.3.1","text":"Click to expand ###### Message Click to collapse Tag v1.3.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49294 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49304 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49304 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev130","title":"ghcr.io/docling-project/docling-serve:v1.3.0","text":"Click to expand ###### Message Click to collapse Tag v1.3.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60976 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60982 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60982 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev140","title":"ghcr.io/docling-project/docling-serve:v1.4.0","text":"Click to expand ###### Message Click to collapse Tag v1.4.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:39904 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:39920 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:39920 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev150","title":"ghcr.io/docling-project/docling-serve:v1.5.0","text":"Click to expand ###### Message Click to collapse Tag v1.5.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:34606 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:34620 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:34620 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev141","title":"ghcr.io/docling-project/docling-serve:v1.4.1","text":"Click to expand ###### Message Click to collapse Tag v1.4.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:46264 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:46272 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:46272 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev151","title":"ghcr.io/docling-project/docling-serve:v1.5.1","text":"Click to expand ###### Message Click to collapse Tag v1.5.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:43484 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:43496 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:43496 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev160","title":"ghcr.io/docling-project/docling-serve:v1.6.0","text":"Click to expand ###### Message Click to collapse Tag v1.6.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50858 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50872 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50872 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev170","title":"ghcr.io/docling-project/docling-serve:v1.7.0","text":"Click to expand ###### Message Click to collapse Tag v1.7.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:54056 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:54060 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:54060 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev171","title":"ghcr.io/docling-project/docling-serve:v1.7.1","text":"Click to expand ###### Message Click to collapse Tag v1.7.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:01:17,311 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,314 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:33120 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:33136 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:33136 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev172","title":"ghcr.io/docling-project/docling-serve:v1.7.2","text":"Click to expand ###### Message Click to collapse Tag v1.7.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:32,060 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,064 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:32,291 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,292 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60552 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60562 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60562 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev180","title":"ghcr.io/docling-project/docling-serve:v1.8.0","text":"Click to expand ###### Message Click to collapse Tag v1.8.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:37,497 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,499 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:37,712 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,713 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:51968 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:51980 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:51980 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev190","title":"ghcr.io/docling-project/docling-serve:v1.9.0","text":"Click to expand ###### Message Click to collapse Tag v1.9.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:05:21,583 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,584 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49084 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49094 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49094 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/","title":"Results for ghcr.io/docling-project/docling-serve as of 2025-12-02T01:05:31.617877845Z","text":"Here are the results:
Tag Result Details v1.0.1 \u2705 SUCCESS Click for run details v1.1.0 \u2705 SUCCESS Click for run details v1.0.0 \u2705 SUCCESS Click for run details v1.2.1 \u2705 SUCCESS Click for run details v1.2.2 \u2705 SUCCESS Click for run details v1.2.0 \u2705 SUCCESS Click for run details v1.3.1 \u2705 SUCCESS Click for run details v1.3.0 \u2705 SUCCESS Click for run details v1.4.0 \u2705 SUCCESS Click for run details v1.5.0 \u2705 SUCCESS Click for run details v1.4.1 \u2705 SUCCESS Click for run details v1.5.1 \u2705 SUCCESS Click for run details v1.6.0 \u2705 SUCCESS Click for run details v1.7.0 \u2705 SUCCESS Click for run details v1.7.1 \u2705 SUCCESS Click for run details v1.7.2 \u2705 SUCCESS Click for run details v1.8.0 \u2705 SUCCESS Click for run details v1.9.0 \u2705 SUCCESS Click for run details"},{"location":"includes/docling-serve/serve-compatibility/#details","title":"Details","text":""},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev101","title":"ghcr.io/docling-project/docling-serve:v1.0.1","text":"Click to expand #### Message Click to collapseTag v1.0.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:59886 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:59890 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:59890 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev110","title":"ghcr.io/docling-project/docling-serve:v1.1.0","text":"Click to expand #### Message Click to collapse Tag v1.1.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:40006 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:40014 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:40014 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev100","title":"ghcr.io/docling-project/docling-serve:v1.0.0","text":"Click to expand #### Message Click to collapse Tag v1.0.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:38522 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:38534 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:38534 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev121","title":"ghcr.io/docling-project/docling-serve:v1.2.1","text":"Click to expand #### Message Click to collapse Tag v1.2.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49312 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49328 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49328 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev122","title":"ghcr.io/docling-project/docling-serve:v1.2.2","text":"Click to expand #### Message Click to collapse Tag v1.2.2 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50440 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50452 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50452 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev120","title":"ghcr.io/docling-project/docling-serve:v1.2.0","text":"Click to expand #### Message Click to collapse Tag v1.2.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49238 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49250 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49250 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev131","title":"ghcr.io/docling-project/docling-serve:v1.3.1","text":"Click to expand #### Message Click to collapse Tag v1.3.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49294 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49304 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49304 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev130","title":"ghcr.io/docling-project/docling-serve:v1.3.0","text":"Click to expand #### Message Click to collapse Tag v1.3.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60976 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60982 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60982 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev140","title":"ghcr.io/docling-project/docling-serve:v1.4.0","text":"Click to expand #### Message Click to collapse Tag v1.4.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:39904 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:39920 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:39920 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev150","title":"ghcr.io/docling-project/docling-serve:v1.5.0","text":"Click to expand #### Message Click to collapse Tag v1.5.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:34606 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:34620 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:34620 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev141","title":"ghcr.io/docling-project/docling-serve:v1.4.1","text":"Click to expand #### Message Click to collapse Tag v1.4.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:46264 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:46272 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:46272 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev151","title":"ghcr.io/docling-project/docling-serve:v1.5.1","text":"Click to expand #### Message Click to collapse Tag v1.5.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:43484 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:43496 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:43496 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev160","title":"ghcr.io/docling-project/docling-serve:v1.6.0","text":"Click to expand #### Message Click to collapse Tag v1.6.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50858 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50872 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50872 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev170","title":"ghcr.io/docling-project/docling-serve:v1.7.0","text":"Click to expand #### Message Click to collapse Tag v1.7.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:54056 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:54060 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:54060 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev171","title":"ghcr.io/docling-project/docling-serve:v1.7.1","text":"Click to expand #### Message Click to collapse Tag v1.7.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:01:17,311 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,314 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:33120 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:33136 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:33136 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev172","title":"ghcr.io/docling-project/docling-serve:v1.7.2","text":"Click to expand #### Message Click to collapse Tag v1.7.2 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:32,060 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,064 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:32,291 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,292 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60552 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60562 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60562 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev180","title":"ghcr.io/docling-project/docling-serve:v1.8.0","text":"Click to expand #### Message Click to collapse Tag v1.8.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:37,497 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,499 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:37,712 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,713 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:51968 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:51980 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:51980 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev190","title":"ghcr.io/docling-project/docling-serve:v1.9.0","text":"Click to expand #### Message Click to collapse Tag v1.9.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:05:21,583 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,584 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49084 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49094 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49094 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"}]}
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Docling Java","text":"Docling Java is the official Java client and tooling for Docling \u2014 a suite that simplifies document processing and parsing across diverse formats (with advanced PDF understanding) and integrates seamlessly with GenAI frameworks.
"},{"location":"#what-is-docling","title":"What is Docling?","text":"Docling extracts structured information from documents. It understands page layout, reading order, tables, code, formulas, and images, and exports results into convenient formats like Markdown, HTML, and JSON.
"},{"location":"#key-features","title":"Key features","text":"DoclingDocument representationThis repository provides a set of artifacts you can mix and match depending on your needs:
docling-core: Java API for working with the data types used by Docling for document representation (see Docling Core).docling-serve-api: Java API for interacting with a Docling Serve backend (framework\u2011agnostic).docling-serve-client: Reference HTTP client built with Java HttpClient and Jackson for connecting to a Docling Serve endpoint.docling-testing: Utilities for testing Docling integrations in your codebase.docling-testcontainers: A Testcontainers module for running Docling Serve in containers.The codebase is released under the MIT License. Contributions are welcome \u2014 please see CONTRIBUTING.md for guidelines and CODE_OF_CONDUCT.md for community standards.
The docling-core module provides the core data types used by Docling for document representation. It defines the DoclingDocument model, which captures the structure and content of documents across various formats, along with utilities for working with these types.
The base Java version is 17. This module has no external dependencies, making it lightweight and easy to integrate into your projects. It represents the foundational building block for the other Docling Java modules.
"},{"location":"core/#when-to-use-this-module","title":"When to use this module","text":"You typically won't need to use this module directly, as it is consumed by higher-level modules like docling-serve-api and docling-serve-client.
Add the dependency to your project.
GradleMavendependencies {\n implementation(\"ai.docling:docling-core:0.3.1\")\n}\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-core</artifactId>\n <version>0.3.1</version>\n</dependency>\n"},{"location":"core/#core-concepts","title":"Core concepts","text":"The DoclingDocument class is the primary representation of a document in Docling. It can be retrieved as the result of a document conversion process against a Docling Serve backend via the docling-serve-api or docling-serve-client modules.
To learn more about the DoclingDocument model and related types, refer to the Docling documentation: Docling Document.
Use the DoclingServeApi to convert a document by pointing at a running Docling Serve instance.
import ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory;\n\nDoclingServeApi doclingServeApi = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"<location of docling serve instance>\")\n .build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(\n HttpSource.builder()\n .url(URI.create(\"https://arxiv.org/pdf/2408.09869\"))\n .build()\n )\n .build();\n\nConvertDocumentResponse response = doclingServeApi.convertSource(request);\nSystem.out.println(response.getDocument().getMarkdownContent());\n For more examples and options, explore the modules listed above and the repository README.
"},{"location":"getting-started/#links","title":"Links","text":"The docling-testcontainers module provides a ready-to-use Testcontainers integration for running a Docling Serve instance in your tests. It wraps the official container image and exposes a simple Java API so you can spin up Docling as part of your JUnit test lifecycle and exercise client code against a real server.
If you need to talk to a running server from your application code, pair this module with the reference HTTP client: - docling-serve-client
Add the Testcontainers module to your test dependencies.
GradleMavendependencies {\n testImplementation(\"ai.docling:docling-testcontainers:0.3.1\")\n}\n <dependencies>\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-testcontainers</artifactId>\n <version>0.3.1</version>\n <scope>test</scope>\n </dependency>\n</dependencies>\n"},{"location":"testcontainers/#quick-start","title":"Quick start","text":"Spin up Docling Serve with JUnit 5 and run a simple health check using the reference client.
import static org.assertj.core.api.Assertions.assertThat;\n\nimport java.net.URI;\n\nimport org.junit.jupiter.api.Test;\nimport org.testcontainers.junit.jupiter.Container;\nimport org.testcontainers.junit.jupiter.Testcontainers;\n\nimport ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.health.HealthCheckResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory;\nimport ai.docling.testcontainers.serve.DoclingServeContainer;\nimport ai.docling.testcontainers.serve.config.DoclingServeContainerConfig;\n\n@Testcontainers\nclass DoclingContainerSmokeTest {\n @Container\n private final DoclingServeContainer docling = new DoclingServeContainer(\n DoclingServeContainerConfig.builder()\n .image(DoclingServeContainerConfig.DOCLING_IMAGE)\n .enableUi(true)\n .build()\n );\n\n @Test\n void health_is_ok() {\n String base = \"http://\" + docling.getHost() + \":\" + docling.getPort();\n\n DoclingServeApi api = DoclingServeClientBuilderFactory\n .newBuilder()\n .baseUrl(base)\n .build();\n\n HealthCheckResponse health = api.health();\n assertThat(health.getStatus()).isNotBlank();\n }\n}\n Note @Container manages container lifecycle for you. Use a static field to reuse the container across tests in the class.getHost() and getPort() are provided by Testcontainers/GenericContainer; getPort() maps the container\u2019s internal port to a random free host port.Once the container is up, you can call the Convert endpoint through docling-serve-client:
import java.net.URI;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;\nimport ai.docling.serve.api.convert.request.options.OutputFormat;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.request.target.InBodyTarget;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\n\nString baseUrl = \"http://\" + docling.getHost() + \":\" + docling.getPort();\nDoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder().baseUrl(baseUrl).build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(HttpSource.builder().url(URI.create(\"https://arxiv.org/pdf/2408.09869\")).build())\n .options(ConvertDocumentOptions.builder()\n .toFormat(OutputFormat.MARKDOWN)\n .includeImages(true)\n .build())\n .target(InBodyTarget.builder().build())\n .build();\n\nConvertDocumentResponse response = api.convertSource(request);\n// Assert on response.getDocument().getMarkdownContent(), errors, timings, etc.\n"},{"location":"testcontainers/#configuration","title":"Configuration","text":"The container is configured via DoclingServeContainerConfig. Use its fluent builder to customize:
import java.time.Duration;\nimport java.util.Map;\nimport ai.docling.testcontainers.serve.config.DoclingServeContainerConfig;\nimport ai.docling.testcontainers.serve.DoclingServeContainer;\n\nDoclingServeContainerConfig config = DoclingServeContainerConfig.builder()\n // Override the image if you need a different tag or registry\n .image(\"ghcr.io/docling-project/docling-serve:v1.9.0\")\n // Enable the optional web UI served by Docling Serve\n .enableUi(true)\n // Pass environment variables to fine\u2011tune behavior\n .containerEnv(Map.of(\n // Example: configure OCR languages or pipeline hints if supported by the server\n \"DOCLING_OCR_LANG\", \"eng,deu\"\n ))\n // Increase startup timeout if your CI is slow to pull images\n .startupTimeout(Duration.ofMinutes(2))\n .build();\n\nDoclingServeContainer container = new DoclingServeContainer(config);\n"},{"location":"testcontainers/#defaults","title":"Defaults","text":"5001 (exposed and mapped automatically)ghcr.io/docling-project/docling-serve:<version>static containers for faster test suites; or use reusability where applicable per Testcontainers guidelines.@Testcontainers test base to avoid repeated pulls.http:// base URLs, the reference client forces HTTP/1.1 to interoperate smoothly with FastAPI.start()/stop().docling-serve-apidocling-serve-clientThe docling-testing area contains tooling used to validate Docling Serve images and to help you test your integration. The main utility today is a small Quarkus/Picocli command that automatically verifies multiple Docling Serve versions by:
If you\u2019re looking to test your application code against a running server during unit/integration tests, consider the Testcontainers module instead: - docling-testcontainers
docling-testing","text":"Submodule: docling-testing/docling-version-tests
docling-serve-client) to call the Health and Convert endpointsghcr.io)You can run the CLI directly from the repository using the Quarkus Gradle plugin.
Option A \u2014 Dev mode (quick iteration):
./gradlew :docling-version-tests:quarkusDev\n Option B \u2014 Build a runnable JAR and execute it:
# Build the application\n./gradlew :docling-version-tests:build\n\n# Run it\njava -jar docling-testing/docling-version-tests/build/quarkus-app/quarkus-run.jar\n Notes: - The CLI will spin up Docker containers; ensure your user can access the Docker daemon. - By default it fetches all version tags for the given image and tests them serially (configurable with --parallelism).
These map to the Picocli command docling-serve-version-tests.
-p, --parallelism (int, default 1): How many versions to verify in parallel.-i, --image (string, default docling-project/docling-serve): The image repository name (without registry and tag).-r, --registry (string, default ghcr.io): Which registry to query for tags and pull from.-o, --output (path, default results): Output directory. A timestamped subfolder is created per run.-t, --tags (multiple): Explicit list of tags to test. If omitted, the tool fetches all available version tags from the registry.-g, --create-github-issue (boolean, default true): When enabled, and if configured with credentials, creates/updates a GitHub issue on failures.Examples:
# Test the latest published versions from GHCR, one at a time\n./gradlew :docling-version-tests:quarkusDev\n\n# Test a specific set of tags in parallel\n./gradlew :docling-version-tests:quarkusDev \\\n -p 3 \\\n -t v1.8.0 \\\n -t v1.7.3 \\\n -t v1.6.5\n\n# Save artifacts under a custom directory and disable GitHub issue creation\n./gradlew :docling-version-tests:quarkusDev \\\n -o ./my-results \\\n --no-create-github-issue\n"},{"location":"testing/#what-the-tool-verifies","title":"What the tool verifies","text":"For each tag under test, the tool:
ghcr.io/<registry>/<image>:<tag> with Testcontainers (default internal port 5001)./health using DoclingServeApi.health().DoclingServeApi.convertSource() on a simple HTTP source.Under the hood, this is implemented in: - ai.docling.client.tester.service.TagsTester (spins up the container, runs checks) - ai.docling.client.tester.VersionTestsCommand (parses options, parallelizes work, aggregates results)
At the end of a run, you\u2019ll find a timestamped directory under the output path, for example:
results/\n results-20250101T121314Z/\n summary.md # Markdown summary of tags tested and outcomes\n <tag>-server.log # Logs captured from the Docling Serve container for each tag\n ...\n Depending on your configuration, a GitHub issue may be created or updated to include the summary table and failure details.
"},{"location":"testing/#ci-tips","title":"CI tips","text":"--parallelism prudently on shared or small CI runners to avoid resource contention.docling-serve-clientdocling-testcontainersDocling Java 0.3.1 provides a number of new features, enhancements, and bug fixes. This page includes the highlights of the release, but you can also check out the full release notes for more details about each new feature and bug fix.
"},{"location":"whats-new/#docling-serve","title":"Docling Serve","text":""},{"location":"whats-new/#031","title":"0.3.1","text":"docling-serve-api and docling-serve-client.pretty-print configuration option to DoclingServeClient to enable pretty printing of JSON requests and responses.docling-serve-api module have been moved from the ai.docling.api.serve package to the ai.docling.serve.api package.docling-serve-client module have been moved from the ai.docling.client.serve package to the ai.docling.serve.client package.docling-core module have been moved from the ai.docling.api.core package to the ai.docling.core package.DoclingServeApi provides two new methods: chunkSourceWithHierarchicalChunker() for chunking a source document with a hierarchical chunker and chunkSourceWithHybridChunker() for chunking a source document with a hybrid chunker. Read more about Docling chunkers in the Chunking section of the Docling documentation.The docling-serve-api module defines the core, framework-agnostic Java API used to communicate with a Docling Serve backend. It provides the request/response model and the main DoclingServeApi interface. You can use any implementation of this interface to talk to a running Docling Serve instance.
The base Java version is 17. This module has no other required dependencies, although it is compatible with both Jackson 2.x and 3.x.
If you need a ready-to-use HTTP implementation, see the reference client: - Docling Serve Client: docling-serve-client
Add the API dependency to your project.
GradleMavendependencies {\n implementation(\"ai.docling:docling-serve-api:0.3.1\")\n}\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-serve-api</artifactId>\n <version>0.3.1</version>\n</dependency>\n Note: The API module does not perform network I/O by itself. To call a live service, combine it with an implementation such as docling-serve-client.
Below is a minimal example using the reference client to create an implementation of DoclingServeApi, build a conversion request, and retrieve Markdown output. The request/response types all come from docling-serve-api.
import java.net.URI;\nimport ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;\nimport ai.docling.serve.api.convert.request.options.OutputFormat;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.request.target.InBodyTarget;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory; // from docling-serve-client\n\nDoclingServeApi api = DoclingServeClientBuilderFactory\n .newBuilder()\n .baseUrl(\"http://localhost:8000\") // your Docling Serve URL\n .build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(HttpSource.builder().url(URI.create(\"https://arxiv.org/pdf/2408.09869\"))\n .build())\n .options(ConvertDocumentOptions.builder()\n .toFormat(OutputFormat.MARKDOWN) // request Markdown output\n .includeImages(true)\n .build())\n .target(InBodyTarget.builder().build()) // get results in the HTTP response body\n .build();\n\nConvertDocumentResponse response = api.convertSource(request);\nSystem.out.println(response.getDocument().getMarkdownContent());\n"},{"location":"docling-serve/serve-api/#core-concepts","title":"Core concepts","text":""},{"location":"docling-serve/serve-api/#the-doclingserveapi-interface","title":"The DoclingServeApi interface","text":"Defined in ai.docling.serve.api.DoclingServeApi, this interface exposes two primary operations:
health() \u2192 returns a HealthCheckResponse with service status.convertSource(request) \u2192 submits one or more sources plus options and an optional target, returning ConvertDocumentResponse.Any HTTP or non-HTTP implementation can implement this interface. The reference implementation is provided by the docling-serve-client module.
ConvertDocumentRequest","text":"Create a request via the builder:
ConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(/* one of the supported sources */)\n .options(/* conversion options */)\n .target(/* optional delivery target */)\n .build();\n Supported sources (ai.docling.serve.api.convert.request.source): - HttpSource \u2014 fetch content from a URL (optional custom headers) - FileSource \u2014 embed content as Base64 with a filename
Targets (ai.docling.serve.api.convert.request.target): - InBodyTarget \u2014 receive results directly in the API response body (default use case) - PutTarget \u2014 the service uploads converted content via HTTP PUT to a specified URI - ZipTarget \u2014 receive a zipped result
Options (ai.docling.serve.api.convert.request.options.ConvertDocumentOptions) let you control: - Input/output formats (e.g., fromFormats, toFormats) - OCR (e.g., doOcr, forceOcr, ocrEngine, ocrLang) - PDF processing (e.g., pdfBackend) - Tables (e.g., tableMode, tableCellMatching) - Pipelines and page ranges (e.g., pipeline, pageRange) - Timeouts and error behavior (e.g., documentTimeout, abortOnError) - Enrichments (code/formula/picture), image handling, scaling, page break placeholder - VLM pipeline hints
Explore the options package for the full list of knobs you can turn.
ConvertDocumentResponse and DocumentResponse","text":"ConvertDocumentResponse contains the converted document (if any), errors, processing status, total processing_time, and detailed timings map.DocumentResponse holds the actual content fields you requested, such as md_content (Markdown), html_content, text_content, and a json_content map. It also includes the filename and doctags_content when relevant.You can ping the service to check readiness and basic status:
import ai.docling.serve.api.health.HealthCheckResponse;\n\nHealthCheckResponse health = api.health();\nSystem.out.println(\"Service status: \" + health.getStatus());\n"},{"location":"docling-serve/serve-api/#error-handling","title":"Error handling","text":"Conversion may succeed partially (e.g., some pages) while returning warnings or errors. Always inspect ConvertDocumentResponse#getErrors() and consider status:
ConvertDocumentResponse response = api.convertSource(request);\n\nif (response.getErrors() != null && !response.getErrors().isEmpty()) {\n response.getErrors().forEach(err ->\n System.err.println(\"Component: \" + err.getComponentType() + \n \", Module: \" + err.getModuleName() + \n \", Message: \" + err.getErrorMessage()));\n}\n\nif (response.getDocument() != null && response.getDocument().getMarkdownContent() != null) {\n // Use the output\n}\n The exact transport-level exceptions (e.g., timeouts, connectivity) depend on the client implementation you use. The reference client throws standard Java exceptions for HTTP and I/O failures.
"},{"location":"docling-serve/serve-api/#logging-and-builders","title":"Logging and builders","text":"DoclingServeApi exposes a toBuilder() method so implementations can be duplicated and tweaked. Most client builders, including the reference client, also expose logRequests() and logResponses() for simple diagnostics:
DoclingServeApi newApi = api.toBuilder()\n .logRequests()\n .logResponses()\n .build();\n"},{"location":"docling-serve/serve-api/#version-compatibility","title":"Version compatibility","text":"The API is tested against all published versions of Docling Serve each week. Below are the latest run results:
"},{"location":"docling-serve/serve-api/#results-for-ghcriodocling-projectdocling-serve-as-of-2025-12-02t010531617877845z","title":"Results for ghcr.io/docling-project/docling-serve as of 2025-12-02T01:05:31.617877845Z","text":"Here are the results:
Tag Result Details v1.0.1 \u2705 SUCCESS Click for run details v1.1.0 \u2705 SUCCESS Click for run details v1.0.0 \u2705 SUCCESS Click for run details v1.2.1 \u2705 SUCCESS Click for run details v1.2.2 \u2705 SUCCESS Click for run details v1.2.0 \u2705 SUCCESS Click for run details v1.3.1 \u2705 SUCCESS Click for run details v1.3.0 \u2705 SUCCESS Click for run details v1.4.0 \u2705 SUCCESS Click for run details v1.5.0 \u2705 SUCCESS Click for run details v1.4.1 \u2705 SUCCESS Click for run details v1.5.1 \u2705 SUCCESS Click for run details v1.6.0 \u2705 SUCCESS Click for run details v1.7.0 \u2705 SUCCESS Click for run details v1.7.1 \u2705 SUCCESS Click for run details v1.7.2 \u2705 SUCCESS Click for run details v1.8.0 \u2705 SUCCESS Click for run details v1.9.0 \u2705 SUCCESS Click for run details"},{"location":"docling-serve/serve-api/#details","title":"Details","text":""},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev101","title":"ghcr.io/docling-project/docling-serve:v1.0.1","text":"Click to expand ###### Message Click to collapseTag v1.0.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:59886 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:59890 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:59890 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev110","title":"ghcr.io/docling-project/docling-serve:v1.1.0","text":"Click to expand ###### Message Click to collapse Tag v1.1.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:40006 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:40014 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:40014 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev100","title":"ghcr.io/docling-project/docling-serve:v1.0.0","text":"Click to expand ###### Message Click to collapse Tag v1.0.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:38522 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:38534 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:38534 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev121","title":"ghcr.io/docling-project/docling-serve:v1.2.1","text":"Click to expand ###### Message Click to collapse Tag v1.2.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49312 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49328 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49328 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev122","title":"ghcr.io/docling-project/docling-serve:v1.2.2","text":"Click to expand ###### Message Click to collapse Tag v1.2.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50440 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50452 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50452 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev120","title":"ghcr.io/docling-project/docling-serve:v1.2.0","text":"Click to expand ###### Message Click to collapse Tag v1.2.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49238 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49250 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49250 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev131","title":"ghcr.io/docling-project/docling-serve:v1.3.1","text":"Click to expand ###### Message Click to collapse Tag v1.3.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49294 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49304 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49304 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev130","title":"ghcr.io/docling-project/docling-serve:v1.3.0","text":"Click to expand ###### Message Click to collapse Tag v1.3.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60976 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60982 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60982 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev140","title":"ghcr.io/docling-project/docling-serve:v1.4.0","text":"Click to expand ###### Message Click to collapse Tag v1.4.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:39904 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:39920 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:39920 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev150","title":"ghcr.io/docling-project/docling-serve:v1.5.0","text":"Click to expand ###### Message Click to collapse Tag v1.5.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:34606 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:34620 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:34620 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev141","title":"ghcr.io/docling-project/docling-serve:v1.4.1","text":"Click to expand ###### Message Click to collapse Tag v1.4.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:46264 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:46272 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:46272 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev151","title":"ghcr.io/docling-project/docling-serve:v1.5.1","text":"Click to expand ###### Message Click to collapse Tag v1.5.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:43484 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:43496 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:43496 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev160","title":"ghcr.io/docling-project/docling-serve:v1.6.0","text":"Click to expand ###### Message Click to collapse Tag v1.6.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50858 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50872 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50872 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev170","title":"ghcr.io/docling-project/docling-serve:v1.7.0","text":"Click to expand ###### Message Click to collapse Tag v1.7.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:54056 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:54060 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:54060 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev171","title":"ghcr.io/docling-project/docling-serve:v1.7.1","text":"Click to expand ###### Message Click to collapse Tag v1.7.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:01:17,311 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,314 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:33120 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:33136 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:33136 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev172","title":"ghcr.io/docling-project/docling-serve:v1.7.2","text":"Click to expand ###### Message Click to collapse Tag v1.7.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:32,060 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,064 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:32,291 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,292 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60552 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60562 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60562 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev180","title":"ghcr.io/docling-project/docling-serve:v1.8.0","text":"Click to expand ###### Message Click to collapse Tag v1.8.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:37,497 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,499 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:37,712 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,713 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:51968 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:51980 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:51980 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-api/#ghcriodocling-projectdocling-servev190","title":"ghcr.io/docling-project/docling-serve:v1.9.0","text":"Click to expand ###### Message Click to collapse Tag v1.9.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:05:21,583 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,584 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49084 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49094 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49094 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/","title":"Docling Serve Client","text":"The docling-serve-client module is the reference HTTP client for talking to a Docling Serve backend.
It implements the framework\u2011agnostic DoclingServeApi interface from docling-serve-api using Java's built\u2011in HttpClient for transport and Jackson for JSON (auto\u2011detecting Jackson 2 or 3 at runtime).
If you only need the request/response model (without HTTP), use the API module: - docling-serve-api
HttpClient + Jackson).Add the client dependency to your project.
GradleMavendependencies {\n implementation(\"ai.docling:docling-serve-client:0.3.1\")\n}\n <dependency>\n <groupId>ai.docling</groupId>\n <artifactId>docling-serve-client</artifactId>\n <version>0.3.1</version>\n</dependency>\n This artifact brings in the API types transitively, so you can use DoclingServeApi, ConvertDocumentRequest, etc., directly.
Make sure you also include either a Jackson 2 or Jackson 3 dependency.
"},{"location":"docling-serve/serve-client/#quick-start","title":"Quick start","text":"Create a client with DoclingServeClientBuilderFactory, build a request, and call convertSource():
import java.net.URI;\nimport ai.docling.serve.api.DoclingServeApi;\nimport ai.docling.serve.api.convert.request.ConvertDocumentRequest;\nimport ai.docling.serve.api.convert.request.options.ConvertDocumentOptions;\nimport ai.docling.serve.api.convert.request.options.OutputFormat;\nimport ai.docling.serve.api.convert.request.source.HttpSource;\nimport ai.docling.serve.api.convert.request.target.InBodyTarget;\nimport ai.docling.serve.api.convert.response.ConvertDocumentResponse;\nimport ai.docling.serve.client.DoclingServeClientBuilderFactory;\n\nDoclingServeApi api = DoclingServeClientBuilderFactory\n .newBuilder()\n .baseUrl(\"http://localhost:8000\") // your Docling Serve URL\n .build();\n\nConvertDocumentRequest request = ConvertDocumentRequest.builder()\n .source(HttpSource.builder().url(URI.create(\"https://arxiv.org/pdf/2408.09869\")).build())\n .options(ConvertDocumentOptions.builder()\n .toFormat(OutputFormat.MARKDOWN)\n .includeImages(true)\n .build())\n .target(InBodyTarget.builder().build())\n .build();\n\nConvertDocumentResponse response = api.convertSource(request);\nSystem.out.println(response.getDocument().getMarkdownContent());\n"},{"location":"docling-serve/serve-client/#core-concepts-and-configuration","title":"Core concepts and configuration","text":""},{"location":"docling-serve/serve-client/#builder-factory-and-jackson-autodetection","title":"Builder factory and Jackson auto\u2011detection","text":"DoclingServeClientBuilderFactory.newBuilder() chooses an implementation based on what's on your classpath:
DoclingServeJackson3ClientDoclingServeJackson2ClientIllegalStateExceptionAdvanced: You can customize the JSON mapper via .toBuilder().jsonParser(...) on the concrete client type if you need special Jackson modules or settings.
Set the Docling Serve base URL with either a String or URI:
DoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"http://localhost:8000\")\n .build();\n Note: When using plain http://, the client enforces HTTP/1.1 for compatibility with FastAPI, which avoids HTTP/2 downgrade mishaps in some environments.
You can supply and tune a java.net.http.HttpClient.Builder:
import java.net.http.HttpClient;\nimport java.time.Duration;\n\nDoclingServeApi api = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"https://serve.example.com\")\n .httpClientBuilder(HttpClient.newBuilder()\n .connectTimeout(Duration.ofSeconds(20))\n // .proxy(ProxySelector.of(new InetSocketAddress(\"proxy\", 8080)))\n // .sslContext(customSslContext)\n )\n .build();\n"},{"location":"docling-serve/serve-client/#requestresponse-logging","title":"Request/response logging","text":"Enable lightweight logging for diagnostics:
DoclingServeApi noisy = DoclingServeClientBuilderFactory.newBuilder()\n .baseUrl(\"http://localhost:8000\")\n .logRequests()\n .logResponses()\n .build();\n"},{"location":"docling-serve/serve-client/#health-checks","title":"Health checks","text":"import ai.docling.serve.api.health.HealthCheckResponse;\n\nHealthCheckResponse health = api.health();\nSystem.out.println(\"Service status: \" + health.getStatus());\n"},{"location":"docling-serve/serve-client/#working-with-sources-and-targets","title":"Working with sources and targets","text":"All request/response types come from docling-serve-api. Common patterns:
import ai.docling.serve.api.convert.request.source.HttpSource;\nvar httpSource = HttpSource.builder()\n .url(URI.create(\"https://example.com/file.pdf\"))\n // .header(\"Authorization\", \"Bearer ...\")\n .build();\n import java.util.Base64;\nimport ai.docling.serve.api.convert.request.source.FileSource;\nbyte[] bytes = /* read file */\nvar fileSource = FileSource.builder()\n .filename(\"report.pdf\")\n .base64String(Base64.getEncoder().encodeToString(bytes))\n .build();\n import ai.docling.serve.api.convert.request.target.InBodyTarget;\nvar target = InBodyTarget.builder().build();\n import ai.docling.serve.api.convert.request.target.PutTarget;\nvar put = PutTarget.builder()\n .uri(URI.create(\"https://storage.example.com/out/report.md\"))\n // .header(\"Authorization\", \"Bearer ...\")\n .build();\n"},{"location":"docling-serve/serve-client/#error-handling-tips","title":"Error handling tips","text":"Transport errors (DNS, TLS, connection reset, timeouts) are thrown as standard Java exceptions from HttpClient. Conversion may also return structured errors in the response body \u2014 inspect ConvertDocumentResponse#getErrors() even when content is present:
var result = api.convertSource(request);\nif (result.getErrors() != null && !result.getErrors().isEmpty()) {\n result.getErrors().forEach(err ->\n System.err.println(\"Component=\" + err.getComponentType()\n + \", Module=\" + err.getModuleName()\n + \", Message=\" + err.getErrorMessage()));\n}\n"},{"location":"docling-serve/serve-client/#version-compatibility","title":"Version compatibility","text":"The client is tested against all published versions of Docling Serve each week. Below are the latest run results:
"},{"location":"docling-serve/serve-client/#results-for-ghcriodocling-projectdocling-serve-as-of-2025-12-02t010531617877845z","title":"Results for ghcr.io/docling-project/docling-serve as of 2025-12-02T01:05:31.617877845Z","text":"Here are the results:
Tag Result Details v1.0.1 \u2705 SUCCESS Click for run details v1.1.0 \u2705 SUCCESS Click for run details v1.0.0 \u2705 SUCCESS Click for run details v1.2.1 \u2705 SUCCESS Click for run details v1.2.2 \u2705 SUCCESS Click for run details v1.2.0 \u2705 SUCCESS Click for run details v1.3.1 \u2705 SUCCESS Click for run details v1.3.0 \u2705 SUCCESS Click for run details v1.4.0 \u2705 SUCCESS Click for run details v1.5.0 \u2705 SUCCESS Click for run details v1.4.1 \u2705 SUCCESS Click for run details v1.5.1 \u2705 SUCCESS Click for run details v1.6.0 \u2705 SUCCESS Click for run details v1.7.0 \u2705 SUCCESS Click for run details v1.7.1 \u2705 SUCCESS Click for run details v1.7.2 \u2705 SUCCESS Click for run details v1.8.0 \u2705 SUCCESS Click for run details v1.9.0 \u2705 SUCCESS Click for run details"},{"location":"docling-serve/serve-client/#details","title":"Details","text":""},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev101","title":"ghcr.io/docling-project/docling-serve:v1.0.1","text":"Click to expand ###### Message Click to collapseTag v1.0.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:59886 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:59890 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:59890 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev110","title":"ghcr.io/docling-project/docling-serve:v1.1.0","text":"Click to expand ###### Message Click to collapse Tag v1.1.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:40006 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:40014 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:40014 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev100","title":"ghcr.io/docling-project/docling-serve:v1.0.0","text":"Click to expand ###### Message Click to collapse Tag v1.0.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:38522 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:38534 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:38534 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev121","title":"ghcr.io/docling-project/docling-serve:v1.2.1","text":"Click to expand ###### Message Click to collapse Tag v1.2.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49312 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49328 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49328 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev122","title":"ghcr.io/docling-project/docling-serve:v1.2.2","text":"Click to expand ###### Message Click to collapse Tag v1.2.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50440 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50452 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50452 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev120","title":"ghcr.io/docling-project/docling-serve:v1.2.0","text":"Click to expand ###### Message Click to collapse Tag v1.2.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49238 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49250 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49250 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev131","title":"ghcr.io/docling-project/docling-serve:v1.3.1","text":"Click to expand ###### Message Click to collapse Tag v1.3.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49294 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49304 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49304 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev130","title":"ghcr.io/docling-project/docling-serve:v1.3.0","text":"Click to expand ###### Message Click to collapse Tag v1.3.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60976 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60982 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60982 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev140","title":"ghcr.io/docling-project/docling-serve:v1.4.0","text":"Click to expand ###### Message Click to collapse Tag v1.4.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:39904 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:39920 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:39920 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev150","title":"ghcr.io/docling-project/docling-serve:v1.5.0","text":"Click to expand ###### Message Click to collapse Tag v1.5.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:34606 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:34620 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:34620 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev141","title":"ghcr.io/docling-project/docling-serve:v1.4.1","text":"Click to expand ###### Message Click to collapse Tag v1.4.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:46264 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:46272 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:46272 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev151","title":"ghcr.io/docling-project/docling-serve:v1.5.1","text":"Click to expand ###### Message Click to collapse Tag v1.5.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:43484 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:43496 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:43496 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev160","title":"ghcr.io/docling-project/docling-serve:v1.6.0","text":"Click to expand ###### Message Click to collapse Tag v1.6.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50858 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50872 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50872 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev170","title":"ghcr.io/docling-project/docling-serve:v1.7.0","text":"Click to expand ###### Message Click to collapse Tag v1.7.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:54056 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:54060 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:54060 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev171","title":"ghcr.io/docling-project/docling-serve:v1.7.1","text":"Click to expand ###### Message Click to collapse Tag v1.7.1 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:01:17,311 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,314 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:33120 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:33136 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:33136 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev172","title":"ghcr.io/docling-project/docling-serve:v1.7.2","text":"Click to expand ###### Message Click to collapse Tag v1.7.2 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:32,060 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,064 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:32,291 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,292 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60552 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60562 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60562 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev180","title":"ghcr.io/docling-project/docling-serve:v1.8.0","text":"Click to expand ###### Message Click to collapse Tag v1.8.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:37,497 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,499 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:37,712 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,713 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:51968 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:51980 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:51980 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"docling-serve/serve-client/#ghcriodocling-projectdocling-servev190","title":"ghcr.io/docling-project/docling-serve:v1.9.0","text":"Click to expand ###### Message Click to collapse Tag v1.9.0 is ok\n ###### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:05:21,583 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,584 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49084 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49094 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49094 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/","title":"Results for ghcr.io/docling-project/docling-serve as of 2025-12-02T01:05:31.617877845Z","text":"Here are the results:
Tag Result Details v1.0.1 \u2705 SUCCESS Click for run details v1.1.0 \u2705 SUCCESS Click for run details v1.0.0 \u2705 SUCCESS Click for run details v1.2.1 \u2705 SUCCESS Click for run details v1.2.2 \u2705 SUCCESS Click for run details v1.2.0 \u2705 SUCCESS Click for run details v1.3.1 \u2705 SUCCESS Click for run details v1.3.0 \u2705 SUCCESS Click for run details v1.4.0 \u2705 SUCCESS Click for run details v1.5.0 \u2705 SUCCESS Click for run details v1.4.1 \u2705 SUCCESS Click for run details v1.5.1 \u2705 SUCCESS Click for run details v1.6.0 \u2705 SUCCESS Click for run details v1.7.0 \u2705 SUCCESS Click for run details v1.7.1 \u2705 SUCCESS Click for run details v1.7.2 \u2705 SUCCESS Click for run details v1.8.0 \u2705 SUCCESS Click for run details v1.9.0 \u2705 SUCCESS Click for run details"},{"location":"includes/docling-serve/serve-compatibility/#details","title":"Details","text":""},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev101","title":"ghcr.io/docling-project/docling-serve:v1.0.1","text":"Click to expand #### Message Click to collapseTag v1.0.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:59886 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:59890 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:59890 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev110","title":"ghcr.io/docling-project/docling-serve:v1.1.0","text":"Click to expand #### Message Click to collapse Tag v1.1.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:40006 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:40014 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:40014 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev100","title":"ghcr.io/docling-project/docling-serve:v1.0.0","text":"Click to expand #### Message Click to collapse Tag v1.0.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:38522 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:38534 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:38534 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev121","title":"ghcr.io/docling-project/docling-serve:v1.2.1","text":"Click to expand #### Message Click to collapse Tag v1.2.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49312 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49328 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49328 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev122","title":"ghcr.io/docling-project/docling-serve:v1.2.2","text":"Click to expand #### Message Click to collapse Tag v1.2.2 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50440 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50452 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50452 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev120","title":"ghcr.io/docling-project/docling-serve:v1.2.0","text":"Click to expand #### Message Click to collapse Tag v1.2.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49238 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49250 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49250 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev131","title":"ghcr.io/docling-project/docling-serve:v1.3.1","text":"Click to expand #### Message Click to collapse Tag v1.3.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49294 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49304 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49304 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev130","title":"ghcr.io/docling-project/docling-serve:v1.3.0","text":"Click to expand #### Message Click to collapse Tag v1.3.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60976 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60982 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60982 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev140","title":"ghcr.io/docling-project/docling-serve:v1.4.0","text":"Click to expand #### Message Click to collapse Tag v1.4.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:39904 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:39920 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:39920 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev150","title":"ghcr.io/docling-project/docling-serve:v1.5.0","text":"Click to expand #### Message Click to collapse Tag v1.5.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:34606 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:34620 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:34620 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev141","title":"ghcr.io/docling-project/docling-serve:v1.4.1","text":"Click to expand #### Message Click to collapse Tag v1.4.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:46264 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:46272 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:46272 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev151","title":"ghcr.io/docling-project/docling-serve:v1.5.1","text":"Click to expand #### Message Click to collapse Tag v1.5.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:43484 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:43496 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:43496 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev160","title":"ghcr.io/docling-project/docling-serve:v1.6.0","text":"Click to expand #### Message Click to collapse Tag v1.6.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:50858 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:50872 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:50872 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev170","title":"ghcr.io/docling-project/docling-serve:v1.7.0","text":"Click to expand #### Message Click to collapse Tag v1.7.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:54056 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:54060 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:54060 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev171","title":"ghcr.io/docling-project/docling-serve:v1.7.1","text":"Click to expand #### Message Click to collapse Tag v1.7.1 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:01:17,311 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,314 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,419 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:01:17,463 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:33120 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:33136 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:33136 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev172","title":"ghcr.io/docling-project/docling-serve:v1.7.2","text":"Click to expand #### Message Click to collapse Tag v1.7.2 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:32,060 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,064 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,216 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:32,291 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:32,292 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:60552 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:60562 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:60562 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev180","title":"ghcr.io/docling-project/docling-serve:v1.8.0","text":"Click to expand #### Message Click to collapse Tag v1.8.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:04:37,497 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,499 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,635 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:04:37,712 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:04:37,713 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:51968 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:51980 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:51980 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"},{"location":"includes/docling-serve/serve-compatibility/#ghcriodocling-projectdocling-servev190","title":"ghcr.io/docling-project/docling-serve:v1.9.0","text":"Click to expand #### Message Click to collapse Tag v1.9.0 is ok\n #### Docling server logs click to expand Starting production server \ud83d\ude80\n\nServer started at http://0.0.0.0:5001\nDocumentation at http://0.0.0.0:5001/docs\nScalar docs at http://0.0.0.0:5001/scalar\n\nLogs:\nINFO: Started server process [1]\nINFO: Waiting for application startup.\n[INFO] 2025-12-02 01:05:21,583 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,584 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/det/ch_PP-OCRv4_det_infer.onnx\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,653 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/cls/ch_ppocr_mobile_v2.0_cls_infer.onnx\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] base.py:22: Using engine_name: onnxruntime\n[INFO] 2025-12-02 01:05:21,689 [RapidOCR] main.py:53: Using /opt/app-root/src/.cache/docling/models/RapidOcr/onnx/PP-OCRv4/rec/ch_PP-OCRv4_rec_infer.onnx\nINFO: Application startup complete.\nINFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)\nINFO: 172.17.0.1:49084 - \"GET /health HTTP/1.1\" 200 OK\nINFO: 172.17.0.1:49094 - \"GET /health HTTP/1.1\" 200 OK\nWARNING:docling_core.types.doc.document:Parameter `strict_text` has been deprecated and will be ignored.\nINFO: 172.17.0.1:49094 - \"POST /v1/convert/source HTTP/1.1\" 200 OK\n"}]}
\ No newline at end of file
diff --git a/dev/testcontainers/index.html b/dev/testcontainers/index.html
index 69d5b246..babe6076 100644
--- a/dev/testcontainers/index.html
+++ b/dev/testcontainers/index.html
@@ -919,6 +919,7 @@
The docling-testcontainers module provides a ready-to-use Testcontainers integration for running a Docling Serve instance in your tests. It wraps the official container image and exposes a simple Java API so you can spin up Docling as part of your JUnit test lifecycle and exercise client code against a real server.
If you need to talk to a running server from your application code, pair this module with the reference HTTP client:
- docling-serve-client
Docling Java 0.3.1 provides a number of new features, enhancements, and bug fixes. This page includes the highlights of the release, but you can also check out the full release notes for more details about each new feature and bug fix.
docling-serve-api and docling-serve-client.pretty-print configuration option to DoclingServeClient to enable pretty printing of JSON requests and responses.docling-serve-api module have been moved from the ai.docling.api.serve package to the ai.docling.serve.api package.docling-serve-client module have been moved from the ai.docling.client.serve package to the ai.docling.serve.client package.