Skip to content

List bindable sessions for a Solution

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

Completed sessions in the workspace whose activity can fill any of the Solution’s movement slots, newest first. The Selection page flags per-slot view-angle mismatches client-side.

slug
required
string
Media typeapplication/json
object
results
required
Array<object>

A session offered for binding on the Selection page. Carries a few headline metrics so the picker row reads like the Sessions journal (metric chips + correct review status), not an empty “No metrics yet” placeholder — and seq_no (#941) so the shared session number reads the same here as in the journal. camera_view is read from Session.meta.

object
id
required
string format: uuid
seq_no
required
integer
nullable
activity
required
  • running - Running
  • walking - Walking
  • jump - Vertical Jump
  • weightlifting - Weightlifting
  • mobility - Mobility Assessment
  • workspace_wellness - Workspace Wellness
  • agility - Agility
  • fencing - Fencing
  • cycling - Cycling
  • tennis - Tennis
  • padel - Padel Tennis
  • bowling - Bowling
  • baseball - Baseball
  • football - Football
  • badminton - Badminton
  • cricket - Cricket
  • basketball - Basketball
  • scuba_diving - Scuba Diving
  • ice_hockey - Ice Hockey
  • american_football - American Football
  • fri - Falls Risk Indicator
string
Allowed values: running walking jump weightlifting mobility workspace_wellness agility fencing cycling tennis padel bowling baseball football badminton cricket basketball scuba_diving ice_hockey american_football fri
exercise
string
<= 80 characters
status
  • pending - Pending
  • processing - Processing
  • completed - Completed
  • failed - Failed
string
Allowed values: pending processing completed failed
created_at
required
string format: date-time
duration_ms
integer
nullable <= 2147483647
thumbnail_url
Any of:
string format: uri
<= 1000 characters
client
required
string format: uuid
nullable
client_name
required
string
client_position
required

The candidate’s client playing position (ClientPosition code, “” = unspecified) — the Selection page’s battery eligibility banner keys on it (#1371; warns on a mismatch, never blocks).

string
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
Example
{
"results": [
{
"activity": "running",
"status": "pending"
}
]
}
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"
}