Whether the client's side can see this session
const url = 'http://localhost:8000/api/sessions/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/release/';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url http://localhost:8000/api/sessions/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/release/ \ --header 'Authorization: Bearer <token>'releasable: false carries not_releasable_reason — the code a POST would refuse with — so the app can say why before the coach tries. A coach of the team. Every method answers 404 while client access is switched off on the environment; a partner API key and a client’s own account get 403. Releasing (POST) is 402 trial_expired / access_ended on a read-only team, else feature_not_in_plan on a plan without client access; reading the state and withdrawing stay open on every plan.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”Whether the client’s side can see a result (ClientRelease).
object
When the result opened to the client’s side; null while it has not, or after a withdrawal.
The people who read the card now — an accepted grant, consented to the current texts, that the plan and the minors rule leave open: who sees it once released.
False while a session is not completed or has no client, or a report is not ready, has no client or covers other athletes.
A session whose tested side is unconfirmed: never released on its own; its side’s metrics stay withheld.
no_client- no_clientnot_releasable- not_releasablereport_covers_other_athletes- report_covers_other_athletesunassigned_session- unassigned_session
Null when releasable; otherwise the code a POST would refuse with, in the POST’s order: no_client (nobody to share with), not_releasable (a session not completed, a report not ready), unassigned_session (the report binds a clip nobody assigned: assign it to the client first), report_covers_other_athletes (it binds another athlete’s session).
no_client- no_clientnot_releasable- not_releasablereport_covers_other_athletes- report_covers_other_athletesunassigned_session- unassigned_session
Examples
{ "released_at": "2026-11-02T10:15:00Z", "readers": [ "Olga Lebedeva" ], "releasable": true, "side_unconfirmed": false, "not_releasable_reason": null}Not shared yet
{ "released_at": null, "readers": [ "Olga Lebedeva" ], "releasable": true, "side_unconfirmed": false, "not_releasable_reason": null}Not completed yet
{ "released_at": null, "readers": [ "Olga Lebedeva" ], "releasable": false, "side_unconfirmed": false, "not_releasable_reason": "not_releasable"}No client on the session
{ "released_at": null, "readers": [], "releasable": false, "side_unconfirmed": false, "not_releasable_reason": "no_client"}object
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).
Example generated
{ "detail": "example"}object
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).
Examples
403 — a client's own account
{ "detail": "client_account"}object
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).
Examples
404 — not in the team
{ "detail": "session_not_found"}