---
title: "Returns the authenticated caller's public identity (see MeResponse)."
method: GET
path: "/api/v1/me"
tags: ["Me"]
---

# Returns the authenticated caller's public identity (see MeResponse).

`GET /api/v1/me`

## Request

- Base URL: `https://api.featureflip.io`
- URL: `https://api.featureflip.io/api/v1/me`
- Auth: API key in header `Authorization`

## Response `200`

OK

- MeResponse: The authenticated caller's identity, returned by `GET /api/v1/me`. The public API authenticates two kinds of principal, so this is a `type`-discriminated shape. A `"user"` caller (a session/JWT user or a personal access token, `ffp_...`) carries `email` + `emailVerified`. A `"service_token"` caller (`ffs_...`) has no backing user row, so it carries `organizationId` + `role` + `projectScope` (the token's org, its role in that org, and its project allowlist) instead. The type-inapplicable fields are omitted from the response body. `projectScope` is omitted for an unrestricted service token (access to every project), never an empty list.
  - `type` string, nullable, required
  - `id` string, uuid, required
  - `name` string, nullable, required
  - `email` string, nullable
  - `emailVerified` boolean, nullable
  - `organizationId` string, uuid, nullable
  - `role` string, nullable
  - `projectScope` string[], nullable

## Other responses

- `401`: Unauthorized
- `429`: Rate limit exceeded. Retry after the interval indicated by the Retry-After header.

---

[API](https://skmtc.dev/featureflip/apis/management-api.md) · [All operations](https://skmtc.dev/featureflip/apis/management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/featureflip/apis/management-api/revisions/8a77e8581a45?raw)
