Skip to content

The person's portal settings

GET
/api/portal/settings/
curl --request GET \
--url http://localhost:8000/api/portal/settings/ \
--header 'Authorization: Bearer <token>'

The language the person chose for their e-mails — null when they chose none: then each card’s e-mails are written in that card’s invite language, exactly as the notifier sends them — and whether an unread message e-mails them (on unless they switched it off; a coach’s own chat e-mail is a separate switch).

Account level: the signed-in person’s own settings, whichever cards they hold. 404 while client access is switched off on the environment; a partner API key gets 403; 429 past the account’s rate (client_portal, 120/min).

Media typeapplication/json

GET / PATCH /api/portal/settings/ — per person, not per card.

object
language
required
One of:
  • en - English
  • ru - Русский
  • es - Español
string
Allowed values: en ru es
notify_messages_email
required

E-mail when a message waits unread for 10 minutes — at most one per conversation every 6 hours, never with the message’s words. The e-mail’s unsubscribe link switches the same setting off. A coach’s own chat e-mail (on /api/me/) is a separate switch.

boolean

Examples

{
"language": "ru",
"notify_messages_email": true
}
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"
}
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

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.

string
wait

With throttled: whole seconds until the next request can pass.

integer
nullable

Example generated

{
"detail": "example",
"wait": 1
}