---
title: "Users:Current User"
method: GET
path: "/api/v1/users/me"
tags: ["users"]
---

# Users:Current User

`GET /api/v1/users/me`

## Request

- Base URL: `https://api.peil.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.peil.app/api/v1/users/me`
- Auth: OAuth 2 (password, token URL `/api/v1/auth/jwt/login`)

## Response `200`

Successful Response

- UserRead
  - `id` integer, required
  - `email` string, email, required
  - `is_active` boolean
  - `is_superuser` boolean
  - `is_verified` boolean
  - `full_name` string, nullable
  - `business_name` string, nullable
  - `business_start_date` string, date, nullable
  - `vat_number` string, nullable
  - `chamber_of_commerce` string, nullable
  - `address_line1` string, nullable
  - `address_line2` string, nullable
  - `city` string, nullable
  - `postal_code` string, nullable
  - `country` string, nullable
  - `iban` string, nullable
  - `iban_account_name` string, nullable
  - `default_currency` string, nullable
  - `timezone` string, nullable
  - `phone_number` string, nullable
  - `onboarding_complete` boolean
  - `lang` string, nullable
  - `workspace_slug` string, nullable
  - `plan` string
  - `marketing_opt_out` boolean
  - `is_admin` boolean, required: Whether this user has Captain's-deck access — the SAME rule the backend enforces (is_superuser OR the ADMIN_USER_IDS allowlist), so the nav link matches reality. Gating the link on is_superuser alone hid the deck from an allowlisted admin who isn't a DB superuser. Reuses admin._admin_user_ids (SSOT); imported lazily to avoid a router↔schema import cycle.

## Other responses

- `401`: Missing token or inactive user.

---

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