List my active sessions (multi-device)
GET /account/sessions
Surfaces the caller’s own active sessions for
the /account/sessions self-service page. The row that’s
authenticating this request carries current: true so the
UI can hide its own revoke button.
Never returns ip — see SessionRow.ip (#567). Devices are
identified by user-agent.
In demo mode (AA_DEMO_MODE=1) every visitor shares one
account, so this returns ONLY the session authenticating the
request rather than every visitor’s.
Authorizations
Section titled “Authorizations ”Responses
Section titled “ Responses ”List of the caller’s active sessions.
object
One active session. The user-agent is best-effort
observability captured at login and can be null behind a proxy
that strips it. current is true only on the self-service
endpoint for the row that’s authenticating the request — the
UI uses it to hide its own revoke button.
object
Client IP recorded at login — PERSONAL DATA, and returned
ONLY on the admin view (GET /admin/users/{ref}/sessions,
behind users.read), where locating a suspicious session
is the point.
Never returned by GET /account/sessions (#567). That
endpoint is self-scoped, and on a shared-account install
“self” is every visitor — so the raw address is omitted
unconditionally rather than gated, per the data-
minimisation posture of ADR 0024.
Omitted from the JSON entirely, not blanked — the same convention AuditRow.ip uses (#425) — so an absent value always means “not returned to you” and never “no IP recorded”.
True only on /account/sessions for the session that authenticated the request. Omitted on the admin equivalent.
Authentication required, missing, or invalid
object
Human-readable error summary
Example
the request could not be completedExample
{ "error": "authentication required: sign in and retry with a valid session or API token"}