---
title: "Get the authenticated user's effective org-context envelope"
method: GET
path: "/me/context"
tags: ["Auth"]
---

# Get the authenticated user's effective org-context envelope

`GET /me/context`

## Request

- Base URL: `https://api.mnemom.ai/v1`
- URL: `https://api.mnemom.ai/v1/me/context`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Mnemom-Api-Key`
  - API key in cookie `mnemom_session`

Returns the active org context, the full membership list, and any user preferences that affect the dashboard. Per ADR-044 Piece 1 / migration 164. The dashboard's authoritative endpoint for "who am I, which org am I in, what are my memberships." `active` falls back to the most-recently-accepted multi-user org, then the personal org; `null` only if the user has zero memberships.

## Response `200`

User context envelope.

- object
  - `active` object, nullable, required
    - `org_id` string, required
    - `name` string, required
    - `slug` string, required
    - `avatar_url` string, nullable
    - `is_personal` boolean, required
    - `is_owner` boolean, required
    - `role` string, required
    - `company_name` string, nullable
    - `release_ring` 'internal' | 'early_adopter' | 'ga': The active org's release ring (MNE-889), resolved from plan.feature_flags.release_ring. Defaults to 'ga' (general availability) — the caller-side input to the KV release switchboard that gates feature exposure without a redeploy.
  - `memberships` object[], required
    - `org_id` string, required
    - `name` string, required
    - `slug` string, required
    - `avatar_url` string, nullable
    - `is_personal` boolean, required
    - `is_owner` boolean, required
    - `role` string, required
    - `accepted_at` string, date-time, nullable
    - `company_name` string, nullable
  - `preferences` object, required: User preferences blob (e.g., active_org_id, onboarding_completed_at).

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `429`: Rate-limit exceeded. The global per-IP limiter (100 requests/minute, applied to every `/v1/*` route) rejected this request. Back off until the window resets — `Retry-After` carries the cooldown in seconds and `X-RateLimit-Reset` the absolute reset time.
- `500`: Server error — request was well-formed but the server failed to fulfill it. Typically a downstream dependency (DB / RPC / external API) returned an unexpected error.

---

[API](https://skmtc.dev/mnemom/apis/mnemom-api.md) · [All operations](https://skmtc.dev/mnemom/apis/mnemom-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mnemom/apis/mnemom-api/revisions/274b7a6ea182?raw)
