17 мин чтения100CTR
API Яндекс Метрики: как получить токен, выгружать отчёты и сырые данные
Какие API есть у Метрики и для чего каждый, как получить OAuth-токен и нужные права, квоты, примеры запросов к API отчётов и Logs API, загрузка офлайн-конверсий и выгрузка без кода.

API Яндекс Метрики — бесплатный набор интерфейсов, через которые программа забирает статистику счётчика, сырые данные о визитах и событиях, меняет настройки счётчика и загружает в Метрику офлайн-данные. Для любого запроса нужны номер счётчика, доступ к нему у вашего логина и OAuth-токен: его получают за пять минут на oauth.yandex.ru, заявку на доступ, как в Директе, подавать не нужно. Агрегированные отчёты отдаёт API отчётов, построчные данные — Logs API, а для разовых выгрузок и дашбордов хватает экспорта из интерфейса и коннектора DataLens.
Какие API есть у Метрики
Все API работают по адресу https://api-metrika.yandex.net и принимают токен в заголовке. Ответ по умолчанию приходит в JSON, API отчётов умеет отдавать и CSV.
| API | Что делает | Адрес запросов | Нужный доступ токена |
|---|---|---|---|
| API отчётов (Reporting API) | Агрегированная статистика: визиты, посетители, конверсии, источники, UTM-метки, Директ, электронная коммерция | /stat/v1/data |
metrika:read |
| Logs API | Неагрегированные данные: каждая строка — отдельный визит или событие | /management/v1/counter/{id}/logrequests |
metrika:read |
| API управления (Management API) | Счётчики, цели, фильтры, сегменты, доступы, представители, метки | /management/v1/... |
metrika:read на чтение, metrika:write на изменения |
| API импорта данных | Офлайн-конверсии, звонки, чаты, данные из CRM, расходы, параметры посетителей, Measurement Protocol | /management/v1/counter/{id}/... |
metrika:write или отдельные права на загрузку |
Есть ещё API, совместимый с Google Analytics Core Reporting API (раздел /analytics/): он нужен, если у вас уже есть скрипты под старый формат Google Analytics. Новые интеграции строят на API отчётов.
Как выбрать:
- нужны цифры как в отчётах — посещаемость по дням, конверсии по кампаниям, сводка для дашборда — API отчётов;
- нужна своя модель атрибуции, склейка с CRM, когортный анализ — Logs API и собственное хранилище (ClickHouse, PostgreSQL);
- нужно создать 30 одинаковых целей на 30 счетчиках или раздать доступы — API управления;
- нужно передать в Метрику оплаты из CRM или звонки — API импорта данных.
Какие отчёты есть в интерфейсе и как их читать, разобрано в статье «Отчёты в Яндекс Метрике».
Что подготовить до первого запроса
- Номер счётчика. Он передаётся в каждом запросе (
idsв API отчётов,{counterId}в адресе остальных методов). Где его найти, описано в статье «Как узнать номер счётчика Яндекс Метрики». - Логин с доступом к счётчику. Подойдёт владелец или гостевой доступ. Для чтения отчётов и Logs API хватает уровня «Только просмотр», для API управления нужно «Редактирование». Для скриптов удобно завести отдельный логин и выдать ему гостевой доступ: так токен не привязан к личному аккаунту сотрудника, а при увольнении подрядчика вы отзываете доступ одной кнопкой. Как выдать и отозвать доступ, разобрано в статье «Как дать доступ к Яндекс Метрике».
- Приложение в Яндекс OAuth и токен — ниже.
Если на логин наложен фильтр доступа (уровень «Аналитика» с ограничением данных), фильтр действует и в API, а Logs API такому пользователю закрыт.
Как получить OAuth-токен Яндекс Метрики
Токен — строка, по которой Метрика понимает, от имени какого логина и с какими правами работает программа. Пароль от аккаунта скрипту не нужен.
Регистрация приложения
- Войдите в Яндекс под любым логином и откройте
oauth.yandex.ru→ создание приложения. - Выберите вариант Для доступа к API или отладки.
- Заполните поля:
- название — любое, его увидит пользователь на странице выдачи доступа;
- почта для связи;
- доступ к данным — найдите Яндекс Метрику и отметьте нужные права (таблица ниже).
- Нажмите Создать приложение и скопируйте ClientID.
Тот же порядок шагов приведён в документации API Метрики, в разделе «Авторизация».
| Право | Что разрешает |
|---|---|
metrika:read |
Получать статистику, читать параметры своих и доверенных счётчиков, список счётчиков |
metrika:write |
Создавать счётчики, менять их параметры, загружать любые данные |
metrika:offline_data |
Загружать офлайн-данные: данные из CRM, офлайн-конверсии, звонки |
metrika:expenses |
Загружать расходы |
metrika:user_params |
Загружать параметры посетителей |
Три последних права не нужны, если отмечено metrika:write. Для выгрузки отчётов достаточно одного metrika:read: лишние права увеличивают ущерб при утечке токена. Если вы работаете под логином организации в Яндекс ID, добавьте право passport:business — без него токен от имени организации не выдадут.
Получение токена
- Подставьте ClientID в ссылку
https://oauth.yandex.ru/authorize?response_type=token&client_id=ВАШ_CLIENTID. - Откройте её в браузере, где вы вошли под логином с доступом к счётчику. Владельцем токена становится тот, кто нажал «Разрешить», а не создатель приложения.
- Нажмите Разрешить и скопируйте токен со страницы.
Если вместо токена появилась ошибка про адрес перенаправления, добавьте в настройках приложения Redirect URI https://oauth.yandex.ru/verification_code и повторите шаги. Сохраните токен сразу: в кабинете Яндекс OAuth выданные токены не показываются, при потере его просто получают заново.
Такой токен, полученный вручную, подходит для своих скриптов и внутренних дашбордов. Если вы делаете сервис для чужих счётчиков, приложение должно само отправлять пользователя на страницу доступа и получать токен через Redirect URI — схема описана в документации Яндекс ID. Порядок регистрации приложения такой же, как у API Директа; разница в том, что Директ дополнительно требует заявку на доступ, подробнее — в статье «API Яндекс Директа».
Сколько живёт токен и когда перестаёт работать
Срок жизни зависит от прав приложения: при регистрации Яндекс показывает минимальное время, например «не менее, чем 1 год». Продлеваемый токен продлевается при каждом использовании, ограниченный истекает в срок. Раньше срока токены отзываются, если владелец:
- сменил пароль;
- нажал «Выйти на всех устройствах»;
- отключил доступ приложения в Яндекс ID на странице «Доступы к данным».
Токен даёт доступ ко всем счётчикам владельца в пределах выбранных прав. Храните его в переменных окружения или менеджере секретов, а не в коде, общих таблицах и репозиториях.
Как передать токен в запросе
Токен передаётся в каждом запросе в HTTP-заголовке:
Authorization: OAuth ТОКЕН
В старых инструкциях токен ставят в адрес параметром oauth_token. Так делать не стоит: адреса оседают в логах серверов, истории браузера и аналитике, и токен утекает вместе с ними.
Проверить токен проще всего запросом списка счётчиков:
curl -H "Authorization: OAuth ТОКЕН" \
https://api-metrika.yandex.net/management/v1/counters
В ответе придут счётчики, доступные владельцу токена, с полем permission: own — свой, view — только просмотр, edit — редактирование, analyst — аналитика. Ответ 401 значит, что заголовок не передан или записан неверно, 403 — у приложения нет нужного права, токен выдан не тому логину или у логина нет доступа к счётчику.
Квоты и ограничения API
| Ограничение | Квота | Когда снимается блокировка |
|---|---|---|
| Запросов с одного IP-адреса | 30 в секунду (Logs API — 10 в секунду) | Когда за последнюю секунду запросов станет меньше порога |
| Параллельных запросов одного логина | 3 | Когда одновременных запросов станет меньше 3 |
| Запросов одного логина в сутки | 5000 | В 00:00 по Гринвичу (03:00 по Москве) |
| Запросов одного логина к API отчётов | 200 за 5 минут | Через 5 минут после превышения |
| Добавление представителей к счётчику | 3 в час | В начале следующего часа |
Лимит 200 запросов за 5 минут к /stat/v1/data действует с 17 декабря 2025 года: скрипты, которые раньше перебирали сотни комбинаций параметров без пауз, теперь упираются в него. Квоты считаются отдельно для групп методов: чтение настроек (client_read), запись настроек (client_write) и получение отчётов (report_read).
При превышении API отвечает HTTP-статусом 429 Too Many Requests, а в теле указывает тип квоты, например quota_requests_by_uid (суточный лимит) или quota_parallel_requests (параллельные запросы). Повторяйте запрос с растущей паузой и не запускайте больше трёх потоков на один логин.
Ограничения отдельных API:
- API отчётов: до 20 метрик и 10 группировок в запросе, до 100 000 строк на страницу, в фильтре — до 20 условий и до 10 000 символов;
- Logs API: период одного запроса — не больше года, список полей — до 3000 символов, данные за текущий день недоступны, суммарный объём подготовленных и неудалённых логов — 10 ГБ на счётчик;
- офлайн-конверсии: файл до 1 ГБ в UTF-8.
В платном пакете Метрика Про суточный лимит API отчётов поднимается до 20 000 запросов, объём Logs API — до 100 ГБ, к счётчику можно выдавать до 60 доступов в час.
API отчётов: как получить данные
Запрос к API отчётов собирается из счётчика, периода, метрик (числовых показателей) и группировок (разрезов, по которым делятся строки). Метрики и группировки визитов начинаются с ym:s:, просмотров — с ym:pv:; смешивать эти префиксы в одном запросе нельзя, исключение — фильтры.
| Параметр | Что задаёт | Пример |
|---|---|---|
ids |
Номер счётчика, можно несколько через запятую | ids=12345678 |
metrics |
Метрики через запятую, до 20 | ym:s:visits,ym:s:users |
dimensions |
Группировки через запятую, до 10 | ym:s:date |
date1, date2 |
Период: дата ГГГГ-ММ-ДД или today, yesterday, NdaysAgo. По умолчанию — последние 7 дней, включая сегодня |
date1=30daysAgo&date2=yesterday |
filters |
Сегментация | ym:s:isRobot=='No' |
preset |
Готовый шаблон отчёта | preset=sources_summary |
sort |
Сортировка, - перед полем — по убыванию |
sort=-ym:s:visits |
limit, offset |
Строк на странице (по умолчанию 100, максимум 100 000) и номер первой строки (с 1) | limit=10000&offset=10001 |
accuracy |
Размер выборки: low, medium (по умолчанию), high, full или доля от 0 до 1 |
accuracy=full |
attribution |
Модель атрибуции для группировок с <attribution> |
attribution=last |
lang |
Язык; нужен lang=ru, если в фильтре русские значения |
lang=ru |
Кроме таблицы (/stat/v1/data) есть ещё четыре вида отчёта: /data/bytime — данные по периодам для графиков, /data/drilldown — одна ветка древовидного отчёта, /data/comparison и /data/comparison/drilldown — сравнение двух сегментов. Чтобы получить CSV вместо JSON, допишите расширение: /stat/v1/data.csv.
Пример: визиты по источникам за 30 дней
curl -G "https://api-metrika.yandex.net/stat/v1/data" \
-H "Authorization: OAuth ТОКЕН" \
--data-urlencode "ids=12345678" \
--data-urlencode "metrics=ym:s:visits,ym:s:users,ym:s:bounceRate" \
--data-urlencode "dimensions=ym:s:<attribution>TrafficSource" \
--data-urlencode "attribution=last" \
--data-urlencode "date1=30daysAgo" \
--data-urlencode "date2=yesterday"
--data-urlencode кодирует угловые скобки и кавычки: без кодирования запросы с <attribution> и фильтрами часто возвращают ошибку параметра. В ответе:
data— строки: значения группировок вdimensions, значения метрик вmetricsв том порядке, в каком вы их перечислили;totals— итоги по всем строкам;total_rows— сколько всего строк, нужен для постраничной выгрузки;sampledиsample_share— было ли семплирование и по какой доле данных посчитан ответ.
Пример: конверсия в цель по UTM-меткам
Метрики целей параметризуются номером цели: ym:s:goal<goal_id>visits — целевые визиты, ym:s:goal<goal_id>conversionRate — конверсия. Номер цели передают отдельным параметром goal_id или подставляют прямо в название: ym:s:goal30606879conversionRate.
curl -G "https://api-metrika.yandex.net/stat/v1/data" \
-H "Authorization: OAuth ТОКЕН" \
--data-urlencode "ids=12345678" \
--data-urlencode "metrics=ym:s:visits,ym:s:goal<goal_id>visits,ym:s:goal<goal_id>conversionRate" \
--data-urlencode "goal_id=30606879" \
--data-urlencode "dimensions=ym:s:<attribution>UTMSource,ym:s:<attribution>UTMCampaign" \
--data-urlencode "attribution=last" \
--data-urlencode "date1=2026-09-01" \
--data-urlencode "date2=2026-09-30" \
--data-urlencode "sort=-ym:s:visits" \
--data-urlencode "limit=1000"
Получится таблица «источник — кампания — визиты — целевые визиты — конверсия». Номер цели виден в списке целей счётчика или в ответе метода GET /management/v1/counter/{id}/goals. Чтобы метки в отчёте были чистыми, собирайте ссылки в генераторе UTM-меток.
Пример на Python с постраничной выгрузкой
import os
import requests
TOKEN = os.environ["METRIKA_TOKEN"]
URL = "https://api-metrika.yandex.net/stat/v1/data"
params = {
"ids": 12345678,
"metrics": "ym:s:visits,ym:s:pageviews",
"dimensions": "ym:s:date,ym:s:startURL",
"date1": "2026-09-01",
"date2": "2026-09-30",
"limit": 10000,
"offset": 1,
}
rows = []
while True:
r = requests.get(URL, params=params,
headers={"Authorization": f"OAuth {TOKEN}"}, timeout=120)
r.raise_for_status()
page = r.json()
rows += page["data"]
params["offset"] += params["limit"]
if params["offset"] > page["total_rows"]:
break
print(len(rows), "строк, семплирование:", page["sampled"])
Скрипт берёт токен из переменной окружения и забирает данные страницами по 10 000 строк, пока не дойдёт до total_rows. Для регулярной выгрузки сохраняйте результат в базу и запрашивайте только новые дни: так вы не тратите квоту на повторную загрузку старых данных.
Семплирование и атрибуция в API
На больших объёмах Метрика считает отчёт по части визитов и умножает результат. В API этим управляет параметр accuracy: full запрашивает все данные. Если в ответе всё равно sampled: true, сократите период или разбейте выгрузку по дням; гарантированно полные данные без семплирования даёт пакет Метрика Про. Отчёты по Директу считаются по полным данным.
С 25 июня 2026 года старые модели атрибуции в API заменяются ближайшими аналогами: «Первый переход» — на «Первый переход кросс-девайс», «Последний значимый переход» — на кросс-девайс-версию, «Последний переход из Директа» — на автоматическую атрибуцию. Актуальные значения параметра attribution: last, cross_device_first, cross_device_last_significant, automatic. Если в старом скрипте стоит lastsign или first, цифры по источникам могли измениться без ошибок в коде — проверьте модель и сверяйте данные с интерфейсом по одной и той же модели.
Logs API: выгрузка сырых данных
Logs API отдаёт данные построчно: одна строка — один визит (source=visits) или одно событие, например просмотр страницы (source=hits). Такие данные нужны, чтобы считать свою атрибуцию, связывать визиты с заказами в CRM по ClientID и строить отчёты, которых нет в интерфейсе. Фильтровать данные на стороне API нельзя: выгружается всё за период, отбор делают уже в своей базе.
Выгрузка идёт асинхронно, в пять шагов.
Оцените запрос.
GET /management/v1/counter/{id}/logrequests/evaluateс теми же параметрами, что и при создании. Если в ответеpossible: false, сократите период: полеmax_possible_day_quantityподскажет, сколько дней можно выгрузить за раз.Создайте запрос логов:
curl -X POST -G "https://api-metrika.yandex.net/management/v1/counter/12345678/logrequests" \ -H "Authorization: OAuth ТОКЕН" \ --data-urlencode "date1=2026-09-01" \ --data-urlencode "date2=2026-09-30" \ --data-urlencode "source=visits" \ --data-urlencode "fields=ym:s:visitID,ym:s:dateTime,ym:s:clientID,ym:s:startURL,ym:s:pageViews,ym:s:isNewUser,ym:s:goalsID"Сохраните
request_idиз ответа.date2не может быть сегодняшним днём.Дождитесь обработки. Проверяйте статус запросом
GET /management/v1/counter/{id}/logrequest/{request_id}раз в несколько минут. Статусcreated— запрос в очереди,processed— готов,processing_failed— ошибка, создайте запрос заново.Скачайте части. В готовом запросе есть массив
parts; каждую часть забирают отдельно:GET .../logrequest/{request_id}/part/{part_number}/download.Очистите лог.
POST .../logrequest/{request_id}/clean. Подготовленные логи занимают квоту в 10 ГБ на счётчик, пока их не удалят, и следующий большой запрос может не пройти.
Особенности данных:
- в среднем 99% визитов завершаются в течение трёх дней, поэтому данные за последние дни ещё дополняются — перевыгружайте последние трое суток;
- часть денежных полей хранится с множителем:
ym:s:goalsPrice— ×1000,ym:s:productsPrice— ×1 000 000; - цифры Logs API и интерфейса могут расходиться: интерфейс применяет дополнительную обработку данных;
- поле
ym:s:isRobotProс уточнённой оценкой роботности доступно только в Метрике Про.
Хранить логи удобнее всего в ClickHouse — у Яндекса есть инструкция по связке Logs API с ClickHouse и визуализации в DataLens. Если нужен поток данных почти в реальном времени, в Метрике Про есть Data Streaming: визиты и события попадают в ClickHouse в Yandex Cloud с задержкой до 15 минут, формат данных отличается от Logs API.
API управления: что автоматизировать
API управления повторяет настройки из интерфейса Метрики. Через него удобно:
- получать список счётчиков и их статус кода (
GET /management/v1/counters); - создавать одинаковые цели на многих счётчиках (
POST /management/v1/counter/{id}/goals); - добавлять фильтры и операции, например исключать внутренний трафик по IP;
- создавать сегменты, которые потом используются в отчётах и рекламе;
- выдавать и отзывать гостевые доступы, добавлять представителей.
Пример: создать цель «Целевое событие» с идентификатором order_confirmed.
curl -X POST "https://api-metrika.yandex.net/management/v1/counter/12345678/goals" \
-H "Authorization: OAuth ТОКЕН" \
-H "Content-Type: application/json" \
-d '{"goal":{"name":"Заказ подтверждён","type":"action","conditions":[{"type":"exact","url":"order_confirmed"}]}}'
В ответе придёт объект цели с присвоенным id. Для изменений токену нужно право metrika:write, а логину — уровень доступа «Редактирование».
Загрузка офлайн-конверсий через API
Офлайн-конверсии — действия клиента вне сайта: оплата в офисе, подтверждённая сделка в CRM, выкуп заказа. Загруженные в Метрику, они появляются в отчётах как обычная цель и используются в Директе для оптимизации по реальным продажам.
Создайте цель типа «Целевое событие» с условием «совпадает», например
order_paid. Можно взять существующую цель, если конверсия бывает и на сайте, и вне его.Соберите идентификаторы. Чтобы конверсия привязалась к визиту, у каждой строки должен быть хотя бы один из них:
ClientId— идентификатор посетителя в Метрике (его сохраняют в CRM с заявкой через методgetClientID),UserId— ваш идентификатор посетителя, переданный в Метрику методомsetUserID,Yclid— идентификатор клика в Директе,PurchaseId— номер покупки из электронной коммерции.Сформируйте CSV в UTF-8. Обязательные колонки — идентификатор,
Target(идентификатор цели) иDateTime(время конверсии в Unix-формате, в секундах, в часовом поясе счётчика; только прошедшее время). Необязательные —Price(ценность, разделитель — точка) иCurrency(код валюты, например RUB).ClientId,Target,DateTime,Price,Currency 1712345678123456789,order_paid,1790856000,15000,RUBЗагрузите файл:
curl -X POST "https://api-metrika.yandex.net/management/v1/counter/12345678/offline_conversions/upload?client_id_type=CLIENT_ID" \ -H "Authorization: OAuth ТОКЕН" \ -F "file=@conversions.csv"Параметр
client_id_typeуказывает тип идентификатора:CLIENT_ID,USER_IDилиYCLID. Параметрtypeзадаёт вид загрузки:BASIC(по умолчанию),CALLSдля звонков,CHATSдля чатов.Проверьте статус по
idзагрузки из ответа:GET /management/v1/counter/{id}/offline_conversions/uploading/{uploading_id}. Данные появляются в отчётах в течение трёх часов, причины, по которым строки не привязались, видны в отчёте «Офлайн-конверсии».
Конверсия привязывается к визиту, только если между последним визитом посетителя и обработкой файла прошло не больше 21 дня. Поэтому выгрузку из CRM ставят по расписанию — раз в день или чаще, а не раз в месяц. Как устроены звонки и офлайн-конверсии в интерфейсе, разобрано в статье «Звонки и офлайн-конверсии в Яндекс Метрике».
Как выгружать данные без программирования
Писать код нужно не всегда. Варианты по возрастанию сложности:
| Способ | Что даёт | Ограничения |
|---|---|---|
| Экспорт из отчёта | PDF, XLSX или CSV одной кнопкой | До 100 000 строк, вручную |
| Отчёты по расписанию | XLSX на почту раз в день, неделю или месяц | До 100 отчётов на счётчик, фиксированные периоды |
| Подключение Метрики в DataLens | Дашборды и чарты поверх API отчётов, токен выдаётся кнопкой «Получить токен» | Счётчики из разных аккаунтов в одном подключении не объединить, публичные ссылки на такие дашборды не работают, действуют квоты API |
| Power Query в Excel | Таблица, которая обновляется из API по кнопке | Токен хранится в файле — не пересылайте его наружу |
| Сервисы интеграций (например, Albato) | Передача офлайн-конверсий и данных из CRM по готовым сценариям | Тарифы сервиса, токен хранится у третьей стороны |
| Data Streaming в Метрике Про | Сырые данные в ClickHouse в Yandex Cloud почти в реальном времени | Платный пакет |
DataLens — BI-сервис Яндекса и самый короткий путь к дашборду. Создайте подключение «Метрика», нажмите «Получить токен», выберите счётчики и точность (уровень семплирования). Можно оставить галочку автоматического создания дашборда — DataLens сразу соберёт стандартный набор чартов. Если счётчик принадлежит другому логину, получите токен под ним по ссылке из справки DataLens и вставьте вручную.
Power Query. В Excel выберите «Данные» → «Из Интернета» → «Дополнительно», вставьте адрес запроса к /stat/v1/data.csv с нужными параметрами, а в заголовках HTTP-запроса добавьте Authorization со значением OAuth ТОКЕН. Таблица будет обновляться по кнопке «Обновить всё».
Частые ошибки
| Ошибка | Причина | Что сделать |
|---|---|---|
401 unauthorized |
Нет заголовка Authorization или он записан неверно |
Передавайте Authorization: OAuth ТОКЕН в каждом запросе |
403 access_denied |
У приложения нет metrika:read или metrika:write, токен выдан не тому логину или у логина нет доступа к счётчику |
Проверить права приложения, перевыпустить токен под логином с доступом |
403 invalid_token |
Токен истёк или отозван после смены пароля | Получить новый токен |
400 invalid_parameter |
Опечатка в названии метрики, смешаны ym:s: и ym:pv:, не закодированы < > |
Свериться со справочником метрик, кодировать параметры |
429 quota_... |
Превышена квота | Добавить паузы, не больше трёх параллельных запросов, хранить уже выгруженные данные |
504 timeout или too_much_rows |
Слишком тяжёлый запрос | Сократить период, число группировок, выгружать по дням |
| Цифры не совпадают с интерфейсом | Разные модели атрибуции, семплирование, роботы в выборке | Задать одинаковые attribution и accuracy, проверить sampled |
Частые вопросы
Сколько стоит API Яндекс Метрики?
API бесплатен, как и сама Метрика. Платный пакет Метрика Про нужен только тем, кому не хватает стандартных квот или нужны данные без семплирования и потоковая выгрузка.
Нужна ли заявка на доступ к API Метрики?
Нет. В отличие от API Директа, достаточно зарегистрировать приложение в Яндекс OAuth, получить токен и иметь доступ к счётчику.
Где посмотреть документацию API Яндекс Метрики?
Официальная документация с описанием всех методов, метрик, группировок и примерами — на yandex.ru/dev/metrika. В справке Метрики описаны те же отчёты со стороны интерфейса.
Можно ли выгрузить данные за сегодня?
Через API отчётов — да, date2=today работает, но данные за текущий день неполные. Через Logs API — нет: последний доступный день — вчерашний.
Как выгрузить данные сразу по нескольким счётчикам?
В API отчётов перечислите номера в ids через запятую. Если нужны цифры по каждому сайту отдельно, надёжнее отправить по запросу на счётчик и объединить результаты у себя. Logs API работает с одним счётчиком за запрос.
Можно ли получить через API данные Вебвизора?
Нет, записи визитов через API не выгружаются. Logs API отдаёт события и просмотры страниц, а записи сессий смотрят в интерфейсе, где они хранятся 15 дней.
Как выдать скрипту доступ только на чтение?
Зарегистрируйте приложение с одним правом metrika:read и получите токен под логином с гостевым доступом «Только просмотр». Такой токен не сможет менять настройки, даже если его украдут.
Чем API Метрики отличается от API Директа?
API Директа управляет кампаниями и отдаёт рекламную статистику — показы, клики, расход. API Метрики отдаёт поведение на сайте и конверсии. Расход и конверсии в одном отчёте можно получить в Метрике: группировки и метрики Директа доступны в API отчётов после того, как счётчик связан с кампаниями.