Skip to main content
A Job is a saved configuration for an async unit of AI work. A Job Run is a single execution of that job with its own status, timestamps, and output.

Endpoints


Get job schemas

GET /jobs/schemas Returns all available job types with their full config schemas and field descriptions. Example request:
Response fields (array of objects): Example response:

Create a job

POST /jobs Request body:
Use GET /jobs/schemas to retrieve the full config schema for a job type before creating a job.
Example request:
Response fields: Example response:

List jobs

GET /jobs Query parameters: Example request:
Returns {"items": [...], "count": N} where each item is a job object with the same fields as the create response.

Get a job

GET /jobs/{job_id} Example request:
Returns a job object with the same fields as the create response.

Get latest run

GET /jobs/{job_id}/latest-run Example request:
Returns the most recent job run object with the same fields as the trigger response. Returns 204 No Content if the job has no runs yet.

Update a job

PATCH /jobs/{job_id} All fields are optional. Example request:
Returns the updated job object with the same fields as the create response.

Delete a job

DELETE /jobs/{job_id} Soft-deletes a job. Example request:
Example response:

Trigger a job run

POST /job-runs Request body: Example request:
Response fields: Job run status values: Example response:

Get a job run

GET /job-runs/{job_run_id} Example request:
Returns a job run object with the same fields as the trigger response. Poll this endpoint until status reaches completed, failed, or cancelled.

List job runs

GET /job-runs Query parameters: Example request:
Returns {"items": [...], "count": N} where each item is a job run object with the same fields as the trigger response.

Cancel a job run

POST /job-runs/{job_run_id}/cancel Example request:
Response fields: Example response: