me
# Get Current Driver Profile (`/me`)
Retrieves the full profile details of the authenticated driver, including account status, duty status, rating, wallet balance, active vehicle information, and onboarding flags.
---
### Endpoint Overview
- **Method:** `GET`
- **Route:** `/api/v1/driver/me`
- **Authentication:** `Bearer Token (Driver JWT)`
- **Content-Type:** `N/A`
---
### Request Headers
| Header | Type | Required | Description |
| --- | --- | --- | --- |
| `Authorization` | `string` | **Yes** | Format: `Bearer` |
---
### Response Body Schema (`200 OK`)
| Top-Level Key | Data Type | Description |
| --- | --- | --- |
| `driver` | `object` | Complete authenticated driver profile |
#### `driver` Object Fields
| Field | Data Type | Nullable | Allowed Values / Constraints | Description |
| --- | --- | --- | --- | --- |
| `id` | `string` | No | Prefixed with `drv_` | Unique driver ID |
| `name` | `string` | Yes | Any string | Full name of the driver |
| `phone` | `string` | No | E.164 string format | Registered mobile phone number |
| `is_phone_verified` | `boolean` | No | `true`, `false` | Whether phone number is verified |
| `email` | `string` | Yes | Valid email | Registered email address |
| `is_email_verified` | `boolean` | No | `true`, `false` | Whether email is verified |
| `gender` | `enum` | Yes | `"MALE"`, `"FEMALE"`, `null` | Driver gender |
| `date_of_birth` | `string` | Yes | ISO 8601 Timestamp | Driver date of birth |
| `profile_image_url` | `string` | Yes | Valid URL | Avatar image URL |
| `is_profile_complete` | `boolean` | No | `true`, `false` | Profile completion status |
| `status` | `enum` | No | `"PENDING_ONBOARDING""PENDING_APPROVAL""APPROVED""REJECTED""SUSPENDED""BLOCKED"` | Operational & verification state |
| `duty_status` | `enum` | No | `"OFFLINE""ONLINE""ON_TRIP"` | Real-time driver operational state |
| `rejection_reason` | `string` | Yes | Any string | Rejection explanation if status is `REJECTED` |
| `rating` | `string` | No | Decimal string (e.g. `"4.85"`) | Driver rating (out of 5.00) |
| `total_trips` | `integer` | No | `>= 0` | Total completed trips count |
| `wallet_balance` | `string` | No | Decimal string (e.g. `"3250.00"`) | Driver wallet balance |
| `service_category` | `enum` | No | `"BIKE""CAB""AMBULANCE""LOGISTICS"` | Operational service domain |
| `city` | `string` | No | Default: `"DEFAULT"` | Operating city |
| `state` | `string` | Yes | Any string | Operating state/province |
| `language` | `string` | No | Default: `"en"` | Preferred app language |
| `own_referral_code` | `string` | Yes | Prefixed with `CAP_` | Unique referral code assigned to this driver |
| `referred_by_code` | `string` | Yes | Any string | Referral code used during signup |
| `vehicle_name` | `string` | Yes | Any string | Flattened vehicle brand/make (e.g. `"Maruti Suzuki"`) |
| `vehicle_model` | `string` | Yes | Any string | Flattened vehicle model (e.g. `"Swift Dzire"`) |
| `vehicle_color` | `string` | Yes | Any string | Flattened vehicle paint color (e.g. `"White"`) |
| `number_plate` | `string` | Yes | Any string | Flattened vehicle license number plate |
| `vehicle` | `object` | Yes | Sub-object or `null` | Detailed vehicle record (null if no vehicle registered) |
| `vehicle.id` | `string` | No | Prefixed with `veh_` | Unique vehicle ID |
| `vehicle.name` | `string` | No | Any string | Vehicle make/brand name |
| `vehicle.model` | `string` | No | Any string | Vehicle model name |
| `vehicle.color` | `string` | No | Any string | Vehicle color |
| `vehicle.number_plate` | `string` | No | Any string | Registration plate number |
| `is_active` | `boolean` | No | `true`, `false` | System active status |
| `is_blocked` | `boolean` | No | `true`, `false` | Whether account is blocked |
| `last_login_at` | `string` | Yes | ISO 8601 Timestamp | Timestamp when driver last authenticated |
| `created_at` | `string` | No | ISO 8601 Timestamp | Account registration timestamp |
| `updated_at` | `string` | No | ISO 8601 Timestamp | Last update timestamp |
---
### Response Examples
#### 1\. `200 OK` — Success (Profile with Vehicle)
``` json
{
"driver": {
"id": "drv_8a7b6c5d4e",
"name": "Ravi Kumar",
"phone": "+919876543210",
"is_phone_verified": true,
"email": "ravi.kumar@example.com",
"is_email_verified": true,
"gender": "MALE",
"date_of_birth": "1992-05-15T00:00:00.000Z",
"profile_image_url": "https://example.com/profiles/ravi.jpg",
"is_profile_complete": true,
"status": "APPROVED",
"duty_status": "ONLINE",
"rejection_reason": null,
"rating": "4.85",
"total_trips": 142,
"wallet_balance": "3250.00",
"service_category": "CAB",
"city": "Bengaluru",
"state": "Karnataka",
"language": "en",
"own_referral_code": "CAP_8X9K2",
"referred_by_code": null,
"vehicle_name": "Maruti Suzuki",
"vehicle_model": "Swift Dzire",
"vehicle_color": "White",
"number_plate": "KA-01-AB-1234",
"vehicle": {
"id": "veh_1a2b3c4d5e",
"name": "Maruti Suzuki",
"model": "Swift Dzire",
"color": "White",
"number_plate": "KA-01-AB-1234"
},
"is_active": true,
"is_blocked": false,
"last_login_at": "2026-09-21T04:45:00.000Z",
"created_at": "2026-08-10T12:00:00.000Z",
"updated_at": "2026-09-21T04:45:00.000Z"
}
}
```
#### 2\. `200 OK` — Success (Newly Registered Driver, Incomplete Onboarding)
``` json
{
"driver": {
"id": "drv_8a7b6c5d4e",
"name": null,
"phone": "+919876543210",
"is_phone_verified": true,
"email": null,
"is_email_verified": false,
"gender": null,
"date_of_birth": null,
"profile_image_url": null,
"is_profile_complete": false,
"status": "PENDING_ONBOARDING",
"duty_status": "OFFLINE",
"rejection_reason": null,
"rating": "5.00",
"total_trips": 0,
"wallet_balance": "0.00",
"service_category": "CAB",
"city": "DEFAULT",
"state": null,
"language": "en",
"own_referral_code": "CAP_8X9K2",
"referred_by_code": null,
"vehicle_name": null,
"vehicle_model": null,
"vehicle_color": null,
"number_plate": null,
"vehicle": null,
"is_active": true,
"is_blocked": false,
"last_login_at": "2026-09-21T04:45:00.000Z",
"created_at": "2026-09-21T04:45:00.000Z",
"updated_at": "2026-09-21T04:45:00.000Z"
}
}
```
#### 3\. `401 Unauthorized` — Missing or Invalid Access Token
When `Authorization` header is missing:
``` json
{
"error": "Unauthorized",
"message": "Driver access token is missing. Header format must be 'Bearer <token>'."
}
```
When access token is expired or invalid:
``` json
{
"error": "Unauthorized",
"message": "Invalid or expired driver access token."
}
```
#### 4\. `401 Unauthorized` — Session Revoked (Logged in on Another Device)
Enforced via single-device session tracking when a newer login has invalidated this session:
``` json
{
"error": "SESSION_REVOKED",
"message": "Your session has been terminated because your driver account logged in on another device."
}
```
#### 5\. `403 Forbidden` — Account Blocked or Deactivated
Triggered if the driver account has been banned or deactivated by an admin:
``` json
{
"error": "Forbidden",
"message": "Driver account is blocked or deactivated."
}
```
#### 6\. `404 Not Found` — Driver Not Found
``` json
{
"error": "Driver not found"
}
```
#### 7\. `500 Internal Server Error`
``` json
{
"error": "Internal server error"
}
```
---
### Status Codes Reference
| HTTP Status Code | Condition |
| --- | --- |
| **`200 OK`** | Access token verified; current driver profile returned. |
| **`401 Unauthorized`** | Missing/invalid token or session revoked due to concurrent login. |
| **`403 Forbidden`** | Account is blocked, banned, or soft-deleted. |
| **`404 Not Found`** | Driver record not found in database. |
| **`500 Internal Server Error`** | Unhandled server or database error. |
Authentication
AuthorizationBearer
Bearer authentication of the form Bearer <token>, where token is your auth token.