ГлавнаяБлогAPI Директа

API Яндекс Директа: доступ, токен, баллы и запросы

5 августа 202612 минКонтекстная реклама

API Директа перестал быть территорией разработчиков: скрипт под свой кабинет теперь собирается за вечер по описанию задачи словами. Разбираю, как получить доступ и что писать в заявке, как выглядят запросы и ответы, что такое баллы и почему они кончаются, и где API избыточен.

Коротко
  • Подключение бесплатное, ограничение — в баллах: суточный лимит зависит от активности кампаний.
  • Порядок доступа: приложение в Яндекс ID с правом direct:api → заявка в Директе с ClientID.
  • Страница настроек API открывается только после создания хотя бы одной кампании в вебе.
  • Актуальный адрес сервисов — /json/v501/, метод всегда POST, тело в JSON.
  • Ошибка вызова стоит 20 баллов, поэтому отладку гоняют на минимальных выборках.

Что такое API Директа и что через него делают

API Яндекс Директа — программный интерфейс для управления кампаниями без веб-интерфейса. Через него внешние приложения добавляют и правят кампании, объявления и ключевые фразы, задают ставки и выгружают статистику. Подключение и использование бесплатные: платите вы только за саму рекламу.

Раньше это была история для разработчиков: чтобы получить пользу от API, нужно было писать код. Сейчас порог упал — скрипт под свой кабинет собирается за вечер в Claude Code или Cursor по описанию задачи словами.

Задачи, которые закрывают через API Яндекс Директа, и время на них руками
Задачи, ради которых API и подключают: там, где руками уходят дни, скрипт справляется за вечер.
Шесть сценариев из практики
Общее у них одно: объём операций, который вручную не потянуть
ЗадачаЧерез какие сервисыЧто даёт
A/B-тест сотен вариантов текстаAds.add и Ads.updateГенерация вариантов и загрузка пачками. Руками это недели, скриптом — вечер
Чистка площадок РСЯ по расписаниюReports плюс корректировкиПлощадка отключается по правилу до того, как успела слить бюджет
Выгрузка статистики в свою системуReportsОтчёт в TSV по расписанию: в BI, в таблицу, в дашборд
Синхронизация с остатками на складеAds и KeywordsТовара нет — объявление остановлено. Без ручных проверок
Кампании по пересечениям аудиторийRetargetingLists и AdGroupsКомбинаторика сегментов, которую руками собирать день
Ежедневный контроль измененийChangesКто и что поменял в кампаниях с прошлой проверки
Таблица прокручивается вбок на узком экране.

Как получить доступ: приложение и заявка

Доступ выдаётся конкретному приложению. Порядок такой: сначала регистрируете приложение в Яндекс ID, потом подаёте заявку на доступ к API в самом Директе.

Регистрация приложения в Яндекс ID для доступа к API Директа с правом direct:api
При создании приложения нужно добавить право «Использование API Яндекс Директа» — direct:api. Значения для примера.
1
Создайте приложение в Яндекс IDСтраница создания приложения → пункт «Для доступа к API или отладки». Заполняете название, почту и в блоке «Доступ к данным» добавляете «Использование API Яндекс Директа» (direct:api).
2
Сохраните ClientID и Client secretЯндекс ID выдаёт их сразу после создания. ClientID понадобится в заявке, оба значения — для получения токена.
3
Откройте настройки API в ДиректеВкладка «Мои заявки» на странице настроек API. Страница откроется только если в аккаунте уже создана хотя бы одна кампания в веб-интерфейсе.
4
Подайте заявкуВыбираете свой ClientID, указываете актуальную почту и максимально конкретно описываете, что делает приложение. По регламенту заявку рассматривают до 7 дней.

На практике всё бывает быстрее. В канале я писал, как это выглядело у меня: в форме заявки просят скриншоты приложения и описание принципов работы — ответы на эти вопросы пишет Claude, скриншот прикладывается из кабинета. Поддержка отвечает за пару часов, в том числе ночью, и доступ можно получить в тот же день.

Из поста в моём канале: как быстро подключить Claude к Яндекс Директу

Что писать в заявке. Отклоняют обычно за расплывчатое описание. Формулировка вида «автоматизация управления кампаниями» слабее, чем «выгрузка статистики по кампаниям клиента в BI-систему и массовая правка текстов объявлений».

OAuth-токен: как получить и чем он ограничен

Авторизация идёт по протоколу OAuth 2.0. Токен — это код, который разрешает приложению доступ к данным конкретного пользователя Директа, и указывать его нужно в каждом запросе.

Четыре факта про токен
Токен передаётся в HTTP-заголовке Authorization в формате Bearer
ЧтоКак
Один токен — один пользовательДля каждого пользователя Директа, от имени которого идут запросы, нужен свой токен
Права наследуютсяПриложению доступно ровно то, что доступно самому пользователю
Отладочный токенНа этапе отладки его получают вручную от имени тестового пользователя
Автоматическое получениеВ рабочем приложении пользователь проходит по ссылке Яндекс ID и нажимает «Разрешить»
Таблица прокручивается вбок на узком экране.
Про хранение. Токен даёт полный доступ к рекламному кабинету в пределах прав пользователя. Держать его в коде скрипта, в переписке или в общем репозитории — прямой путь к чужому доступу к вашим деньгам. Стандартное решение — переменные окружения или отдельный файл с ключами вне репозитория.

Как выглядит запрос и ответ

API состоит из веб-сервисов: у каждого свой адрес и свой набор методов. Запросы идут по HTTPS методом POST, данные — в JSON или SOAP/XML.

Схема вызова API Яндекс Директа: приложение, OAuth-токен, POST-запрос и ответ с заголовком Units
Актуальный адрес сервисов — /json/v501/. Значения для примера.

Типовой запрос на получение списка кампаний выглядит так:

# получить список кампаний с расходом и статусом POST https://api.direct.yandex.com/json/v501/campaigns Authorization: Bearer y0_AgAAAAB… Accept-Language: ru Content-Type: application/json; charset=utf-8 { "method": "get", "params": { "SelectionCriteria": { "States": ["ON"] }, "FieldNames": ["Id", "Name", "State", "Statistics"], "Page": { "Limit": 100, "Offset": 0 } } }

В ответе приходит результат и служебные заголовки. Главный из них — Units: в нём видно, сколько баллов списалось, сколько осталось и каков суточный лимит.

# ответ HTTP/1.1 200 OK Units: 10/20828/64000 # списано / остаток / суточный лимит RequestId: 1a2b3c4d5e6f { "result": { "Campaigns": [ { "Id": 118234567, "Name": "poisk-msk", "State": "ON" }, { "Id": 118234599, "Name": "rsya-retarget", "State": "ON" } ], "LimitedBy": 100 } }

Почти у всех методов один и тот же набор: add, update, delete, get. Плюс специфические — например moderate у сервиса Ads для отправки объявлений на модерацию.

Конструктор запроса и расчёт баллов

Чтобы не листать документацию ради тела запроса и стоимости операции, собрал переключатель по основным сервисам.

Конструктор запроса и расчёт баллов
Выберите сервис и метод — покажу тело запроса и во сколько баллов обойдётся операция по тарифам из документации.
за вызов метода
за объекты
всего баллов

Считать баллы до запуска стоит всегда: массовая загрузка объявлений через Ads.add обходится в 20 баллов за вызов плюс 20 за каждое объявление, и тысяча объявлений съедает заметную часть суточного лимита.

Из чего состоит API

Сервисов больше двадцати. Ниже — те, с которыми работают чаще всего.

Двенадцать основных сервисов
Полный список и справочник методов — в документации на yandex.ru/dev/direct
СервисЗа что отвечаетТиповые задачи
CampaignsКампанииСоздание, правка, остановка и запуск, архив
AdGroupsГруппы объявленийСтруктура внутри кампании, регионы группы
AdsОбъявленияТексты, ссылки, отправка на модерацию, статусы
KeywordsКлючевые фразы и автотаргетингиДобавление, правка, ставки, продуктивность
KeywordBidsСтавкиУправление ставками по фразам и группам
ReportsСтатистикаОтчёты в TSV с нужными полями и группировками
ChangesПроверка измененийЧто поменялось с прошлой синхронизации
DictionariesСправочникиРегионы, часовые пояса, валюты и прочее
RetargetingListsУсловия ретаргетингаСегменты и условия подбора аудитории
NegativeKeywordSharedSetsНаборы минус-фразОбщие минус-слова на уровне аккаунта
FeedsФидыТоварные фиды для динамических и товарных кампаний
AgencyClientsКлиенты агентстваЗаведение и настройка клиентских аккаунтов
Таблица прокручивается вбок на узком экране.

Баллы: лимиты и как их не проесть

Баллы — способ регулировать нагрузку на серверы. Суточный лимит индивидуальный и зависит от активности кампаний: чем больше показов, кликов и расхода, тем выше лимит.

Баллы API Яндекс Директа: суточный лимит, начисление и стоимость операций
Стоимость операций и заголовок с остатком баллов. Значения из документации Яндекса.
Пять правил про баллы
Полная таблица тарифов — в документации
ПравилоДеталь
Начисление по скользящему окнуВ начале каждого часа начисляется 1/24 суточного лимита, неизрасходованное за прошлые 23 часа остаётся доступным
Списание за ошибкиОшибка вызова метода — 20 баллов, ошибка операции с объектом — 20 баллов за операцию
Пять параллельных запросовБольше одновременных запросов от одного рекламодателя API не принимает
Чьи баллы тратятсяУ агентства это зависит от заголовка Use-Operator-Units: с ним — баллы агентства, без него — клиента
Где смотреть остатокЗаголовок Units в ответе на каждый запрос
Таблица прокручивается вбок на узком экране.
Типичный способ остаться без баллов. Цикл, который дёргает get по одному объекту вместо одной выборки на тысячу. Стоимость вызова платится каждый раз — тысяча вызовов вместо одного превращает 15 баллов в 15 000.

Статистика через сервис Reports

Отчёты живут отдельно от остальных сервисов. Запрос отправляется на адрес /json/v501/reports, параметры передаются в теле, а сам отчёт приходит в формате TSV в кодировке UTF-8.

Как работает Reports
Это тот же Мастер отчётов, только вызываемый программно и по расписанию
ЧтоКак устроено
Формат ответаTSV — таблица с разделителями-табуляциями, удобно грузится в любую систему
Онлайн и офлайнВ зависимости от объёма и заголовков сервер отдаёт отчёт сразу или ставит в очередь
Поля и группировкиНабор полей задаётся в запросе: кампании, группы, фразы, площадки, устройства
ПериодЗадаётся датами или предустановленным диапазоном
Таблица прокручивается вбок на узком экране.

Именно на Reports держится большинство рабочих сценариев: выгрузка в BI, ежедневные проверки площадок, контроль стоимости конверсии по срезам. Всё остальное — управление объектами — обычно строится уже поверх этих данных.

Когда API не нужен

API оправдан на объёме и регулярности. Если задача разовая или её закрывает штатный инструмент, проще обойтись без него.

Четыре задачи, для которых API избыточен
Порог входа у API невысокий, но поддержка скрипта — это тоже работа
ЗадачаЧем закрытьКомментарий
Массовые правки текстов и фразДирект КоммандерБесплатная программа, разбор здесь
Отчёты и срезы статистикиМастер отчётов в кабинетеГруппировки, фильтры, выгрузка — без единой строки кода
Автоматизация ставок и правилГотовые сервисы и биддерыРаботают через тот же API, но настройка идёт мышкой
Разовая выгрузка в таблицуОтчёты Директа и МетрикиЕсли задача разовая, API обычно избыточен
Таблица прокручивается вбок на узком экране.

Шесть проблем, на которых спотыкаются

Почти все обращения по API сводятся к шести ситуациям — от невозможности подать заявку до внезапно кончившихся баллов.

Шесть типовых проблем
Первые две относятся к этапу подключения, остальные — к работе скрипта
ПроблемаКак выглядитВ чём дело
Нет доступа к странице настроек APIСтраница просто не открываетсяВ аккаунте должна быть создана хотя бы одна кампания в веб-интерфейсе
Заявка отклоненаСтатус «отклонена» в списке заявокОписание приложения слишком общее. В заявке нужны конкретные сведения о том, что делает приложение
Ошибка авторизацииОтвет с кодом 53 или 58Токен просрочен, выдан другому пользователю или не тот ClientID. Токен получается на каждого пользователя отдельно
Недостаточно балловОшибка 152Суточный лимит исчерпан. Баллы начисляются по 1/24 в час, поэтому часть операций стоит перенести
Пятый параллельный запросЧасть запросов отваливаетсяОграничение — не более пяти одновременных запросов от одного рекламодателя
Списались баллы за неудачный запросОстаток тает, результата нетОшибка вызова стоит 20 баллов, ошибка операции с объектом — тоже 20. Отладка идёт на минимальных выборках
Таблица прокручивается вбок на узком экране.

Частые вопросы

Что такое API Яндекс Директа
Программный интерфейс для управления рекламными кампаниями из внешних приложений: создание и правка кампаний, групп, объявлений и ключевых фраз, управление ставками, выгрузка статистики. Работает по HTTPS методом POST, данные передаются в JSON или SOAP/XML.
API Директа платный
Нет. Подключение к API и его использование бесплатны, оплачивается только сама реклама. Ограничение здесь считается в баллах: у каждого рекламодателя есть суточный лимит операций.
Как получить доступ к API Директа
Сначала регистрируется приложение в Яндекс ID с правом «Использование API Яндекс Директа» (direct:api) — при этом выдаются ClientID и Client secret. Затем в Директе на странице настроек API подаётся заявка с указанием ClientID. Срок рассмотрения по регламенту — до 7 дней.
Почему не открывается страница настроек API
Доступ к ней появляется только после того, как в аккаунте создана хотя бы одна кампания в веб-интерфейсе Директ Про. Это условие из документации, и о него спотыкаются чаще всего.
Как получить токен для API Директа
Токен выдаёт Яндекс ID по протоколу OAuth 2.0. На этапе отладки берут отладочный токен от имени тестового пользователя, в рабочем приложении пользователь проходит по ссылке запроса доступа и нажимает «Разрешить». Токен нужен отдельный для каждого пользователя Директа.
Что такое баллы в API Директа
Способ ограничения нагрузки. У каждого рекламодателя свой суточный лимит, который зависит от активности кампаний. Баллы списываются за вызовы методов и операции с объектами, а также за ошибки — по 20 баллов за ошибку вызова или операции. Остаток виден в заголовке Units в ответе.
Какой адрес у API Директа
У каждого сервиса свой: например, https://api.direct.yandex.com/json/v501/campaigns для кампаний и https://api.direct.yandex.com/json/v501/reports для отчётов. Актуальную версию в адресе стоит сверять с документацией — она менялась.
Сколько запросов можно отправлять одновременно
Не более пяти одновременных запросов от одного рекламодателя. Плюс действует суточный лимит баллов, который начисляется по 1/24 в час по принципу скользящего окна.
Можно ли работать с API без программиста
Да, и это заметно изменилось за последние пару лет. Скрипт под конкретную задачу собирается в Claude Code или Cursor по описанию словами: вы даёте токен и объясняете задачу, модель пишет запросы. Понимать, что такое токен, метод и баллы, всё равно придётся.
Чем API отличается от Директ Коммандера
Коммандер — готовая программа для массовых правок мышкой, API — интерфейс для собственных сценариев. Всё, что делает Коммандер, можно сделать через API, но не наоборот: расписание, интеграции с внешними системами и собственные правила живут только в API.

Главное

Если коротко

API Директа даёт то, чего нет ни в кабинете, ни в Коммандере: собственные правила, расписание и интеграции с внешними системами. Подключение бесплатное, а весь путь до первого запроса — это приложение в Яндекс ID с правом direct:api и заявка с конкретным описанием задачи. Дальше начинается арифметика баллов: суточный лимит зависит от активности кампаний, ошибки тоже стоят денег в баллах, а цикл с тысячей одиночных запросов вместо одной выборки съедает лимит за минуты. Порог входа сейчас низкий — скрипт пишется в связке с моделью по описанию словами, но понимать, что такое токен, метод и баллы, всё равно нужно.

Автоматизирую рекламу и SEO на живых проектах, пишу об этом в Telegram. Нужен аудит кампаний или помощь с автоматизацией — напишите через бриф.

Больше разборов в Telegram — «Digital-трафик»

Читать дальше

Все статьи
Ссылка скопирована