Skip to main content

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 & Last-Mile / Driver Performance
GET/delivery/driver-performance

Returns 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

ParameterTypeDescription
monthOptionalstring

Optional month (1-12). Must be sent together with year. Omit both for All months.

Example: 9

yearOptionalstring

Optional year (2020-2100). Must be sent together with month.

Example: 2026

pagestring

One-based details-table page.

Example: 1

page_sizestring

Rows per page (1-100).

Example: 20

searchOptionalstring

Optional case-insensitive driver-name search.

sort_byOptionalstring

Optional sort field: driver_name, delivery counts, rates, time, distance, value, period_month, or period_year.

Example: total_deliveries

sort_orderstring

asc or desc.

Example: desc

column_filtersOptionalstring

Optional JSON object. driver_name supports text; numeric fields support an exact number or {"min":n,"max":n}.

Example: {}

driver_idOptionalstring

Optional driver UUID.

tenant_idOptionalstring

Optional when tenant is present in the authenticated context.

languagestring

Preferred response-message language.

Example: en

Headers

ParameterTypeDescription
Authorizationstring

Example: Bearer {{access_token}}

Staging
Request
curl
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

200OK
Response body
json
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 & Last-Mile / Driver Performance
GET/delivery/driver-performance/detail

Get detailed performance for a single driver including current month, previous month comparison, and 6-month history for charts.

Query parameters

ParameterTypeDescription
driver_idRequiredstring

Required. Driver ID to get detail for.

Example: uuid

tenant_idstring

Tenant ID

languagestring

Response language

Example: en

Headers

ParameterTypeDescription
Authorizationstring

Example: Bearer {{access_token}}

Staging
Request
curl
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

200OK
Response body
json
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}