Skip to main content
The management API on port 8000 exposes the distillation pipeline over REST. Use this if you’re driving training from a language that doesn’t have a Python client — CI jobs, a TypeScript backend, or a Rust CLI, for example.
The REST endpoints backing the Python Distiller client. Any call you make through the SDK can also be made over HTTP.

POST /v1/distillation

Create a new distillation job. Returns immediately with status: "pending"; training happens asynchronously on the engine host.

Request body

Response

Curl

GET /v1/distillation/

Fetch the current state of a job.

Response

Status values progress: pendingrunningcompleted | failed | cancelled. phase is more granular: initializingdata_generationcurationtrainingexport → (done).

Polling idiom

GET /v1/distillation — list jobs

Response

Supported query params: tenant_id, status, limit (max 100), offset.

POST /v1/distillation//cancel

Cancel a running job. Safe at any phase — partial artifacts are kept.

GET /v1/distillation//artifacts

Fetch file paths on the engine host for the trained adapter + GGUF exports. Paths are relative to the engine’s OPENTRACY_DATA_DIR.

Errors