---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.1
alternate:
  - https://yandex.com/dev/adfox/doc/en/rest-statistics/generate-report.md
  - https://yandex.com/dev/adfox/doc/ru/rest-statistics/generate-report.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/adfox/doc/ru/llms.txt

# Сформировать отчет

Отправьте `POST`-запрос с нужными метриками, группировками, фильтрами и периодом. Будет поставлена асинхронная задача построения отчета или возвращена существующая `taskId` для ранее запрошенного аналогичного запроса.

В ответ возвращается `taskId`, по которому можно отслеживать готовность отчета.

```
POST /api/v2/reports
```
#|
|| **Характеристика** | **Значение** ||
|| Метод | `POST` ||
|| Путь | `/api/v2/reports` ||
|| Заголовки | `Content-Type: application/json` (обязателен) ||
|| Успех | `202 Accepted` ||
|#

## Тело запроса

#|
|| **Поле** | **Тип** | **Обязательность** | **Описание** ||
|| `metrics` | массив строк | Да, логически | Не пустой массив; каждый элемент — непустая строка. Значения `name` из `GET /metadata → metrics`. ||
|| `dimensions` | массив строк | Нет | Группировки. Значения `name` из `GET /metadata → dimensions`. Пустой массив или отсутствие поля трактуются как «без группировок». ||
|| `filters` | массив объектов | Нет | Фильтры. Структура описана ниже. ||
|| `dateRange` | объект | Да, логически | Период отчета. Поля `from` и `to` в формате `YYYY-MM-DD`. ||
|| `limit` | целое | Нет | Максимум строк результата; если указан, должен быть в интервале 1 — 1 000 000 включительно. ||
|| `ownerId` | целое > 0 | Обязателен для рекламодателей | ID администратора аккаунта. ||
|#

## Структура `filters[]`

#|
|| **Поле** | **Тип** | **Описание** ||
|| `field` | строка | Поле фильтра. Значение `field` из `GET /metadata → filters`. ||
|| `operator` | строка | Оператор сравнения (см. ниже таблицу «Допустимые значения `operator` в фильтрах»). ||
|| `value` | JSON | Обязательно, не `null`: для скалярных операторов — скаляр (строка / число / boolean); для `in`, `notIn`, `hasAny` — непустой массив скаляров одного типа. ||
|#

Индексы в сообщениях об ошибках нумеруются с нуля: `filters[0].field`, …

## Допустимые значения `operator` в фильтрах {#operator}

#|
|| **Оператор** | **Описание** ||
|| `eq` | Равно. ||
|| `ne` | Не равно. ||
|| `lt` / `le` | Меньше / меньше или равно. ||
|| `gt` / `ge` | Больше / больше или равно. ||
|| `like` / `notLike` | Соответствует / не соответствует шаблону. ||
|| `in` | Входит в список значений. ||
|| `notIn` | Не входит в список значений. ||
|| `hasAny` | Пересекается с множеством. ||
|#

## Объект `dateRange`

#|
|| **Поле** | **Тип** | **Описание** ||
|| `from` | string | Обязательно, не пусто: дата `YYYY-MM-DD` (календарная). ||
|| `to` | string | Должно выполняться `from ≤ to`. ||
|#

Число календарных дней в интервале включительно не должно превышать `maxDateRangeDays` из метаданных (365).

## Пример запроса

```bash
curl -X POST \
  -H 'Authorization: OAuth <токен>' \
  -H 'Content-Type: application/json' \
  -d '{
    "metrics": ["loads_commercial", "clicks_total", "ctr"],
    "dimensions": ["date", "campaign_id"],
    "dateRange": { "from": "2024-01-01", "to": "2024-01-31" },
    "filters": [
      { "field": "campaign_id", "operator": "in", "value": ["12345", "12346"] }
    ],
    "limit": 1000,
    "ownerId": 67890
  }' \
  'https://adfox.yandex.ru/api/v2/reports'
```

## Пример ответа (HTTP 202)

```json
{
  "result": {
    "taskId": "umr-a-rsr-b5555555-5555-5555-5555-555555555501",
    "status": "PENDING"
  }
}
```
Сохраните `taskId` — он понадобится для проверки статуса и получения результата.

## Ошибки

С кодами ошибок можно ознакомиться на странице [Коды ошибок](https://yandex.com/dev/adfox/doc/ru/rest-statistics/error-codes.md).
