---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.2
alternate:
  - https://yandex.kz/routing/doc/en/delivery/functions/working-with-quality-report.md
  - https://yandex.kz/routing/doc/kk/delivery/functions/working-with-quality-report.md
  - https://yandex.kz/routing/doc/ru/delivery/functions/working-with-quality-report.md
  - href: https://yandex.kz/routing/doc/en/delivery/functions/working-with-quality-report.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.kz/routing/doc/en/llms.txt?revision=3c84126dbaa2055f6fbf445f655a47b0b49e6fef
    rel: describedby
title: RouteQ — functions — courier performance report
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.kz/routing/doc/en/llms.txt?revision=3c84126dbaa2055f6fbf445f655a47b0b49e6fef


# 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](https://yandex.com/courier/companies). For more information, see [Courier performance report](https://yandex.kz/routing/doc/en/delivery/interface/quality-report.md).
* Via the API for any time interval:
  
  * [Full report](#full-api).
  * [Paginated report](#api-with-pagination).

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](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List)). By default, the object's time zone is calculated based on its coordinates.

## Full report {#full-api}

Send a GET request to the [courier-quality](https://yandex.ru/routing/doc/en/delivery/redoc/index.html#operation/getsDeliveryQualityInformation) resource. In the request, specify the `date` or `route_id`.

{% note warning %}

The `date` and `route_id` parameters are mutually exclusive. Specify only one of them.

{% endnote %}

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 is `order`.
* `with_deleted_couriers`: Include removed couriers in the report. The default is `false`.

**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:

```json
[
  {
    "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 {#api-with-pagination}

Send a GET request to the [courier-quality](https://yandex.ru/routing/doc/en/delivery/redoc/index.html#operation/getsDeliveryQualityInformationWithPagination) resource. In the request, specify the `date` or `route_id`.

{% note warning %}

The `date` and `route_id` parameters are mutually exclusive. Specify only one of them.

{% endnote %}

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 is `order`.
* `with_deleted_couriers`: Include removed couriers in the report. The default is `false`.
* `max_results`: Maximum number of objects to be returned. The default value is 100.
* `page_token`: The page token. For subsequent requests, specify the `next_page_token` value 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.

```json
{
  "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=="
}
```

<!-- source: en/delivery/_includes/feedback.md -->
<a href="../feedback">
  <span class="button">Contact support</span>
</a>



[//]: # (Version without HTML\: \[Contact support\]\(../../../feedback.md\))
<!-- endsource: en/delivery/_includes/feedback.md -->
