Skip to content

Reset the coach's arrangement for one report

DELETE
/api/me/report-layout/
curl --request DELETE \
--url 'http://localhost:8000/api/me/report-layout/?key=example&surface=solution' \
--header 'Authorization: Bearer <token>'

The signed-in coach’s arrangement of one report’s panels on the report canvas (#1781): their order and their width on a 12-column grid. A view preference stored on the coach’s account, so it follows them across devices; per coach, with no owner or team gate. Exports never read it — the PDFs and the public share links always render the report’s default order. Addressed by surface + key: solution + the report slug, or player + <activity>:<exercise>.

Drops the saved arrangement — every camera view’s, since there is one per report — so the report renders its default again. Idempotent: 204 whether or not one existed. The key is not checked against the catalog here, so a layout whose report has since left the registry can still be removed.

key
required
string
>= 1 characters <= 160 characters

solution: the report slug (e.g. running-gait). player: <activity>:<exercise> — the exercise may be empty (running:).

surface
required
string
>= 1 characters
Allowed values: solution player

solution (a Solutions report) or player (the session player).

  • solution - Solutions report
  • player - Session player

No response body

surface is not solution / player, or key is missing or longer than 160 characters. The key is not checked against the catalog.

Media typeapplication/json

Validation errors keyed by field. Each value is a list of human-readable messages — except a per-panel items error, which is an object keyed by the failing panel’s index (only failing panels appear), each holding that panel’s field-keyed messages, or a list of messages when the panel is not an object at all (e.g. null).

object
key
additional properties
Any of:
Array<string>

Examples

Example400—UnknownSurface

400 — Unknown surface

{
"surface": [
"\"dashboard\" is not a valid choice."
]
}
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

Example generated

{
"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

Example generated

{
"detail": "example"
}