SDK & Developer DX July 28, 2026 5 min read

Introducing OpenCrawling Java Client SDK: Programmatic Ingestion Control for Java 25 & Spring Boot

We are excited to announce the release of the official OpenCrawling Java Client SDK (`oc-java-client-sdk`)! Enterprise developers building on Java 25 and Spring Boot 4 can now programmatically orchestrate ingestion jobs, manage connectors, generate Auto-Narrativization templates, and trigger AIOps root cause analysis directly from their microservices.


01. Why a Dedicated Java SDK?

As OpenCrawling adoption expands across enterprise systems, integrating existing Spring Boot applications, Quarkus services, or custom backend jobs with OpenCrawling required manually constructing raw HTTP REST requests, serializing JSON payloads, and managing error handling manually.

The new oc-java-client-sdk eliminates this friction by delivering a strongly typed, fluent builder-pattern API built on modern Java 25. It leverages native java.net.http.HttpClient for lightweight, non-blocking I/O with Virtual Threads, requiring zero heavy third-party HTTP transport libraries.

02. Core Capabilities Overview

03. Quick Start Guide

Add the dependency to your pom.xml:

<dependency>
    <groupId>org.opencrawling</groupId>
    <artifactId>oc-java-client-sdk</artifactId>
    <version>1.0.0</version>
</dependency>

Initializing the Client

import org.opencrawling.sdk.OpenCrawlingClient;
import java.time.Duration;

OpenCrawlingClient client = OpenCrawlingClient.builder()
        .baseUrl("http://localhost:8080")
        .apiKey("your-api-key")
        .connectTimeout(Duration.ofSeconds(10))
        .readTimeout(Duration.ofSeconds(30))
        .build();

Creating and Triggering an Ingestion Job

import org.opencrawling.sdk.models.JobRequest;
import org.opencrawling.sdk.models.JobResponse;
import org.opencrawling.sdk.models.NarrativizationConfig;

JobResponse job = client.jobs().create(
    JobRequest.builder()
        .name("Enterprise Documentation Crawler")
        .targetUrl("https://docs.example.com")
        .repositoryConnector("FileSystem_Local")
        .outputConnector("PGVector_Output")
        .transformationConnector("Ollama_Embedding_Default")
        .narrativization(NarrativizationConfig.builder()
            .enabled(true)
            .template("Document titled {{title}} with content: {{content}}")
            .build())
        .build()
);

// Trigger job execution
client.jobs().start(job.id());

04. Spring Boot Autoconfiguration

When running inside a Spring Boot application, simply configure properties in application.yml:

opencrawling:
  client:
    base-url: http://localhost:8080
    api-key: your-api-key
    connect-timeout: 10s
    read-timeout: 30s

The OpenCrawlingClient bean will be autoconfigured and ready for injection into your Spring services:

@Service
public class IngestionService {

    private final OpenCrawlingClient client;

    public IngestionService(OpenCrawlingClient client) {
        this.client = client;
    }

    public void triggerJob(String jobId) {
        client.jobs().start(jobId);
    }
}
Explore Full SDK Documentation: Interactive code examples, Copilot template generation snippets, and AIOps diagnostic queries are available on the Official Java SDK Page.