Courier performance report
A report on the quality of couriers' work provides data on order completion over a certain period of time. You can use it to review time window precision, detect delivery sequence violations, and assess other courier performance parameters.
You can get a report:
-
Via Routing Workspace. For more information, see Courier performance report.
-
Via the API for any time interval:
Please note that the time zones of depots, logistics coordinators, couriers, and clients may be different. To account for this difference, use the timezone field returned in the API response for each object when analyzing time parameters. The time zone is specified in the tz database format, for example Europe/Berlin (for more information, see the List of time zones). By default, the object's time zone is calculated based on its coordinates.
Full report
Send a GET request to the courier-quality resource. In the request, specify the date or route_id.
Warning
The date and route_id parameters are mutually exclusive. Specify only one of them.
You may also specify the following parameters:
depot_id: The ID of the depot from which the route starts.types: The list of point types for the report. Available types:order,depot,garage. The default isorder.with_deleted_couriers: Include removed couriers in the report. The default isfalse.
Request
cURL
curl -H "Authorization: OAuth <your-token>" \
-X GET https://courier.yandex.ru/api/v1/companies/<your-company-id>/courier-quality?date=2026-06-01
Result
The method returns an array of objects. Each object corresponds to a route point and contains fields depending on the point type.
Response example for an order point:
[
{
"type": "order",
"courier_name": "Ivan Ivanov",
"courier_number": "12345",
"order_number": "ABC-123",
"order_address": "ul. Lenina, 10",
"route_number": "R-67890",
"route_date": "2026-06-01",
"arrived_at": "2026-06-01T10:10:00+03:00",
"left_at": "2026-06-01T10:20:00+03:00",
"order_visited_at": "2026-06-01T10:15:00+03:00",
"order_completed_at": "2026-06-01T10:15:00+03:00",
"time_interval_error": 900.0,
"segment_distance_m": 1500.0,
"far_from_point": false,
"no_call_before_delivery": false,
"late_call_before_delivery": false,
"delivery_not_in_interval": true,
"not_in_order": false,
"suggested_order_number": 1
}
]
Paginated report
Send a GET request to the courier-quality resource. In the request, specify the date or route_id.
Warning
The date and route_id parameters are mutually exclusive. Specify only one of them.
You may also specify the following parameters:
depot_id: The ID of the depot from which the route starts.types: The list of point types for the report. Available types:order,depot,garage. The default isorder.with_deleted_couriers: Include removed couriers in the report. The default isfalse.max_results: Maximum number of objects to be returned. The default value is 100.page_token: The page token. For subsequent requests, specify thenext_page_tokenvalue from the previous response body.
Request
cURL
curl -H "Authorization: OAuth <your-token>" \
-X GET https://courier.yandex.ru/api/v2/companies/<your-company-id>/courier-quality?date=2026-06-01&max_results=100
Result
The method returns an object with a results field (an array of route point objects) and, if there is a next page, a next_page_token field.
{
"results": [
{
"type": "order",
"courier_name": "Ivan Ivanov",
"courier_number": "12345",
"order_number": "ABC-123",
"order_address": "ul. Lenina, 10",
"route_number": "R-67890",
"route_date": "2026-06-01",
"arrived_at": "2026-06-01T10:10:00+03:00",
"left_at": "2026-06-01T10:20:00+03:00",
"order_visited_at": "2026-06-01T10:15:00+03:00",
"order_completed_at": "2026-06-01T10:15:00+03:00",
"time_interval_error": 900.0,
"segment_distance_m": 1500.0,
"far_from_point": false,
"no_call_before_delivery": false,
"late_call_before_delivery": false,
"delivery_not_in_interval": true,
"not_in_order": false,
"suggested_order_number": 1
}
],
"next_page_token": "eyJvZmZzZXQiOiIxMDAifQ=="
}