# Users

The User object represents an end-user profile in your marketplace.
It appears in registration, login, profile, and verification responses.

**Sample User Object**

```json
{
  "id": "692ee113-310b-4e66-b5b5-33796f9616e3",
  "first_name": "Charles",
  "last_name": "Pearson",
  "email": "your_name@example.com",
  "mobile": "7700900493",
  "dial_code": "44",
  "profile_pic": "",
  "birth_date": "1992-10-10",
  "email_verified": true,
  "metadata": {},
  "type": ["customer"],
  "otp_enabled": false,
  "key": {
    "auth_key": "<jwt>",
    "refresh_key": "<jwt>",
    "firebase_token": "<token>"
  }
}
```

## User Object

| **attribute** | **type** | **description** |
| --- | --- | --- |
| `id` | `string` | Unique user ID. |
| `first_name` | `string` | User first name. |
| `last_name` | `string` | User last name. |
| `email` | `string` | User email address. May be empty in mobile-first flows. |
| `mobile` | `string` | User mobile number. |
| `dial_code` | `string` | Country dial code for mobile number (without `+`). |
| `profile_pic` | `string` | Profile image URL. |
| `birth_date` | `string` \| `null` | Date of birth in `YYYY-MM-DD` format when available. |
| `email_verified` | `boolean` | Indicates whether the email is verified. |
| `metadata` | `object` | Custom metadata saved for the user profile. |
| `type` | `array<string>` | Assigned user roles/types (for example `customer`). |
| `otp_enabled` | `boolean` | Whether account-level TOTP/MFA is enabled. Returned in login responses when available. |
| `key` | `object` | Session token bundle returned on successful login/verification/register-direct flows. |

## User Key Object

| **attribute** | **type** | **description** |
| --- | --- | --- |
| `auth_key` | `string` | Access token used to authorize API calls. |
| `refresh_key` | `string` | Token used to refresh the access token. |
| `firebase_token` | `string` | Firebase custom token returned when Firebase integration is enabled. |
