# API Яндекс Метрики: Получить посещаемость и источники трафика за период

Сценарий из mcp-everything. Актуально на 2026-10-24.

Визиты, посетители и источники — для своего дашборда или отчёта клиенту.

1. Получи OAuth-токен с доступом к Метрике и передавай его в заголовке Authorization: OAuth <токен>.
2. Узнай ID счётчика: GET /management/v1/counters — в counters[] id и название.
3. Запроси отчёт: GET /stat/v1/data с ids, metrics (например, ym:s:visits,ym:s:users,ym:s:bounceRate), dimensions (ym:s:lastTrafficSource), date1 и date2.
4. В ответе data[] — для каждой строки dimensions и metrics, итоги — в totals. sampled = true значит, что отчёт построен по выборке; accuracy = full даёт точные данные, но медленнее.
5. Метрики визитов (ym:s:) и хитов (ym:pv:) в одном запросе смешивать нельзя. Для CSV добавь .csv к пути.

```bash
curl -G https://api-metrika.yandex.net/stat/v1/data \
  -H "Authorization: OAuth $METRIKA_TOKEN" \
  -d ids=44147844 \
  -d metrics=ym:s:visits,ym:s:users,ym:s:bounceRate \
  -d dimensions=ym:s:lastTrafficSource \
  -d date1=2026-10-01 -d date2=2026-10-23 -d accuracy=full
```

## Базовые URL

- Боевой: `https://api-metrika.yandex.net`

## Авторизация

Тип: OAuth 2.0

OAuth-токен Яндекса передаётся в заголовке `Authorization` в каждом запросе. Без токена или с недействительным токеном сервер отвечает `401`.

```
Authorization: OAuth <токен>
```

## Методы сценария

### GET /management/v1/counters — Список счётчиков

В ответе: `rows` (всего счётчиков) и `counters[]` (`id`, `name`, `status`, `type`, `owner_login`, `permission` и др.).

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `counter_ids` | query | array | нет | ID счётчиков, которые нужно вернуть |
| `favorite` | query | boolean | нет | Только избранные, по умолчанию false |
| `field` | query | string | нет | Доп. поля: goals,mirrors,grants,filters,operations,counter_flags,measurement_tokens |
| `label_id` | query | integer | нет | Фильтр по метке |
| `offset` | query | integer | нет | Номер первого элемента (с 1), по умолчанию 1 |
| `per_page` | query | integer | нет | Счётчиков в ответе, по умолчанию 1000, максимум 10 000 |
| `permission` | query | string | нет | own, view, edit; можно несколько через запятую |
| `search_string` | query | string | нет | Поиск по ID, названию, адресу сайта |
| `sort` | query | string | нет | None, Default, Visits, Hits, Uniques, Name |
| `status` | query | string | нет | Active (по умолчанию) или Deleted |
| `type` | query | string | нет | simple или partner |

### GET /stat/v1/data — Отчёт «Таблица»

В ответе: `data[]` (`dimensions[]` и `metrics[]`), `totals`, `total_rows`, `sampled`, `sample_share`, `query`, `contains_sensitive_data` и др.

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `ids` | query | array | нет | ID счётчиков через запятую |
| `metrics` | query | string | нет | Метрики через запятую, до 20 |
| `dimensions` | query | string | нет | Группировки через запятую, до 10 |
| `date1` | query | string | нет | Начало периода: YYYY-MM-DD, today, yesterday, ndaysAgo; по умолчанию 6daysAgo |
| `date2` | query | string | нет | Конец периода, по умолчанию today |
| `filters` | query | string | нет | Фильтр сегментации |
| `sort` | query | string | нет | Поля сортировки; - — по убыванию |
| `limit` | query | string | нет | Строк на странице, по умолчанию 100, максимум 100 000 |
| `offset` | query | string | нет | Первая строка (с 1) |
| `accuracy` | query | string | нет | Размер выборки (семплирование) |
| `preset` | query | string | нет | Шаблон отчёта, например sources_summary |
| `lang` | query | string | нет | Язык ответа |
| `timezone` | query | string | нет | Часовой пояс ±hh:mm, + передаётся как %2B |
| `direct_client_logins` | query | array | нет | Логины клиентов Яндекс Директа |
| `include_undefined` | query | boolean | нет | Строки с неопределёнными значениями |
| `proposed_accuracy` | query | boolean | нет | Разрешить API повышать accuracy |

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

```
https://api-metrika.yandex.net/stat/v1/data.csv?id=44147844&metrics=ym:s:avgPageViews&dimensions=ym:s:operatingSystem&limit=5
```

## Нюансы

- Префиксы метрик и группировок: `ym:s:` — визиты, `ym:pv:` — хиты; смешивать их в одном запросе нельзя.
- Социально-демографические данные выдаются только при выборке больше 10 посетителей; признак ограничения — `contains_sensitive_data: true`.
- Logs API: период запроса — не больше 1 года, `date2` не может быть текущим днём, фильтрации на уровне запроса нет.
- Поток выгрузки логов: `evaluate` → создание запроса → опрос статуса до `processed` → скачивание частей → `clean`.
- Ограничения фильтров отчётов: до 20 фильтров, до 10 000 символов в строке, до 100 значений в одном условии.

## Другие сценарии

- [Построить график посещаемости по дням](https://mcp-everything.ru/integrations/yandex-metrika/scenarios/postroit-grafik-poseschaemosti-po-dnyam.md)
- [Посчитать конверсию по целям](https://mcp-everything.ru/integrations/yandex-metrika/scenarios/poschitat-konversiyu-po-tselyam.md)
- [Выгрузить сырые визиты через Logs API](https://mcp-everything.ru/integrations/yandex-metrika/scenarios/vygruzit-syrye-vizity-cherez-logs-api.md)

---

Если этого недостаточно — официальная документация: https://yandex.ru/dev/metrika/ru/
Вся интеграция одним документом: https://mcp-everything.ru/integrations/yandex-metrika.md
