---
title: "Get current user"
method: GET
path: "/auth/v1/user"
tags: ["Auth"]
---

# Get current user

`GET /auth/v1/user`

## Request

- Base URL: `https://api.run402.com`
- URL: `https://api.run402.com/auth/v1/user`
- Auth: API key in header `apikey` and HTTP bearer

Returns the current user's profile, linked identities, and passkey state. Optional app_origin query parameter validates the current RP and returns has_passkey_for_current_rp.

## Query parameters

- `app_origin` string, uri

## Response `200`

Current user info

- AuthUserResponse
  - `id` string, uuid
  - `email` string, email
  - `email_verified_at` string, date-time, nullable
  - `display_name` string, nullable
  - `avatar_url` string, nullable
  - `last_sign_in_at` string, date-time, nullable
  - `created_at` string, date-time
  - `has_passkeys` boolean
  - `passkey_count` integer
  - `has_passkey_for_current_rp` boolean, nullable
  - `current_rp_id` string, nullable
  - `identities` object[]
    - `provider` string
    - `provider_sub` string
    - `provider_email` string, email, nullable
    - `created_at` string, date-time

## Other responses

- `401`: Missing or invalid authentication. Run402-originated JSON bodies use the canonical ErrorEnvelope.

---

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