Skip to content

API: runs

Status: GA Access: token required API contract: 0.3.0 · capability 2026-09-03.1 View as Markdown Open in Claude Open in ChatGPT

List Runs

Open as a page →

filtered, paginated run list (default sort createtime:desc).

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
statusquerynostring | null
pipeline_idquerynostring | null
entityquerynostring | null
contractquerynointeger | null
limitquerynointeger
offsetquerynointeger
sortquerynostring

Responses:

CodeMeaningBody
200Successful ResponseRunListResponse
401Missing or invalid authentication credentialsErrorResponse
422Validation ErrorHTTPValidationError

Launch Run

Open as a page →

validate, create a queued run, stage the fixture, enqueue the job.

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
Idempotency-KeyheadernostringOptional.

Request body: application/json — schema RunLaunchRequest

FieldTypeRequiredDescription
allow_regeneratebooleanno
entitystringyes
guidintegeryes
mode"live" | "mock" | "replay"no
paramsobjectno
pipeline_idstringyes
pipeline_variantstring | nullno
pipeline_versionstring | nullno
stepsarray of string | nullno

Example:

{
"allow_regenerate": false,
"entity": "generated_articles",
"guid": 31567,
"mode": "live",
"params": {},
"pipeline_id": "generate"
}

Responses:

CodeMeaningBody
201Successful ResponsePipelineRunRead
401Missing or invalid authentication credentialsErrorResponse
409The record already generated successfully and allow_regenerate is false, or the entity is lockedErrorResponse
422Validation ErrorHTTPValidationError
429Agent token: the concurrent-run cap for this token is reachedErrorResponse

Example response (201):

{
"createtime": "2026-09-03T02:14:04Z",
"current_step": "make_article_structure",
"entity_guid": 31567,
"entity_name": "generated_articles",
"guid": 1842,
"metrics": {
"llm_calls": 11
},
"mode": "live",
"pipeline_id": "generate",
"started_at": "2026-09-03T02:14:05Z",
"started_by": "agent@entherium.dev",
"status": "running",
"steps_done": 7,
"steps_total": 18,
"trigger": "api",
"updatetime": "2026-09-03T02:19:40Z"
}

List Pipelines

Open as a page →

every registered pipeline definition.

Auth: Authorization: Bearer <token> required

Responses:

CodeMeaningBody
200Successful Responsearray of PipelineDefRead
401Missing or invalid authentication credentialsErrorResponse

Get Pipeline Def

Open as a page →

a single pipeline definition.

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
pipeline_idpathyesstring

Responses:

CodeMeaningBody
200Successful ResponsePipelineDefRead
401Missing or invalid authentication credentialsErrorResponse
422Validation ErrorHTTPValidationError

Run Preflight

Open as a page →

Can this run launch? Returns can_launch + blocking reasons WITHOUT creating a run, so a caller can check quota, pool and pipeline state before spending a launch.

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
pipeline_idqueryyesstring
guidqueryyesinteger
entityquerynostring | null

Responses:

CodeMeaningBody
200Successful Responseobject
401Missing or invalid authentication credentialsErrorResponse
422Validation ErrorHTTPValidationError

List Schedules

Open as a page →

every schedule, newest first.

Auth: Authorization: Bearer <token> required

Responses:

CodeMeaningBody
200Successful Responsearray of RunScheduleRead
401Missing or invalid authentication credentialsErrorResponse

Create Schedule

Open as a page →

create a schedule (validates pipeline + cron; computes next_fire_at).

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
Idempotency-KeyheadernostringOptional.

Request body: application/json — schema RunScheduleCreate

FieldTypeRequiredDescription
cronstringyes
enabledbooleanno
entitystringyes
max_targets_per_fireintegerno
modestringno
namestringyes
paramsobjectno
pipeline_idstringyes
selectorobjectyes
stepsarray of string | nullno

Responses:

CodeMeaningBody
201Successful ResponseRunScheduleRead
401Missing or invalid authentication credentialsErrorResponse
422Validation ErrorHTTPValidationError

DELETE /api/v1/runs/schedules/{schedule_id}

Section titled “DELETE /api/v1/runs/schedules/{schedule_id}”

Delete Schedule

Open as a page →

delete a schedule (idempotent).

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
schedule_idpathyesinteger
Idempotency-KeyheadernostringOptional.

Responses:

CodeMeaningBody
204Successful Response—
401Missing or invalid authentication credentialsErrorResponse
422Validation ErrorHTTPValidationError

Get Schedule

Open as a page →

a single schedule.

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
schedule_idpathyesinteger

Responses:

CodeMeaningBody
200Successful ResponseRunScheduleRead
401Missing or invalid authentication credentialsErrorResponse
422Validation ErrorHTTPValidationError

PATCH /api/v1/runs/schedules/{schedule_id}

Section titled “PATCH /api/v1/runs/schedules/{schedule_id}”

Update Schedule

Open as a page →

partial update; a changed cron recomputes next_fire_at.

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
schedule_idpathyesinteger
Idempotency-KeyheadernostringOptional.

Request body: application/json — schema RunScheduleUpdate

FieldTypeRequiredDescription
cronstring | nullno
enabledboolean | nullno
max_targets_per_fireinteger | nullno
modestring | nullno
namestring | nullno
paramsobject | nullno
selectorobject | nullno
stepsarray of string | nullno

Responses:

CodeMeaningBody
200Successful ResponseRunScheduleRead
401Missing or invalid authentication credentialsErrorResponse
422Validation ErrorHTTPValidationError

POST /api/v1/runs/schedules/{schedule_id}/fire

Section titled “POST /api/v1/runs/schedules/{schedule_id}/fire”

Fire Now

Open as a page →

fire now (same seam as the tick-loop / an external Cloud Scheduler).

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
schedule_idpathyesinteger
Idempotency-KeyheadernostringOptional.

Responses:

CodeMeaningBody
200Successful ResponseScheduleFireResult
401Missing or invalid authentication credentialsErrorResponse
422Validation ErrorHTTPValidationError

GET /api/v1/runs/schedules/{schedule_id}/runs

Section titled “GET /api/v1/runs/schedules/{schedule_id}/runs”

Schedule Runs

Open as a page →

guids of the runs this schedule produced (params.schedule_id).

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
schedule_idpathyesinteger

Responses:

CodeMeaningBody
200Successful Responsearray of integer
401Missing or invalid authentication credentialsErrorResponse
422Validation ErrorHTTPValidationError

Get Run

Open as a page →

run record + its steps + target card + pipeline def.

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
run_guidpathyesinteger

Responses:

CodeMeaningBody
200Successful ResponseRunDetailResponse
401Missing or invalid authentication credentialsErrorResponse
422Validation ErrorHTTPValidationError

Cancel Run

Open as a page →

Cancel a run. A queued run is cancelled immediately; a run that is already executing is marked cancelled but finishes its current execution (mid-flight interruption is not implemented). Idempotent: a terminal run answers 409.

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
run_guidpathyesinteger
Idempotency-KeyheadernostringOptional.

Responses:

CodeMeaningBody
200Successful ResponsePipelineRunRead
401Missing or invalid authentication credentialsErrorResponse
409The run is already terminalErrorResponse
422Validation ErrorHTTPValidationError

Example response (200):

{
"createtime": "2026-09-03T02:14:04Z",
"current_step": "make_article_structure",
"entity_guid": 31567,
"entity_name": "generated_articles",
"guid": 1842,
"metrics": {
"llm_calls": 11
},
"mode": "live",
"pipeline_id": "generate",
"started_at": "2026-09-03T02:14:05Z",
"started_by": "agent@entherium.dev",
"status": "running",
"steps_done": 7,
"steps_total": 18,
"trigger": "api",
"updatetime": "2026-09-03T02:19:40Z"
}

Get Run Log

Open as a page →

assembled log; step filters to one step, tail keeps last N.

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
run_guidpathyesinteger
stepquerynostring | null
tailquerynointeger | null

Responses:

CodeMeaningBody
200Successful ResponseRunLogResponse
401Missing or invalid authentication credentialsErrorResponse
422Validation ErrorHTTPValidationError

Retry Run

Open as a page →

create a new run; from_step resumes from a step snapshot.

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
run_guidpathyesinteger
Idempotency-KeyheadernostringOptional.

Request body: application/json — schema RunRetryRequest

FieldTypeRequiredDescription
from_stepstring | nullno

Example:

{
"from_step": "step_15_make_layout"
}

Responses:

CodeMeaningBody
201Successful ResponsePipelineRunRead
401Missing or invalid authentication credentialsErrorResponse
409The run cannot be retried from its current stateErrorResponse
422Validation ErrorHTTPValidationError
429Agent token: the concurrent-run cap for this token is reachedErrorResponse

Example response (201):

{
"createtime": "2026-09-03T02:14:04Z",
"current_step": "make_article_structure",
"entity_guid": 31567,
"entity_name": "generated_articles",
"guid": 1842,
"metrics": {
"llm_calls": 11
},
"mode": "live",
"pipeline_id": "generate",
"started_at": "2026-09-03T02:14:05Z",
"started_by": "agent@entherium.dev",
"status": "running",
"steps_done": 7,
"steps_total": 18,
"trigger": "api",
"updatetime": "2026-09-03T02:19:40Z"
}

Get Run Steps

Open as a page →

the step rows of a run, ordered by seq/attempt.

Auth: Authorization: Bearer <token> required

ParameterInRequiredTypeDescription
run_guidpathyesinteger

Responses:

CodeMeaningBody
200Successful Responsearray of RunStepRead
401Missing or invalid authentication credentialsErrorResponse
422Validation ErrorHTTPValidationError