Skip to content

Processes

List Processes

List processes for the organization.

Omit limit to get every process; total is the full count either way.

Parameters

NameInTypeRequiredDescription
limitqueryintegernoMax rows to return (1-100). Omit to return every row.
offsetqueryintegernoRows to skip — pass the previous response’s next_offset.
org_idpathstring (uuid)yes
project_idquerystringnoFilter by project id, or ‘none’ for uncategorized processes.

Responses

StatusDescriptionBody
200Successful ResponsePage_ProcessResponse_
422Validation ErrorHTTPValidationError

Create Process

Create a process (no revision yet). Requires admin/owner role.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes

Request body (required)

FieldTypeRequiredDescription
descriptionstringno
namestringyes
titlestringyes

Responses

StatusDescriptionBody
201Successful ResponseProcessResponse
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/processes/{process_id}

Section titled “GET /api/orgs/{org_id}/processes/{process_id}”

Get Process

Get a process, including its current deployed revision (if any).

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
process_idpathstringyes

Responses

StatusDescriptionBody
200Successful ResponseProcessResponse
422Validation ErrorHTTPValidationError

PATCH /api/orgs/{org_id}/processes/{process_id}

Section titled “PATCH /api/orgs/{org_id}/processes/{process_id}”

Update Process

Update a process’s title/description. Requires admin/owner role.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
process_idpathstringyes

Request body (required)

FieldTypeRequiredDescription
descriptionstringyes
titlestringno

Responses

StatusDescriptionBody
200Successful ResponseProcessResponse
422Validation ErrorHTTPValidationError

DELETE /api/orgs/{org_id}/processes/{process_id}

Section titled “DELETE /api/orgs/{org_id}/processes/{process_id}”

Delete Process

Soft-delete a process. Requires admin/owner role.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
process_idpathstringyes

Responses

StatusDescriptionBody
204Successful Response
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/processes/{process_id}/revisions

Section titled “GET /api/orgs/{org_id}/processes/{process_id}/revisions”

List Revisions

List a process’s revisions, newest version first.

Not itself in the Phase-1 milestone’s endpoint list, but the CLI’s deploy --revision N (and “deploy latest”) need a way to resolve a version to a revision id, so it’s added here as the minimal completion.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
process_idpathstringyes

Responses

StatusDescriptionBody
200Successful ResponseProcessRevisionResponse[]
422Validation ErrorHTTPValidationError

POST /api/orgs/{org_id}/processes/{process_id}/revisions

Section titled “POST /api/orgs/{org_id}/processes/{process_id}/revisions”

Push Revision

Push a draft revision from a definition. Requires admin/owner role.

Parse errors return 422 carrying the validator’s plain wording (step id, field, what is wrong, what is valid) rather than the raw pydantic dump. Pushing a definition whose hash matches the latest revision is a no-op — the existing revision is returned (200) instead of creating a duplicate.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
process_idpathstringyes

Request body (required)

FieldTypeRequiredDescription
definitionobjectyes
sop_textstringno

Responses

StatusDescriptionBody
201Successful ResponseProcessRevisionResponse
422Validation ErrorHTTPValidationError

POST /api/orgs/{org_id}/processes/{process_id}/revisions/{revision_id}/deploy

Section titled “POST /api/orgs/{org_id}/processes/{process_id}/revisions/{revision_id}/deploy”

Deploy Revision

Validate + deploy a draft revision. Requires admin/owner role.

Validation errors return 422 with {errors, warnings} in the validator’s plain-language wording, verbatim. On success the revision’s tool snapshot is pinned, the previously-deployed revision is archived, and the process’s stale_reason is cleared (a re-deploy is the re-evaluation).

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
process_idpathstringyes
revision_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseDeployResponse
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/processes/{process_id}/runs

Section titled “GET /api/orgs/{org_id}/processes/{process_id}/runs”

List Runs

List runs for a process, newest first. Optional status filter.

Parameters

NameInTypeRequiredDescription
limitqueryintegerno
offsetqueryintegerno
org_idpathstring (uuid)yes
process_idpathstringyes
statusquerystringno

Responses

StatusDescriptionBody
200Successful ResponseProcessRunListResponse
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}

Section titled “GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}”

Get Run

Get a run’s detail, including its steps ordered by creation time.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
process_idpathstringyes
run_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseProcessRunDetailResponse
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/agent-calls

Section titled “GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/agent-calls”

List Run Agent Calls

Scalar-only index of a run’s agent block step turns/distill calls.

Parameters

NameInTypeRequiredDescription
limitqueryintegerno
offsetqueryintegerno
org_idpathstring (uuid)yes
process_idpathstringyes
run_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseProcessAgentCallListResponse
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/agent-calls/{call_id}

Section titled “GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/agent-calls/{call_id}”

Get Run Agent Call

Full detail (incl. request/response messages) for one agent-step call.

Parameters

NameInTypeRequiredDescription
call_idpathstring (uuid)yes
org_idpathstring (uuid)yes
process_idpathstringyes
run_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseProcessAgentCallDetailResponse
422Validation ErrorHTTPValidationError

POST /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/cancel

Section titled “POST /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/cancel”

Cancel Run

Cancel a running / human-waiting run.

Tombstones the run row (step children check it at every step boundary) and cancels the durable Hatchet parent plus any in-flight step children. A run already in a terminal state is a no-op (cancelled: false).

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
process_idpathstringyes
run_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseCancelRunResponse
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/events

Section titled “GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/events”

List Run Events

A run’s timeline, ordered oldest first.

Parameters

NameInTypeRequiredDescription
limitqueryintegerno
offsetqueryintegerno
org_idpathstring (uuid)yes
process_idpathstringyes
run_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseProcessRunEventListResponse
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/llm-calls

Section titled “GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/llm-calls”

List Run Llm Calls

Scalar-only index of a run’s llm/prompt block exchanges.

The heavy request_messages/response_message JSONB is never loaded — use GET .../llm-calls/{call_id} for the full exchange.

Parameters

NameInTypeRequiredDescription
limitqueryintegerno
offsetqueryintegerno
org_idpathstring (uuid)yes
process_idpathstringyes
run_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseProcessLlmCallListResponse
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/llm-calls/{call_id}

Section titled “GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/llm-calls/{call_id}”

Get Run Llm Call

Full detail (incl. request/response messages) for one LLM call.

Parameters

NameInTypeRequiredDescription
call_idpathstring (uuid)yes
org_idpathstring (uuid)yes
process_idpathstringyes
run_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseProcessLlmCallDetailResponse
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/repairs

Section titled “GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/repairs”

List Run Repairs

Index of a run’s tool-payload repair verdicts.

The scalar/text fields (tool_slug/error/fixable/reason/ payload_diff) ARE the payload here; the heavy raw exchange is still excluded — use GET .../repairs/{call_id} for that.

Parameters

NameInTypeRequiredDescription
limitqueryintegerno
offsetqueryintegerno
org_idpathstring (uuid)yes
process_idpathstringyes
run_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseProcessRepairCallListResponse
422Validation ErrorHTTPValidationError

GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/repairs/{call_id}

Section titled “GET /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/repairs/{call_id}”

Get Run Repair

Full detail (incl. request/response messages) for one repair call.

Parameters

NameInTypeRequiredDescription
call_idpathstring (uuid)yes
org_idpathstring (uuid)yes
process_idpathstringyes
run_idpathstring (uuid)yes

Responses

StatusDescriptionBody
200Successful ResponseProcessRepairCallDetailResponse
422Validation ErrorHTTPValidationError

POST /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/restart

Section titled “POST /api/orgs/{org_id}/processes/{process_id}/runs/{run_id}/restart”

Restart Run

Restart a terminal run as a brand-new run on the process’s current deployed revision.

Only terminal runs (completed / flagged / failed / cancelled) can be restarted — an active run (running / waiting_human) must be cancelled first. The new run replays the old run’s envelope against whatever revision is currently deployed (by design — restart always runs the current revision, not a pinned replay) and does not touch the original run.

Parameters

NameInTypeRequiredDescription
org_idpathstring (uuid)yes
process_idpathstringyes
run_idpathstring (uuid)yes

Responses

StatusDescriptionBody
201Successful ResponseProcessRunResponse
422Validation ErrorHTTPValidationError