Отрасль: Реклама и аналитика. Актуально на 2026-10-24.
API веб-аналитики Яндекс Метрики: API управления (счётчики, цели), API отчётов (таблицы, данные по времени, drill down, сравнение сегментов) и Logs API для выгрузки сырых данных о визитах и хитах. Ответы — UTF-8, JSON по умолчанию, отчёты также в CSV (суффикс .csv в пути).
Визиты, посетители и источники — для своего дашборда или отчёта клиенту.
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
Динамика визитов или конверсий во времени для графика.
curl -G https://api-metrika.yandex.net/stat/v1/data/bytime \
-H "Authorization: OAuth $METRIKA_TOKEN" \
-d ids=44147844 -d metrics=ym:s:visits -d date1=30daysAgo -d date2=yesterday -d group=day
Сколько визитов закончилось заявкой или покупкой — по источникам и кампаниям.
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:goal123456reaches,ym:s:goal123456conversionRate' \
-d dimensions=ym:s:lastTrafficSource -d date1=2026-10-01 -d date2=2026-10-23
Неагрегированные данные о каждом визите или хите — для своего хранилища и сквозной аналитики.
H="Authorization: OAuth $METRIKA_TOKEN"
API=https://api-metrika.yandex.net/management/v1/counter/44147844
FIELDS=ym:s:visitID,ym:s:dateTime,ym:s:clientID,ym:s:lastTrafficSource,ym:s:goalsID
REQ=$(curl -s -X POST "$API/logrequests?date1=2026-10-01&date2=2026-10-23&source=visits&fields=$FIELDS" -H "$H" | jq -r .log_request.request_id)
curl -s "$API/logrequest/$REQ" -H "$H" | jq .log_request.status # повторять до processed
curl -s "$API/logrequest/$REQ/part/0/download" -H "$H" -o visits-part0.tsv
curl -s -X POST "$API/logrequest/$REQ/clean" -H "$H"
https://api-metrika.yandex.netТип: OAuth 2.0
OAuth-токен Яндекса передаётся в заголовке Authorization в каждом запросе. Без токена или с недействительным токеном сервер отвечает 401.
Authorization: OAuth <токен>
В ответе: 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 |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
field |
query | string | нет | Доп. поля ответа |
ytm |
query | boolean | нет | Использовать систему управления тегами, по умолчанию false |
counter.name |
body | string | нет | Название счётчика, до 255 символов |
counter.site2.site |
body | string | нет | Полный домен сайта, до 255 символов |
В ответе — goals[]: id, name, type, default_price, goal_source, is_favorite, status и поля, зависящие от типа цели.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
counterId |
path | integer | да | ID счётчика |
useDeleted |
query | boolean | нет | Включать удалённые цели, по умолчанию false |
В ответе: 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
Параметры как у /stat/v1/data, плюс:
Также доступны GET /stat/v1/data/drilldown (ветвь древовидного отчёта), /stat/v1/data/comparison и /stat/v1/data/comparison/drilldown (сравнение сегментов).
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
group |
query | string | нет | Шаг разбивки: all, auto, minute, hour, day, week (по умолчанию), month, quarter, year и др. |
top_keys |
query | string | нет | Число строк без row_ids, по умолчанию 7, максимум 30 |
row_ids |
query | array | нет | Выбор строк для графиков |
include_annotations |
query | string | нет | Включать примечания |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
counterId |
path | integer | да | ID счётчика |
date1 |
query | string | да | Первый день, например 2016-01-01 |
date2 |
query | string | да | Последний день (не текущий) |
fields |
query | string | да | Поля через запятую, например ym:pv:dateTime,ym:pv:referer |
source |
query | string | да | hits (события) или visits (визиты) |
В ответе — log_request: request_id, counter_id, status, size, parts.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
counterId |
path | integer | да | ID счётчика |
date1 |
query | string | да | Первый день периода |
date2 |
query | string | да | Последний день (не текущий) |
fields |
query | string | да | Поля через запятую, до 3000 символов |
source |
query | string | да | hits или visits |
attribution |
query | string | нет | Модель атрибуции: FIRST, LAST, LASTSIGN, LAST_YANDEX_DIRECT_CLICK, AUTOMATIC и др. |
Статусы: created, canceled, processed, cleaned_by_user, cleaned_automatically_as_too_old, processing_failed, awaiting_retry. Для processed в parts[] — номера и размеры частей.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
counterId |
path | integer | да | ID счётчика |
requestId |
path | integer | да | ID запроса логов |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
counterId |
path | integer | да | ID счётчика |
requestId |
path | integer | да | ID запроса логов |
partNumber |
path | integer | да | Номер части |
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
counterId |
path | integer | да | ID счётчика |
requestId |
path | integer | да | ID запроса логов |
ym:s: — визиты, ym:pv: — хиты; смешивать их в одном запросе нельзя.contains_sensitive_data: true.date2 не может быть текущим днём, фильтрации на уровне запроса нет.evaluate → создание запроса → опрос статуса до processed → скачивание частей → clean.| Код | Описание |
|---|---|
invalid_parameter |
400 — параметр задан некорректно |
missing_parameter |
400 — не передан обязательный параметр |
filter_limits |
400 — слишком сложный фильтр |
query_error |
400 — слишком сложный запрос |
too_much_rows |
400 — запрос читает слишком много данных |
invalid_json |
400 — неверный JSON (API управления) |
limit_exceeded |
400 — превышен лимит целей, операций или фильтров |
unauthorized |
401 — пользователь не авторизован |
access_denied |
403 — доступ запрещён |
invalid_token |
403 — неверный OAuth-токен |
not_found |
404 — объект не найден |
not_acceptable |
406 — формат не поддерживается |
conflict |
409 — нарушена целостность данных |
quota_requests_by_uid |
429 — исчерпан суточный лимит пользователя |
quota_requests_by_ip |
429 — превышен секундный лимит для IP |
quota_parallel_requests |
429 — превышен лимит параллельных запросов |
backend_error |
503 — сбой на стороне сервера |
timeout |
504 — запрос не уложился во время |
429 Too Many Requests, в теле указана превышенная квота.Если этого недостаточно — официальная документация: https://yandex.ru/dev/metrika/ru/ JSON: https://mcp-everything.ru/api/integrations/yandex-metrika. MCP: https://mcp-everything.ru/mcp