---
title: "Get customer-app routing and company membership context"
method: GET
path: "/auth/context"
tags: ["Auth"]
---

# Get customer-app routing and company membership context

`GET /auth/context`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/auth/context`
- Auth: HTTP bearer

## Query parameters

- `companyId` string, uuid

## Response `200`

Auth context

- UserContextResponse
  - `success` boolean
  - `data` UserContext
    - `companyId` string, uuid, nullable, required
    - `role` 'owner' | 'admin' | 'cfo' | 'member' | 'viewer' | 'null', nullable, required
    - `onboardingComplete` boolean, required
    - `onboardingStep` integer, required
    - `subscriptionStatus` string, nullable, required: Missing or ambiguous platform items project needs_attention; cancellation takes precedence. Legacy billing-plan fallback is used only without a subscription row.
    - `platformItemState` 'unverified' | 'present' | 'missing' | 'ambiguous' | 'null', nullable, required: Null when no Median subscription row exists.
    - `featureFlags` object, required
    - `canSeeInternalUi` boolean, required
    - `onboardingV3Stage` 'auth' | 'price' | 'sales' | 'subscribe' | 'setup' | 'books' | 'null', nullable, required: Stage of the caller's onboarding v3 flow, or null when they have none. A paying v3 customer holds a membership and an active subscription while setup tasks are still outstanding, so the client routes on this rather than on membership.
    - `memberships` UserContextMembership[], required
      - `companyId` string, uuid
      - `companyName` string, nullable
      - `role` 'owner' | 'admin' | 'cfo' | 'member' | 'viewer'

## Other responses

- `401`: Authentication required

---

[API](https://skmtc.dev/medianfi/apis/median-api.md) · [All operations](https://skmtc.dev/medianfi/apis/median-api/llms.txt) · [OpenAPI document](https://skmtc.dev/medianfi/apis/median-api/revisions/20090ea32b0d?raw)
