[API] Get Drivers Live Location
The “Get Drivers Live Location” API provides real-time location data for at most 200 drivers associated with a fleet organization. This includes driver coordinates, current monitoring supply status (including a granular V2 status that distinguishes dispatchability and trip phase), associated vehicle details, and the timestamp of the last location update, enabling effective real-time monitoring and management of fleet operations.
¶ Use case
The Get Drivers Live Location API enables fleet operators to query the current geographic position of their drivers in real time. This is particularly useful for building live fleet tracking dashboards, dispatch tools, or any system that requires up-to-date driver whereabouts. Unlike webhooks, this API uses a pull-based model where the application queries the server on demand. Driver status and location are reported as last received and are not forced to offline when updates go stale. Use locationUpdatedTime to judge how fresh each record is. The API supports filtering by driver status to narrow results to only relevant drivers such as those currently on a trip or online.
¶ Using Dependent API
To access live location data for drivers, fleet owners should follow a three-step process. Firstly, they must use the Get Organizations API, entering the Fleet Supplier’s unique ID to retrieve all associated organization UUIDs. Secondly, using these organization UUIDs, fleet owners can call the Get Drivers Information API to obtain decrypted driver UUIDs (driverId) for drivers within each organization. Finally, using the organization UUID and driver UUIDs, fleet owners can call the Get Drivers Live Location API to fetch real-time location data for those drivers.
¶ Support for Hierarchical Data
Not Supported. The API returns location data for drivers directly linked to the specified organization. It does not support fetching drivers linked to child organizations.
¶ Supported Supplier Types
Fleets
¶ Scope
Primary - supplier.fleet.drivers.live_location.read
¶ Resource
/v1/vehicle-suppliers/drivers/live-location
¶ HTTP Method
POST
¶ Authorization
¶ Example Request
curl -i -X POST "https://api.uber.com/v1/vehicle-suppliers/drivers/live-location" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"request": {
"org_id": {
"uuid": {
"value": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
},
"driver_ids": [
{ "value": "d1e2f3a4-b5c6-7890-abcd-ef1234567890" }
]
}
}'
Example Request With Driver Filter
curl -i -X POST "https://api.uber.com/v1/vehicle-suppliers/drivers/live-location" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"request": {
"org_id": {
"uuid": {
"value": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
},
"driver_ids": [
{ "value": "d1e2f3a4-b5c6-7890-abcd-ef1234567890" },
{ "value": "f9e8d7c6-b5a4-3210-fedc-ba0987654321" }
],
"filters": {
"allowed_statuses": [
"MONITORING_SUPPLY_STATUS_ONLINE",
"MONITORING_SUPPLY_STATUS_ON_TRIP"
]
}
}
}'
Example Request With V2 Driver Filter
curl -i -X POST "https://api.uber.com/v1/vehicle-suppliers/drivers/live-location" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"request": {
"org_id": {
"uuid": {
"value": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
},
"driver_ids": [
{ "value": "d1e2f3a4-b5c6-7890-abcd-ef1234567890" },
{ "value": "f9e8d7c6-b5a4-3210-fedc-ba0987654321" }
],
"filters": {
"allowed_statuses_v2": [
"SUPPLY_ACTIVITY_STATE_ONLINE_DISPATCHABLE",
"SUPPLY_ACTIVITY_STATE_EN_ROUTE_TO_DROPOFF"
]
}
}
}'
¶ Example Response
{
"driverLocations": [
{
"driverId": { "value": "d1e2f3a4-b5c6-7890-abcd-ef1234567890" },
"driverStatus": "MONITORING_SUPPLY_STATUS_ONLINE",
"driverStatusV2": "SUPPLY_ACTIVITY_STATE_ONLINE_DISPATCHABLE",
"locationUpdatedTime": { "value": "1710000000000" },
"latitude": 37.7749,
"longitude": -122.4194,
"vehicleId": { "value": "v1a2b3c4-d5e6-7890-abcd-ef1234567890" },
"vehicleMetadata": {
"make": "Fiat",
"model": "Ducato",
"licensePlate": { "number": "ABC123" },
"year": 2023
}
},
{
"driverId": { "value": "f9e8d7c6-b5a4-3210-fedc-ba0987654321" },
"driverStatus": "MONITORING_SUPPLY_STATUS_ON_TRIP",
"driverStatusV2": "SUPPLY_ACTIVITY_STATE_EN_ROUTE_TO_DROPOFF",
"locationUpdatedTime": { "value": "1710000030000" },
"latitude": 40.7128,
"longitude": -74.0060,
"vehicleId": { "value": "x9y8z7w6-v5u4-3210-fedc-ba0987654321" },
"vehicleMetadata": null
}
]
}
¶ Request Body Fields
| Name | Type | Required | Description |
|---|---|---|---|
request.org_id.uuid.value |
string (UUID) | Y | Organization UUID of the fleet. |
request.driver_ids[].value |
string (UUID) | Y | Driver UUIDs to query. Must not be empty. Maximum of 200 driver UUIDs per request. |
request.filters.allowed_statuses |
array of string (enum) | N | Filter results by driver status. If empty, all statuses are returned. MONITORING_SUPPLY_STATUS_UNKNOWN is not a valid filter value. See MonitoringSupplyStatus for valid values. |
request.filters.allowed_statuses_v2 |
array of string (enum) | N | Filter results by granular driver status. When populated, allowed_statuses is ignored. If empty, all statuses are returned. SUPPLY_ACTIVITY_STATE_INVALID is not a valid filter value. See SupplyActivityState for valid values. |
¶ Response Body Fields
| Name | Type | Nullable | Description |
|---|---|---|---|
driverLocations |
Array of DriverLocation | Y | List of driver location records for the organization. |
| Name | Type | Nullable | Description |
|---|---|---|---|
driverId.value |
string (UUID) | N | Driver UUID. |
driverStatus |
string (enum) | N | Current driver status. See MonitoringSupplyStatus. Will be deprecated in favour of driverStatusV2. |
driverStatusV2 |
string (enum) | N | Current granular driver status. See SupplyActivityState. |
locationUpdatedTime.value |
string | N | Timestamp of the last location update in Unix epoch milliseconds (UTC). Status and coordinates are reported as last received and are not reset when updates go stale, so use this to judge freshness. |
latitude |
double | Y | Latitude of the driver’s last known location. Not present if no location data is available for the driver. |
longitude |
double | Y | Longitude of the driver’s last known location. Not present if no location data is available for the driver. |
vehicleId.value |
string (UUID) | Y | UUID of the vehicle currently associated with the driver. |
vehicleMetadata |
VehicleMetadata object | Y | Metadata about the driver’s associated vehicle. null if no vehicle is currently associated. |
| Name | Type | Description |
|---|---|---|
make |
string | Vehicle make (e.g., “Fiat”). |
model |
string | Vehicle model (e.g., “Ducato”). |
licensePlate.number |
string | Vehicle license plate number. |
year |
int32 | Vehicle model year. |
| Status | Definition |
|---|---|
MONITORING_SUPPLY_STATUS_ONLINE |
Driver is online and available. |
MONITORING_SUPPLY_STATUS_OFFLINE |
Driver is offline. |
MONITORING_SUPPLY_STATUS_EN_ROUTE |
Driver is en route to a pickup. |
MONITORING_SUPPLY_STATUS_ON_TRIP |
Driver is currently on a trip. |
MONITORING_SUPPLY_STATUS_UNKNOWN |
Status is not available. |
| Status | Definition |
|---|---|
SUPPLY_ACTIVITY_STATE_OFFLINE |
Driver is offline. |
SUPPLY_ACTIVITY_STATE_ONLINE_DISPATCHABLE |
Driver is online and can receive trips. |
SUPPLY_ACTIVITY_STATE_ONLINE_NOT_DISPATCHABLE |
Driver is online but cannot currently receive trips. |
SUPPLY_ACTIVITY_STATE_EN_ROUTE_TO_PICKUP |
Driver is driving to the pickup location. |
SUPPLY_ACTIVITY_STATE_AT_PICKUP |
Driver has arrived at the pickup location. |
SUPPLY_ACTIVITY_STATE_EN_ROUTE_TO_DROPOFF |
Driver is on a trip, driving to the dropoff location. |
SUPPLY_ACTIVITY_STATE_AT_DROPOFF |
Driver has arrived at the dropoff location. |
SUPPLY_ACTIVITY_STATE_INVALID |
Status is not available. |
¶ Rate Limit
- Rate limit for this endpoint is 200 requests per 10 seconds per Developer Application.
¶ Endpoint Specific Errors
| Http Status Code | Code | Message |
|---|---|---|
400 |
missing_argument | Organization ID is missing from the request. |
400 |
invalid_argument | driver_ids must not be empty. |
400 |
invalid_argument | driver_ids must not exceed 200 entries. |
400 |
invalid_argument | Invalid driver status value in filters. |
401 |
unauthorized | User does not have required permission for the organization. |
500 |
internal_server_error | Internal server error. |
¶ Notes
- Both
org_idanddriver_idsmust be passed in their decrypted (raw UUID) form in the request payload. - You can obtain driver UUIDs (
driverId) from the Get Drivers Information API, which returns both raw and encrypted driver UUIDs. driver_idsis required and must not be empty. A maximum of 200 driver UUIDs can be provided per request.- If a driver ID does not belong to the specified organization, no location data will be returned for that driver.
vehicle_metadatacan benullif no vehicle is currently associated with the driver.location_updated_time.valueis expressed in Unix epoch milliseconds (UTC).- If both
allowed_statusesandallowed_statuses_v2are sent, onlyallowed_statuses_v2is applied. - Driver status and coordinates reflect the last update received. Check
locationUpdatedTimeto judge freshness.
¶ FAQ
- Does the API support sandbox environments?
- No, the API does not currently support sandbox environments.