> ## Documentation Index
> Fetch the complete documentation index at: https://handbook.nyotaimara.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /v1/users/me — Get the Authenticated User Profile

> Fetch the full profile of the authenticated user, including id, email, name, avatarUrl, kycStatus, and account status. Requires a Bearer token.

Retrieve the complete profile for the currently authenticated user. This endpoint returns identity details, KYC status, and account standing, and is the primary way to hydrate user state on the client after sign-in.

**GET** `/v1/users/me`

Requires a Bearer token in the `Authorization` header.

## Request

No query parameters or request body.

## Example

<CodeGroup>
  ```bash cURL theme={null}
  curl --request GET \
    --url "https://api.nyotaimara.com/v1/users/me" \
    --header "Authorization: Bearer <token>"
  ```
</CodeGroup>

## Response

<ResponseField name="success" type="boolean" required>
  `true` when the profile was retrieved successfully.
</ResponseField>

<ResponseField name="data" type="object" required>
  The user profile object.

  <Expandable title="properties">
    <ResponseField name="id" type="string" required>
      UUID of the user. Matches the Supabase Auth user ID.
    </ResponseField>

    <ResponseField name="email" type="string" required>
      The user's email address.
    </ResponseField>

    <ResponseField name="firstName" type="string">
      Given name.
    </ResponseField>

    <ResponseField name="lastName" type="string">
      Family name.
    </ResponseField>

    <ResponseField name="phone" type="string">
      Phone number, if provided.
    </ResponseField>

    <ResponseField name="dob" type="string">
      Date of birth in `YYYY-MM-DD` format, if provided.
    </ResponseField>

    <ResponseField name="avatarUrl" type="string">
      Public URL of the user's profile photo.
    </ResponseField>

    <ResponseField name="status" type="string" required>
      Account standing. One of `active`, `suspended`, or `banned`.
    </ResponseField>

    <ResponseField name="kycStatus" type="string" required>
      Identity verification status. One of `unverified`, `pending`, `verified`, or `rejected`.
    </ResponseField>

    <ResponseField name="createdAt" type="string" required>
      ISO 8601 timestamp of account creation.
    </ResponseField>

    <ResponseField name="updatedAt" type="string" required>
      ISO 8601 timestamp of the last profile update.
    </ResponseField>
  </Expandable>
</ResponseField>

```json theme={null}
{
  "success": true,
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "email": "jane@example.com",
    "firstName": "Jane",
    "lastName": "Doe",
    "phone": "+254700000000",
    "dob": "1990-05-14",
    "avatarUrl": "https://cdn.nyotaimara.com/avatars/user-1714000000000-abc123.jpg",
    "status": "active",
    "kycStatus": "verified",
    "createdAt": "2024-01-15T08:30:00.000Z",
    "updatedAt": "2024-06-01T12:00:00.000Z"
  }
}
```

<Note>
  **Error cases**

  | Status | Error                    | Description                                   |
  | ------ | ------------------------ | --------------------------------------------- |
  | 401    | —                        | Missing or invalid Bearer token.              |
  | 404    | `User profile not found` | The authenticated user has no profile record. |
  | 500    | `Internal server error`  | An unexpected server-side error occurred.     |
</Note>
