What the conversation shared
const url = 'http://localhost:8000/api/clients/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/thread/shared/';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/clients/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/thread/shared/ \ --header 'Authorization: Bearer <token>'The cards messages carried and the links in their words, newest first, for the conversation’s details. Deleted messages drop out.
A coach of the card’s team. Every route answers 404 while client access is switched off on the environment, and 404 client_not_found for a card of another team; a partner API key and a client’s own account get 403. Reading stays open on every plan; posting and editing are 402 on a read-only team or a plan without client access; deleting one’s own message is not. 429 past the account’s rate (chat_read 240/min for reads, chat_post 30/min for writes).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”The cards’ language: en · ru · es.
metric (default) · imperial.
Responses
Section titled “Responses”GET …/thread/shared/ (ThreadShared), newest first.
object
object
kind: session — a whole session.
object
True: kind alone — the card cannot be shown to this reader (or its subject is gone).
The discriminator.
session- session
kind: session_moment — a moment of a session’s clip.
object
True: kind alone — the card cannot be shown to this reader (or its subject is gone).
The discriminator.
session_moment- session_moment
Where in the clip, in milliseconds.
kind: metric — one metric of a session.
object
True: kind alone — the card cannot be shown to this reader (or its subject is gone).
The discriminator.
metric- metric
The value as the session reads it, with its unit.
kind: report — a Solutions report.
object
True: kind alone — the card cannot be shown to this reader (or its subject is gone).
The discriminator.
report- report
kind: plan_step — a step of an agent’s plan. The coach side reads
its title, the agent and the agent thread; the client side its place in
the plan and whether it is done (the title is “Plan step N” — AI text
stays coach-only).
object
True: kind alone — the card cannot be shown to this reader (or its subject is gone).
The discriminator.
plan_step- plan_step
Client side: its place in the plan.
Client side: marked done.
Coach side only.
Coach side only.
kind: document — a document on the athlete a coach shared (#2693
S5), carried only by the document_shared notice. Never its file name,
the problem it is filed under or who uploaded it.
object
True: kind alone — the card cannot be shown to this reader (or its subject is gone).
The discriminator.
document- document
medical, imaging, clearance, consent_form, insurance or other.
The coach’s title; may be empty — name it by its kind.
The date on the paper.
object
Examples
{ "references": [ { "message_id": "3f2a1b0c-0000-4000-8000-0000000000d3", "created_at": "2026-11-02T10:16:00Z", "reference": { "kind": "session", "placeholder": false, "session_id": "5e2b9c41-7d3a-4f80-9b6e-1c0d2e3f4a51", "activity": "running", "title": "Treadmill check", "recorded_at": "2026-11-02T09:40:00Z", "thumbnail_url": null } } ], "links": [ { "message_id": "3f2a1b0c-0000-4000-8000-0000000000d3", "created_at": "2026-11-02T10:16:00Z", "url": "https://example.com/drill", "author_name": "Kim Larsen" } ]}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 a card of the team
{ "detail": "client_not_found"}object
429 — throttled: this account’s (or address’s) rate for the route is used up; try again after wait seconds, which Retry-After repeats. A route with a limit of its own answers its own code instead, documented there.
With throttled: whole seconds until the next request can pass.
Example generated
{ "detail": "example", "wait": 1}