---
title: "Get the current caller's identity, role, and KB clearance"
method: GET
path: "/v1/identity/whoami"
tags: ["identity"]
---

# Get the current caller's identity, role, and KB clearance

`GET /v1/identity/whoami`

Resolve the authenticated caller's own identity, role, and KB clearance.

Authenticated only — no org-scope and no permission gate — so every role
(including ``org:viewer``) can read its own context to drive UI gating.
Backend RBAC still enforces every mutation; this endpoint grants nothing.

## Response `200`

Successful Response

- WhoAmIResponse — The authenticated caller's own identity + resolved role and KB clearance. Returned by ``GET /identity/whoami`` so the dashboard can learn the caller's role (Clerk ``org:*``) and effective KB clearance for client-side gating without an org-scoped or admin-only call. Backend RBAC remains the source of truth for every mutation; this only drives UI affordances.
  - `user_id` string, uuid, required
  - `clerk_user_id` string, required
  - `email` string, nullable
  - `display_name` string, nullable
  - `role` string, required
  - `organization_id` string, uuid, required
  - `organization_name` string, required
  - `kb_clearance_level` integer, required
  - `kb_acl_enabled` boolean, required

## Other responses

- `400` — Bad request
- `401` — Authentication required

---

[API](https://skmtc.net/oneloop-hq/apis/feather-api.md) · [All operations](https://skmtc.net/oneloop-hq/apis/feather-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneloop-hq/feather-api/versions/888bdd5c076e/schema)
