Edit this page on Github

API Documentation

Web Service API

If you want to use DAISY Pipeline 2 as a web server and implement your own client, you need to know about the web service API.

Java Client Library

We provide a Java HTTP client library for communicating with a Pipeline server. To use it in your Maven project include the following dependencies:


The entry point of the library is the class org.daisy.pipeline.client.http.WS.

Go Client Library

We also provide a HTTP client library for the Go language. Run the following command to download and install the “pipeline” package:

go get github.com/daisy/pipeline-clientlib-go

Java API

DAISY Pipeline 2 may also be used directly as a Java library instead of via client-server communication.

These are the most important classes in the Java API:

List available scripts.
List available inputs, options and outputs of a script.
Get data types of script options.
Specify job inputs/options.
Create, delete and queue jobs.
Run and monitor jobs and access job results.
Access job messages.

The ScriptRegistry, DatatypeRegistry and JobManagerFactory objects are OSGi services that can be injected as follows:

import org.daisy.pipeline.script.ScriptRegistry;

import org.osgi.service.component.annotations.Reference;
import org.osgi.service.component.annotations.ReferenceCardinality;
import org.osgi.service.component.annotations.ReferencePolicy;


    name = "ScriptRegistry",
    service = ScriptRegistry.class,
    cardinality = ReferenceCardinality.MANDATORY,
    policy = ReferencePolicy.STATIC
public void setScriptRegistry(ScriptRegistry registry) {

Complete Javadocs

XProc Utility Libraries

APIs of Individual Modules