{"name":"API Яндекс Метрики","vendor":"Яндекс","industry":"marketing","summary":"API веб-аналитики Яндекс Метрики: API управления (счётчики, цели), API отчётов (таблицы, данные по времени, drill down, сравнение сегментов) и Logs API для выгрузки сырых данных о визитах и хитах. Ответы — UTF-8, JSON по умолчанию, отчёты также в CSV (суффикс `.csv` в пути).","docsUrl":"https://yandex.ru/dev/metrika/ru/","coverage":{"included":[],"excluded":[]},"scenarios":[{"id":"poluchit-poseschaemost-i-istochniki","title":"Получить посещаемость и источники трафика за период","summary":"Визиты, посетители и источники — для своего дашборда или отчёта клиенту.","steps":["Получи OAuth-токен с доступом к Метрике и передавай его в заголовке Authorization: OAuth <токен>.","Узнай ID счётчика: GET /management/v1/counters — в counters[] id и название.","Запроси отчёт: GET /stat/v1/data с ids, metrics (например, ym:s:visits,ym:s:users,ym:s:bounceRate), dimensions (ym:s:lastTrafficSource), date1 и date2.","В ответе data[] — для каждой строки dimensions и metrics, итоги — в totals. sampled = true значит, что отчёт построен по выборке; accuracy = full даёт точные данные, но медленнее.","Метрики визитов (ym:s:) и хитов (ym:pv:) в одном запросе смешивать нельзя. Для CSV добавь .csv к пути."],"code":"curl -G https://api-metrika.yandex.net/stat/v1/data \\\n  -H \"Authorization: OAuth $METRIKA_TOKEN\" \\\n  -d ids=44147844 \\\n  -d metrics=ym:s:visits,ym:s:users,ym:s:bounceRate \\\n  -d dimensions=ym:s:lastTrafficSource \\\n  -d date1=2026-10-01 -d date2=2026-10-23 -d accuracy=full","language":"bash","methods":["GET /management/v1/counters","GET /stat/v1/data"]},{"id":"postroit-grafik-poseschaemosti-po-dnyam","title":"Построить график посещаемости по дням","summary":"Динамика визитов или конверсий во времени для графика.","steps":["Запроси данные: GET /stat/v1/data/bytime с теми же ids, metrics и датами плюс group = day (или week, month, hour).","В ответе для каждой метрики — массив значений по периодам; даты периодов — в time_intervals.","С dimensions можно получить отдельные ряды по группировке (например, по источникам): top_keys задаёт, сколько рядов вернуть (до 30)."],"code":"curl -G https://api-metrika.yandex.net/stat/v1/data/bytime \\\n  -H \"Authorization: OAuth $METRIKA_TOKEN\" \\\n  -d ids=44147844 -d metrics=ym:s:visits -d date1=30daysAgo -d date2=yesterday -d group=day","language":"bash","methods":["GET /stat/v1/data/bytime"]},{"id":"poschitat-konversiyu-po-tselyam","title":"Посчитать конверсию по целям","summary":"Сколько визитов закончилось заявкой или покупкой — по источникам и кампаниям.","steps":["Получи цели счётчика: GET /management/v1/counter/{counterId}/goals — id, name и type каждой цели.","Запроси отчёт: GET /stat/v1/data с metrics вида ym:s:goal<ID цели>reaches и ym:s:goal<ID цели>conversionRate и нужными dimensions, например ym:s:lastTrafficSource.","Новый счётчик для сайта создаётся через POST /management/v1/counters с counter.name и counter.site2.site."],"code":"curl -G https://api-metrika.yandex.net/stat/v1/data \\\n  -H \"Authorization: OAuth $METRIKA_TOKEN\" \\\n  -d ids=44147844 \\\n  -d 'metrics=ym:s:visits,ym:s:goal123456reaches,ym:s:goal123456conversionRate' \\\n  -d dimensions=ym:s:lastTrafficSource -d date1=2026-10-01 -d date2=2026-10-23","language":"bash","methods":["POST /management/v1/counters","GET /management/v1/counter/{counterId}/goals","GET /stat/v1/data"]},{"id":"vygruzit-syrye-vizity-cherez-logs-api","title":"Выгрузить сырые визиты через Logs API","summary":"Неагрегированные данные о каждом визите или хите — для своего хранилища и сквозной аналитики.","steps":["Проверь, можно ли выгрузить: GET /management/v1/counter/{counterId}/logrequests/evaluate с date1, date2 (не сегодняшний день, период до года), fields (например, ym:s:visitID,ym:s:dateTime,ym:s:lastTrafficSource,ym:s:goalsID) и source = visits.","Создай запрос: POST /management/v1/counter/{counterId}/logrequests с теми же параметрами. В ответе log_request с request_id.","Опрашивай статус: GET /management/v1/counter/{counterId}/logrequest/{requestId}, пока status не станет processed. Тогда в parts[] — номера частей.","Скачай каждую часть: GET /management/v1/counter/{counterId}/logrequest/{requestId}/part/{partNumber}/download — данные в TSV.","После скачивания очисти запрос: POST /management/v1/counter/{counterId}/logrequest/{requestId}/clean — подготовленные логи занимают квоту."],"code":"H=\"Authorization: OAuth $METRIKA_TOKEN\"\nAPI=https://api-metrika.yandex.net/management/v1/counter/44147844\nFIELDS=ym:s:visitID,ym:s:dateTime,ym:s:clientID,ym:s:lastTrafficSource,ym:s:goalsID\n\nREQ=$(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)\ncurl -s \"$API/logrequest/$REQ\" -H \"$H\" | jq .log_request.status        # повторять до processed\ncurl -s \"$API/logrequest/$REQ/part/0/download\" -H \"$H\" -o visits-part0.tsv\ncurl -s -X POST \"$API/logrequest/$REQ/clean\" -H \"$H\"","language":"bash","methods":["GET /management/v1/counter/{counterId}/logrequests/evaluate","POST /management/v1/counter/{counterId}/logrequests","GET /management/v1/counter/{counterId}/logrequest/{requestId}","GET /management/v1/counter/{counterId}/logrequest/{requestId}/part/{partNumber}/download","POST /management/v1/counter/{counterId}/logrequest/{requestId}/clean"]}],"baseUrls":[{"label":"Боевой","url":"https://api-metrika.yandex.net"}],"auth":{"type":"oauth2","description":"OAuth-токен Яндекса передаётся в заголовке `Authorization` в каждом запросе. Без токена или с недействительным токеном сервер отвечает `401`.","example":"Authorization: OAuth <токен>"},"methods":[{"id":"GET /management/v1/counters","title":"Список счётчиков","httpMethod":"GET","path":"/management/v1/counters","description":"В ответе: `rows` (всего счётчиков) и `counters[]` (`id`, `name`, `status`, `type`, `owner_login`, `permission` и др.).","params":[{"name":"counter_ids","in":"query","type":"array","required":false,"description":"ID счётчиков, которые нужно вернуть"},{"name":"favorite","in":"query","type":"boolean","required":false,"description":"Только избранные, по умолчанию false"},{"name":"field","in":"query","type":"string","required":false,"description":"Доп. поля: goals,mirrors,grants,filters,operations,counter_flags,measurement_tokens"},{"name":"label_id","in":"query","type":"integer","required":false,"description":"Фильтр по метке"},{"name":"offset","in":"query","type":"integer","required":false,"description":"Номер первого элемента (с 1), по умолчанию 1"},{"name":"per_page","in":"query","type":"integer","required":false,"description":"Счётчиков в ответе, по умолчанию 1000, максимум 10 000"},{"name":"permission","in":"query","type":"string","required":false,"description":"own, view, edit; можно несколько через запятую"},{"name":"search_string","in":"query","type":"string","required":false,"description":"Поиск по ID, названию, адресу сайта"},{"name":"sort","in":"query","type":"string","required":false,"description":"None, Default, Visits, Hits, Uniques, Name"},{"name":"status","in":"query","type":"string","required":false,"description":"Active (по умолчанию) или Deleted"},{"name":"type","in":"query","type":"string","required":false,"description":"simple или partner"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /management/v1/counters","title":"Создание счётчика","httpMethod":"POST","path":"/management/v1/counters","description":"","params":[{"name":"field","in":"query","type":"string","required":false,"description":"Доп. поля ответа"},{"name":"ytm","in":"query","type":"boolean","required":false,"description":"Использовать систему управления тегами, по умолчанию false"},{"name":"counter.name","in":"body","type":"string","required":false,"description":"Название счётчика, до 255 символов"},{"name":"counter.site2.site","in":"body","type":"string","required":false,"description":"Полный домен сайта, до 255 символов"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /management/v1/counter/{counterId}/goals","title":"Список целей","httpMethod":"GET","path":"/management/v1/counter/{counterId}/goals","description":"В ответе — `goals[]`: `id`, `name`, `type`, `default_price`, `goal_source`, `is_favorite`, `status` и поля, зависящие от типа цели.","params":[{"name":"counterId","in":"path","type":"integer","required":true,"description":"ID счётчика"},{"name":"useDeleted","in":"query","type":"boolean","required":false,"description":"Включать удалённые цели, по умолчанию false"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /stat/v1/data","title":"Отчёт «Таблица»","httpMethod":"GET","path":"/stat/v1/data","description":"В ответе: `data[]` (`dimensions[]` и `metrics[]`), `totals`, `total_rows`, `sampled`, `sample_share`, `query`, `contains_sensitive_data` и др.","params":[{"name":"ids","in":"query","type":"array","required":false,"description":"ID счётчиков через запятую"},{"name":"metrics","in":"query","type":"string","required":false,"description":"Метрики через запятую, до 20"},{"name":"dimensions","in":"query","type":"string","required":false,"description":"Группировки через запятую, до 10"},{"name":"date1","in":"query","type":"string","required":false,"description":"Начало периода: YYYY-MM-DD, today, yesterday, ndaysAgo; по умолчанию 6daysAgo"},{"name":"date2","in":"query","type":"string","required":false,"description":"Конец периода, по умолчанию today"},{"name":"filters","in":"query","type":"string","required":false,"description":"Фильтр сегментации"},{"name":"sort","in":"query","type":"string","required":false,"description":"Поля сортировки; - — по убыванию"},{"name":"limit","in":"query","type":"string","required":false,"description":"Строк на странице, по умолчанию 100, максимум 100 000"},{"name":"offset","in":"query","type":"string","required":false,"description":"Первая строка (с 1)"},{"name":"accuracy","in":"query","type":"string","required":false,"description":"Размер выборки (семплирование)"},{"name":"preset","in":"query","type":"string","required":false,"description":"Шаблон отчёта, например sources_summary"},{"name":"lang","in":"query","type":"string","required":false,"description":"Язык ответа"},{"name":"timezone","in":"query","type":"string","required":false,"description":"Часовой пояс ±hh:mm, + передаётся как %2B"},{"name":"direct_client_logins","in":"query","type":"array","required":false,"description":"Логины клиентов Яндекс Директа"},{"name":"include_undefined","in":"query","type":"boolean","required":false,"description":"Строки с неопределёнными значениями"},{"name":"proposed_accuracy","in":"query","type":"boolean","required":false,"description":"Разрешить API повышать accuracy"}],"requestExample":"https://api-metrika.yandex.net/stat/v1/data.csv?id=44147844&metrics=ym:s:avgPageViews&dimensions=ym:s:operatingSystem&limit=5","responseExample":"","docsUrl":""},{"id":"GET /stat/v1/data/bytime","title":"Данные по времени","httpMethod":"GET","path":"/stat/v1/data/bytime","description":"Параметры как у `/stat/v1/data`, плюс:\n\nТакже доступны `GET /stat/v1/data/drilldown` (ветвь древовидного отчёта), `/stat/v1/data/comparison` и `/stat/v1/data/comparison/drilldown` (сравнение сегментов).","params":[{"name":"group","in":"query","type":"string","required":false,"description":"Шаг разбивки: all, auto, minute, hour, day, week (по умолчанию), month, quarter, year и др."},{"name":"top_keys","in":"query","type":"string","required":false,"description":"Число строк без row_ids, по умолчанию 7, максимум 30"},{"name":"row_ids","in":"query","type":"array","required":false,"description":"Выбор строк для графиков"},{"name":"include_annotations","in":"query","type":"string","required":false,"description":"Включать примечания"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /management/v1/counter/{counterId}/logrequests/evaluate","title":"Оценка возможности выгрузки логов","httpMethod":"GET","path":"/management/v1/counter/{counterId}/logrequests/evaluate","description":"","params":[{"name":"counterId","in":"path","type":"integer","required":true,"description":"ID счётчика"},{"name":"date1","in":"query","type":"string","required":true,"description":"Первый день, например 2016-01-01"},{"name":"date2","in":"query","type":"string","required":true,"description":"Последний день (не текущий)"},{"name":"fields","in":"query","type":"string","required":true,"description":"Поля через запятую, например ym:pv:dateTime,ym:pv:referer"},{"name":"source","in":"query","type":"string","required":true,"description":"hits (события) или visits (визиты)"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /management/v1/counter/{counterId}/logrequests","title":"Создание запроса логов","httpMethod":"POST","path":"/management/v1/counter/{counterId}/logrequests","description":"В ответе — `log_request`: `request_id`, `counter_id`, `status`, `size`, `parts`.","params":[{"name":"counterId","in":"path","type":"integer","required":true,"description":"ID счётчика"},{"name":"date1","in":"query","type":"string","required":true,"description":"Первый день периода"},{"name":"date2","in":"query","type":"string","required":true,"description":"Последний день (не текущий)"},{"name":"fields","in":"query","type":"string","required":true,"description":"Поля через запятую, до 3000 символов"},{"name":"source","in":"query","type":"string","required":true,"description":"hits или visits"},{"name":"attribution","in":"query","type":"string","required":false,"description":"Модель атрибуции: FIRST, LAST, LASTSIGN, LAST_YANDEX_DIRECT_CLICK, AUTOMATIC и др."}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /management/v1/counter/{counterId}/logrequest/{requestId}","title":"Информация о запросе логов","httpMethod":"GET","path":"/management/v1/counter/{counterId}/logrequest/{requestId}","description":"Статусы: `created`, `canceled`, `processed`, `cleaned_by_user`, `cleaned_automatically_as_too_old`, `processing_failed`, `awaiting_retry`. Для `processed` в `parts[]` — номера и размеры частей.","params":[{"name":"counterId","in":"path","type":"integer","required":true,"description":"ID счётчика"},{"name":"requestId","in":"path","type":"integer","required":true,"description":"ID запроса логов"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"GET /management/v1/counter/{counterId}/logrequest/{requestId}/part/{partNumber}/download","title":"Скачивание части логов","httpMethod":"GET","path":"/management/v1/counter/{counterId}/logrequest/{requestId}/part/{partNumber}/download","description":"","params":[{"name":"counterId","in":"path","type":"integer","required":true,"description":"ID счётчика"},{"name":"requestId","in":"path","type":"integer","required":true,"description":"ID запроса логов"},{"name":"partNumber","in":"path","type":"integer","required":true,"description":"Номер части"}],"requestExample":"","responseExample":"","docsUrl":""},{"id":"POST /management/v1/counter/{counterId}/logrequest/{requestId}/clean","title":"Очистка подготовленных логов","httpMethod":"POST","path":"/management/v1/counter/{counterId}/logrequest/{requestId}/clean","description":"","params":[{"name":"counterId","in":"path","type":"integer","required":true,"description":"ID счётчика"},{"name":"requestId","in":"path","type":"integer","required":true,"description":"ID запроса логов"}],"requestExample":"","responseExample":"","docsUrl":""}],"codeExamples":[],"errors":[{"code":"invalid_parameter","description":"400 — параметр задан некорректно"},{"code":"missing_parameter","description":"400 — не передан обязательный параметр"},{"code":"filter_limits","description":"400 — слишком сложный фильтр"},{"code":"query_error","description":"400 — слишком сложный запрос"},{"code":"too_much_rows","description":"400 — запрос читает слишком много данных"},{"code":"invalid_json","description":"400 — неверный JSON (API управления)"},{"code":"limit_exceeded","description":"400 — превышен лимит целей, операций или фильтров"},{"code":"unauthorized","description":"401 — пользователь не авторизован"},{"code":"access_denied","description":"403 — доступ запрещён"},{"code":"invalid_token","description":"403 — неверный OAuth-токен"},{"code":"not_found","description":"404 — объект не найден"},{"code":"not_acceptable","description":"406 — формат не поддерживается"},{"code":"conflict","description":"409 — нарушена целостность данных"},{"code":"quota_requests_by_uid","description":"429 — исчерпан суточный лимит пользователя"},{"code":"quota_requests_by_ip","description":"429 — превышен секундный лимит для IP"},{"code":"quota_parallel_requests","description":"429 — превышен лимит параллельных запросов"},{"code":"backend_error","description":"503 — сбой на стороне сервера"},{"code":"timeout","description":"504 — запрос не уложился во время"}],"limits":"- 30 запросов в секунду с одного IP к API; 10 в секунду — к Logs API.\n- 3 параллельных запроса одного пользователя.\n- 5000 запросов пользователя в сутки (сброс в 00:00 GMT).\n- 200 запросов к API отчётов за 5 минут.\n- При превышении — `429 Too Many Requests`, в теле указана превышенная квота.","gotchas":["Префиксы метрик и группировок: `ym:s:` — визиты, `ym:pv:` — хиты; смешивать их в одном запросе нельзя.","Социально-демографические данные выдаются только при выборке больше 10 посетителей; признак ограничения — `contains_sensitive_data: true`.","Logs API: период запроса — не больше 1 года, `date2` не может быть текущим днём, фильтрации на уровне запроса нет.","Поток выгрузки логов: `evaluate` → создание запроса → опрос статуса до `processed` → скачивание частей → `clean`.","Ограничения фильтров отчётов: до 20 фильтров, до 10 000 символов в строке, до 100 значений в одном условии."],"slug":"yandex-metrika","version":2,"updatedAt":"2026-10-24T17:05:41.434Z","sources":[{"title":"Авторизация","url":"https://yandex.ru/dev/metrika/ru/intro/authorization","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Квоты","url":"https://yandex.ru/dev/metrika/ru/intro/quotas","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Ошибки","url":"https://yandex.ru/dev/metrika/ru/intro/errors","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Список счётчиков","url":"https://yandex.ru/dev/metrika/ru/management/openapi/counter/counters","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Создание счётчика","url":"https://yandex.ru/dev/metrika/ru/management/openapi/counter/addCounter","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Список целей","url":"https://yandex.ru/dev/metrika/ru/management/openapi/goal/goals","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"API отчётов","url":"https://yandex.ru/dev/metrika/ru/stat/","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Таблица","url":"https://yandex.ru/dev/metrika/ru/stat/openapi/data_1","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Данные по времени","url":"https://yandex.ru/dev/metrika/ru/stat/openapi/bytime","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Logs API — evaluate","url":"https://yandex.ru/dev/metrika/ru/logs/openapi/evaluate","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Logs API — создание запроса","url":"https://yandex.ru/dev/metrika/en/logs/openapi/createLogRequest","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Logs API — информация о запросе","url":"https://yandex.ru/dev/metrika/ru/logs/openapi/getLogRequest","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Logs API — скачивание части","url":"https://yandex.ru/dev/metrika/ru/logs/openapi/download","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Logs API — очистка","url":"https://yandex.ru/dev/metrika/ru/logs/openapi/clean","kind":"research","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"Вставленный текст","url":"","kind":"import","addedAt":"2026-10-14T14:53:19.644Z"},{"title":"scenarios-yandex-metrika.md","url":"","kind":"import","addedAt":"2026-10-24T17:05:30.504Z"}],"logoUrl":null}