---
title: "Get authenticated user and workspace context"
method: GET
path: "/api/v1/whoami"
tags: ["Identity"]
---

# Get authenticated user and workspace context

`GET /api/v1/whoami`

## Request

- Base URL: `https://www.poster.ly`
- URL: `https://www.poster.ly/api/v1/whoami`
- Auth: HTTP bearer

## Response `200`

Identity fetched successfully

- WhoamiResponse
  - `user` object, required
    - `id` string, required
    - `email` string, nullable
  - `api_key` object, required
    - `id` string, required
    - `scopes` string[], required
  - `default_workspace` Workspace, required
    - `id` string, required
    - `name` string, required
    - `slug` string, nullable
    - `is_personal` boolean, required
    - `timezone` string, nullable
    - `role` string, nullable
    - `api_access` boolean: whoami only: whether this key can act in the workspace through the API.
    - `api_access_source` 'own' | 'inherited', nullable: whoami only: own means your own API add-on; inherited means the workspace owner turned on API access for you.
    - `brand_access` 'all' | 'selected': whoami only: whether your seat sees every brand or only selected ones.
    - `brand_ids` string[], nullable: whoami only: the brands your seat can reach; null means every brand.
  - `workspace_id_required` boolean: True when calls that need a workspace must pass workspace_id.
  - `workspaces` Workspace[], required
    - `id` string, required
    - `name` string, required
    - `slug` string, nullable
    - `is_personal` boolean, required
    - `timezone` string, nullable
    - `role` string, nullable
    - `api_access` boolean: whoami only: whether this key can act in the workspace through the API.
    - `api_access_source` 'own' | 'inherited', nullable: whoami only: own means your own API add-on; inherited means the workspace owner turned on API access for you.
    - `brand_access` 'all' | 'selected': whoami only: whether your seat sees every brand or only selected ones.
    - `brand_ids` string[], nullable: whoami only: the brands your seat can reach; null means every brand.
  - `workspaces_without_api_access` object[]: Workspaces you belong to but cannot use through the API right now.
    - `id` string
    - `role` string
    - `is_personal` boolean
    - `reason` 'own_api_addon_required' | 'api_access_off' | 'owner_api_addon_inactive' | 'owner_on_trial', nullable

## Other responses

- `401`: Invalid or missing API key
- `429`: Too many requests

---

[API](https://skmtc.dev/poster/apis/posterly-api.md) · [All operations](https://skmtc.dev/poster/apis/posterly-api/llms.txt) · [OpenAPI document](https://skmtc.dev/poster/apis/posterly-api/revisions/60be02a61f95?raw)
