Driver Performance
2 API calls in this section.
Driver listing and reporting endpoints for delivery totals, success, failures, on-time performance, duration, value, ranking, and monthly comparison.
Get Driver Performance
/delivery/driver-performanceReturns one row per driver from the maintained monthly Driver Performance projection. With month/year omitted, monthly rows are aggregated into one all-time row per driver. A delivery is counted once and attributed to its final relevant driver assignment. Successful deliveries use delivery status delivered; failed deliveries use failed, cancelled, or returned. Period selection follows delivery created_at, matching the Deliveries list date filter. The projection refreshes every 15 minutes and during report rebuilds. on_time_rate and avg_delivery_time_minutes are null when the source records do not contain a real promised-delivery or pickup timestamp. Requires the existing Delivery Management permission enforced by the delivery router.
Query parameters
| Parameter | Type | Description |
|---|---|---|
monthOptional | string | Optional month (1-12). Must be sent together with year. Omit both for All months. Example: |
yearOptional | string | Optional year (2020-2100). Must be sent together with month. Example: |
page | string | One-based details-table page. Example: |
page_size | string | Rows per page (1-100). Example: |
searchOptional | string | Optional case-insensitive driver-name search. |
sort_byOptional | string | Optional sort field: Example: |
sort_order | string | asc or desc. Example: |
column_filtersOptional | string | Optional JSON object. Example: |
driver_idOptional | string | Optional driver UUID. |
tenant_idOptional | string | Optional when tenant is present in the authenticated context. |
language | string | Preferred response-message language. Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/delivery/driver-performance?month=9&year=2026&page=1&page_size=20&search=&sort_by=total_deliveries&sort_order=desc&column_filters={}&driver_id=&tenant_id=&language=en" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
1{2 "success": true,3 "message": "Driver performance retrieved successfully",4 "month": 9,5 "year": 2026,6 "pagination": {7 "page": 1,8 "page_size": 20,9 "total_records": 2,10 "total_pages": 111 },12 "available_months": [13 {14 "year": 2026,15 "month": 916 }17 ],18 "summary": {19 "total_deliveries": 408,20 "successful_deliveries": 408,21 "failed_deliveries": 0,22 "success_rate": 100,23 "on_time_rate": null,24 "avg_delivery_time_minutes": 52.13,25 "total_delivery_value": 0,26 "active_drivers": 2,27 "top_drivers": [28 {29 "driver_id": "uuid",30 "driver_name": "Driver One",31 "total_deliveries": 407,32 "success_rate": 10033 }34 ]35 },36 "data": [37 {38 "driver_id": "uuid",39 "driver_name": "Driver One",40 "period_month": 9,41 "period_year": 2026,42 "total_deliveries": 407,43 "successful_deliveries": 407,44 "failed_deliveries": 0,45 "on_time_deliveries": 0,46 "late_deliveries": 0,47 "success_rate": 100,48 "on_time_rate": null,49 "average_delivery_time_minutes": null,50 "total_distance_km": 0,51 "km_per_delivery": 0,52 "total_delivery_value": 053 }54 ]55}Get Driver Performance Detail
/delivery/driver-performance/detailGet detailed performance for a single driver including current month, previous month comparison, and 6-month history for charts.
Query parameters
| Parameter | Type | Description |
|---|---|---|
driver_idRequired | string | Required. Driver ID to get detail for. Example: |
tenant_id | string | Tenant ID |
language | string | Response language Example: |
Headers
| Parameter | Type | Description |
|---|---|---|
Authorization | string | Example: |
1curl --globoff --request GET "https://staging-api.ondi.io/functions/v1/delivery/driver-performance/detail?driver_id=uuid&tenant_id=&language=en" \2 --header "Authorization: Bearer ${ONDI_ACCESS_TOKEN}"Response examples
1{2 "success": true,3 "message": "",4 "driver": {5 "driver_id": "abc-123",6 "driver_name": "Ahmed Ali",7 "avatar_url": ""8 },9 "current_month": {10 "year": 2025,11 "month": 7,12 "total_deliveries": 45,13 "successful_deliveries": 42,14 "failed_deliveries": 3,15 "on_time_deliveries": 38,16 "late_deliveries": 4,17 "success_rate": 93.33,18 "on_time_rate": 90.48,19 "average_delivery_time_minutes": 28,20 "total_distance_traveled": 320.5,21 "kilometers_per_delivery": 7.63,22 "total_delivery_value": 450023 },24 "previous_month": {25 "year": 2025,26 "month": 6,27 "total_deliveries": 38,28 "successful_deliveries": 35,29 "failed_deliveries": 3,30 "on_time_deliveries": 30,31 "late_deliveries": 5,32 "success_rate": 92.11,33 "on_time_rate": 85.71,34 "average_delivery_time_minutes": 31,35 "total_distance_traveled": 280,36 "kilometers_per_delivery": 8,37 "total_delivery_value": 380038 },39 "changes": {40 "total_deliveries": 18.42,41 "success_rate": 1.22,42 "on_time_rate": 4.77,43 "avg_delivery_time": -9.68,44 "total_delivery_value": 18.4245 },46 "history": [47 {48 "year": 2025,49 "month": 2,50 "total_deliveries": 30,51 "successful_deliveries": 28,52 "failed_deliveries": 2,53 "success_rate": 93.33,54 "on_time_rate": 88,55 "average_delivery_time_minutes": 30,56 "total_delivery_value": 300057 }58 ]59}