Skip to content

List Run Activity

GET /runs/activity

What every in-flight run is doing right now, for the caller’s scope (D-5329).

Declared above GET /{run_id}, and the order is load-bearing. Starlette matches in declaration order, so with the id route first /runs/activity is parsed as a run id and answers 422 on a path that exists — the same shape GET /alerts/incidents sits in above GET /alerts/{alert_rule_id}.

?status= accepts the whole RunStatus vocabulary and refuses the terminal half with a 422 naming it. Narrowing the parameter’s type to the three in-flight labels would put a second, hand-copied spelling of IN_FLIGHT in the signature; one frozen copy of that set already exists, in the index’s predicate, and two would disagree.

viewer, matching GET /runs: whoever may read the run list may read where those runs are. It is deliberately not under /system, which is floored at admin for the fleet-wide counters D-552 scopes to the caller — this is the tenant’s own runs, and putting it there would have put the screen behind a role the people who watch it do not hold.

NameInTypeNotes
agent_idquerystring (uuid) | nulloptional—
statusqueryqueued | running | suspended | succeeded | failed | timed_out | cancelled | nulloptional—
limitqueryintegeroptionalDefault 50. min 1 max 200
cursorquerystring | nulloptional—
offsetqueryinteger | nulloptionalmin 0
StatusDescriptionBody
200Successful ResponsePage_RunActivityView_
422Validation ErrorHTTPValidationError
Terminal window
curl -X GET https://your-deployment.example.com/runs/activity \
-H "Authorization: Bearer $COBRE_TOKEN"
FieldTypeNotes
itemsRunActivityView[]required—
next_cursorstring | nulloptional—
totalinteger | nulloptional—