Skip to main content
POST
/
api
/
v1
/
custom_pipelines
Submit Custom Pipeline
import requests

url = "https://www.datalab.to/api/v1/custom_pipelines"

files = { "files.items": ("example-file", open("example-file", "rb")) }
payload = {
    "request": "<string>",
    "files": "<string>",
    "name": "<string>",
    "file_instructions": "<string>",
    "original_params": "<string>",
    "eval_rubric_id": "123"
}
headers = {"X-API-Key": "<api-key>"}

response = requests.post(url, data=payload, files=files, headers=headers)

print(response.text)
{
  "response_check_url": "<string>",
  "success": true
}

Authorizations

X-API-Key
string
header
required

Cookies

wos-session
string
datalab_active_team
string

Body

multipart/form-data
request
string
required

Natural language description of desired processor behavior

files
file[]
required

Example documents (PDFs, images, etc.) to use for testing

name
string | null

Short display name for the processor (max 120 chars)

file_instructions
string | null

JSON array of per-file instructions: [{"filename": "doc.pdf", "general_instructions": "...", "page_instructions": [{"page": 3, "instructions": "..."}]}]

original_params
string | null

JSON string of base ChandraParsePipeline parameters (e.g., '{"output_formats": ["markdown"]}')

eval_rubric_id
integer | null

Optional ID of an EvalRubric to attach as the eval definition for this processor

Response

Successful Response

Initial response returned immediately after submitting a custom processor request.

response_check_url
string
required

URL to poll for status and results. Once generation completes, the status response will include the processor_id for execution.

success
boolean
default:true

Whether the request was accepted