Skip to content

List a Solution's produced runs

GET
/api/solutions/{slug}/runs/
curl --request GET \
--url http://localhost:8000/api/solutions/example/runs/ \
--header 'Authorization: Bearer <token>'

The reports-manager list (#1192): the team’s runs for this Solution, newest first, paginated (LimitOffsetPagination). Active-only; ?archived=true returns the archived list instead (the two never mix).

slug
required
string
archived
boolean

true returns the archived list instead of active.

client
string format: uuid

Filter to one client (UUID).

from
string

Created-at range start (inclusive, YYYY-MM-DD, viewer-local via tz).

lang
string

en (default) / ru / es.

search
string

Case-insensitive match on the run name or client name.

sort
string

newest (default) / oldest / name / client.

status
string

Filter by run status.

to
string

Created-at range end (inclusive, YYYY-MM-DD, viewer-local via tz).

tz
string

IANA timezone for the from/to day boundaries (default UTC).

Media typeapplication/json

GET /api/solutions/<slug>/runs/ — the LimitOffsetPagination envelope over the reports-manager rows (#1192).

object
count
required
integer
next
required
string
nullable
previous
required
string
nullable
results
required
Array<object>

One row in the reports manager (#1192). name is the raw stored name (blank until the coach renames the run — the FE renders a localized fallback when blank); client_name / session_count are display helpers. sessions (the report’s constituent captures) is populated only when the view seeds a session_refs context map — see session_refs_for_runs.

object
id
required
string format: uuid
name
string
<= 200 characters
solution_slug
required
string
<= 64 characters
solution_name
required
string
activity
required
string
status
  • draft - Draft
  • ready - Ready
  • failed - Failed
string
Allowed values: draft ready failed
client_id
required
string format: uuid
nullable
client_name
required
string
session_count
required
integer
sessions
required
Array<object>

A constituent session of a run (one entry of its bindings) — enough for the reports card to render like a Sessions journal row: label + link it (the expandable “attached sessions” list) plus its headline metrics chips (#1192). Read-only projection; the run’s report is still assembled from the sessions’ metrics on retrieve.

object
id
required
string format: uuid
activity
required
string
exercise
required
string
created_at
required
string format: date-time
seq_no
required
integer
nullable
camera_view
required
string
nullable
metrics
required
Array<object>

One headline metric on a candidate row — the picker shows the top few as chips (mirrors the Sessions journal row shape).

object
key
required
string
value_num
required
number format: double
nullable
value_json
required
nullable
created_at
required
string format: date-time
archived_at
string format: date-time
nullable
Example
{
"results": [
{
"status": "draft"
}
]
}
Media typeapplication/json
object
detail
required

Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).

string
Examplegenerated
{
"detail": "example"
}
Media typeapplication/json
object
detail
required

Human-readable message, or a stable machine code for the cases a client branches on. The standard envelope for 400 (validation — a field-keyed object may appear instead), 401 (missing / invalid credentials), 403 (authenticated but not permitted), and 404 (absent — cross-team records are collapsed to 404 so the API never leaks the existence of another team’s data).

string
Examplegenerated
{
"detail": "example"
}