API Яндекс Директа: автоматизация для агентства
OAuth, токены и сценарии для рекламного агентства — меньше рутины в кабинете, больше контроля над кампаниями клиентов
Получить предложениеКоротко. API Яндекс Директа — бесплатный программный интерфейс версии 5 для автоматизации кампаний, объявлений, ставок и отчётности через HTTPS-запросы с авторизацией OAuth 2.0. Для рекламного агентства это способ масштабировать работу с десятками клиентских кабинетов без ручного кликанья в веб-интерфейсе.
Ниже — практический гайд: доступ, сервисы, сценарии, лимиты и типичные ошибки. Связка с ведением Директа для агентства — логичное продолжение OAuth-контура.
~14 мин чтения
Direct API v501
Три опоры контура: OAuth-токен, заголовок Client-Login, асинхронный Reports.
get AgencyClients → список логинов
loop Client-Login → Reports offline
check Goals+Conversions OK
Что такое API Яндекс Директа и зачем он рекламному агентству
Определение. API Яндекс Директа (в актуальной версии v5 / v501) — программный интерфейс, через который можно управлять рекламными кампаниями, группами, объявлениями, ставками и статистикой. Запросы отправляются методом HTTPS POST, авторизация — по протоколу OAuth 2.0, данные передаются в формате JSON или SOAP/XML. Интерфейс бесплатный. — официальный обзор
Яндекс прямо указывает: API «полезен в первую очередь агентствам» и крупным заказчикам со сложными кампаниями — когда нужны собственные алгоритмы ставок и своевременная отчётность, а не только ручная работа в кабинете. — справка по альтернативным интерфейсам
Если вы ведёте ведение Директа для агентства и уже разделили доступы через OAuth вместо паролей, API — логичное продолжение: те же принципы безопасности, но на уровне скриптов, интеграций и регламентов.
Чем API отличается от работы только в веб-кабинете
В веб-кабинете каждое действие — ручной клик: смена ставки, добавление минус-фразы, выгрузка отчёта по одному клиенту. API позволяет выполнять те же операции программно — пачками, по расписанию, по правилам из таблицы или системы учёта клиентов.
Ключевые отличия для агентства:
| Аспект | Только кабинет | Через API |
|---|---|---|
| Масштаб | 1–3 клиента комфортно | 10–50+ клиентов по циклу |
| Повторяемость | Копирование вручную | Шаблон + скрипт на всех |
| Отчётность | Экспорт по одному аккаунту | AgencyClients.get → цикл по Client-Login → Reports |
| Контроль | История в интерфейсе | Сервис Changes + логи вашей системы |
| Ошибки | Видны сразу в UI | HTTP 200 не гарантирует нужный результат — нужна валидация |
Эксперты на Habr (сентябрь 2026) подчёркивают: «пустой список ошибок означает только то, что API не отклонил операцию. Он не означает, что итоговое состояние совпадает с вашим замыслом». — кейс валидации ответов
Какие задачи агентства закрывает автоматизация через API
Подтверждённые агентские сценарии из практики и документации:
- Мультиаккаунтная отчётность — список клиентов через
AgencyClients, затем Reports с заголовкомClient-Loginдля каждого; данные уходят в таблицы или BI. — пример Python для агентства - Массовый A/B креативов —
Ads.add/Ads.updateпачками вместо ручного дублирования. - Чистка площадок РСЯ — отчёт + корректировки через
BidModifiersи исключения. - Синхронизация с остатками каталога — приостановка объявлений и ключевых фраз, если товара нет на складе.
- Аудит изменений — сервис
Changes(check,checkCampaigns) вместо полных выборокget. - Ретаргетинг и аудитории —
RetargetingLists,AudienceTargetsплюс отдельный API Аудиторий (scopeaudience:read,audience:write, хостapi-audience.yandex.ru). - Управление ставками —
Bids.set,Bids.setAuto,KeywordsResearch.
Антон Перепечаев на vc.ru описывает типичный эффект: при ведении 25 клиентов «выгрузка данных в таблицы происходит одним кликом» — при правильно настроенном API-контуре. — автоматизация отчётности
агентский playbook · Direct API v501
Архитектура API-автоматизации агентства
Не «один запрос в кабинет», а контур: OAuth-токен → шлюз API → цикл по клиентам с Client-Login → кампании и асинхронные отчёты в BI.
AgencyClients.get→ цикл Client-Login → offline Reports в таблицы- Заголовок
Use-Operator-Units: true— когда тратить баллы агентства, а не клиента - Коды 200/201/202 — не «готово», пока не проверили Goals+Conversions
Итог: один cron-пайплайн закрывает отчётность на 20+ клиентов без ручного экспорта из кабинета.
Дальше — пошаговое подключение OAuth и заявка в «Настройки API».
Как получить доступ: OAuth, токен и кабинет разработчика
Подключение API в 2026 году — трёхшаговый процесс. Порядок зафиксирован в официальной документации:
- Создать приложение в Яндекс ID с правом
direct:api. - Подать заявку на доступ в разделе «Настройки API» Директа, указав ClientID приложения.
- Получить OAuth-токен на каждого пользователя, от имени которого будут идти запросы.
Важно: страница «Настройки API» доступна только после создания хотя бы одной кампании в веб-интерфейсе Директа; при первом входе нужно принять пользовательское соглашение.
Рассмотрение заявки — до 7 рабочих дней (пн–пт, 10:00–19:00 МСК). На практике при конкретном описании сценария одобрение часто приходит быстрее. — troubleshooting; экспертный гайд Pawetta, август 2026
Регистрация приложения и выдача OAuth-токена
Приложение регистрируется в кабинете разработчика Яндекс API. Для Директа критичен scope direct:api. Если агентство работает с паспортными организациями клиентов, с 2 июня 2025 дополнительно нужен доступ passport:business в настройках OAuth-приложения. — changelog API
После одобрения заявки каждый специалист, который будет вызывать API (руководитель направления, ведущий директолог, разработчик интеграции), получает свой OAuth-токен — не «общий пароль на всех».
Типовой поток авторизации описан в документации Yandex OAuth: redirect на oauth.yandex.ru, обмен кода на токен. Ключевые поисковые запросы вроде «yandex oauth», «oauth token yandex», «как получить oauth token yandex» закрываются именно этой схемой — без передачи логина и пароля от кабинета подрядчику.
API-токен Директа и права доступа для сотрудников агентства
Внутри агентской модели Яндекс Директа управляющий аккаунт (логически — центр управления клиентами) запрашивает данные клиента через заголовок Client-Login — логин рекламодателя. Токен при этом принадлежит представителю агентства, а не клиенту.
Сервис AgencyClients (/json/v501/agencyclients) — методы add, update, get — вызывается без Client-Login в заголовке. — AgencyClients
Изменение с 16 июня 2025: метод AgencyClients.add больше не поддерживается. Регистрация новых клиентов — через addPassportOrganization (доступ по заявке для агентств с большим числом клиентов). С 19 июня 2025 добавлен addPassportOrganizationMember — добавление сотрудника в паспортную организацию клиента. — новость ppc.world
С 20 июня 2025 агентства могут входить в Директ Коммандер через логин паспортной организации — не только через агентский или личный кабинет.
Безопасное хранение ключей при работе с несколькими клиентами
Регламент для агентства:
- OAuth-токены и Client Secret — только в защищённом хранилище (переменные окружения на сервере, секрет-менеджер), не в таблицах, чатах и промптах к ИИ.
- Разделение ролей: read-only токен для отчётности, отдельный контур для записи с human-in-the-loop (dry-run → approve → apply). Паттерн описан в материале Habr про AI-агентов: из чата доступен только read-only MCP с вызовами
get; запись — отдельным apply-процессом. — Habr 1079434 - Не передавать пароль от кабинета — только OAuth-представитель; тема раскрыта в нашей статье про мультиаккаунт.
- Песочница для тестов:
https://api-sandbox.direct.yandex.com/json/v5/{service}— изолированная среда без веб-интерфейса, данные хранятся около месяца; можно выбрать роль «Агентство» с 3 тестовыми клиентами по 3 кампании. — песочница
Документация API и основные сервисы
Портал документации: yandex.ru/dev/direct/doc/ru/. Актуальные JSON-эндпоинты сервисов, включая Campaigns, Bids, AgencyClients: https://api.direct.yandex.com/json/v501/{service}; для единых перформанс-кампаний также указан путь /v501/. — Campaigns
Структура запроса единообразна: заголовок Authorization: Bearer , тело с method и params, для агентских запросов к данным клиента — Client-Login.
Campaigns, AdGroups, Ads — управление структурой кампаний
Три опорных сервиса для «скелета» рекламы:
- Campaigns — создание, настройка стратегий, статусы, типы кампаний. С 16 сентября 2025 в API доступна стратегия
MAX_PROFIT; с 6 июня 2025 —AVERAGE_CPA_MULTIPLE_GOALSиPAY_FOR_CONVERSION_MULTIPLE_GOALSдля мультицелевых стратегий. - AdGroups — группировка объявлений, настройки таргетинга на уровне группы.
- Ads — сами объявления. Критично для 2026: с 30 июня 2026 вызов
Ads.addсTextAdсоздаётRESPONSIVE_AD, а неTEXT_AD. С 14 июля 2026 все текстово-графические объявления в ЕПК автоматически обновляются до комбинаторного типа; полеTitle2может потеряться; лимиты групп — до 3 неархивных или 10 с архивными объявлениями. — changelog; миграция ТГО; наш гайд по комбинаторным объявлениям ЕПК 2026
Если у агентства есть скрипты автозалива креативов — их нужно переписать до лета 2026, иначе массовая заливка начнёт создавать другой тип объявлений.
Reports API — выгрузка статистики для клиентских отчётов
Reports — асинхронный сервис. Режимы: processingMode: auto|online|offline. Коды ответа:
| Код | Значение |
|---|---|
| 200 | Отчёт готов |
| 201 | В очереди |
| 202 | Формируется |
| 400 | Ошибка или лимит очереди |
Повтор запроса — с интервалом retryIn из ответа. — режимы отчётов
Ограничения для агентства:
- Не более 5 офлайн-отчётов в очереди на одного пользователя (
reportsInQueue). - В песочнице — не более 1 кампании на отчёт.
Для корректных сумм рекомендуется returnMoneyInMicros: false. Для конверсий — одновременно указывать Goals и Conversions в FieldNames, иначе отчёт может выглядеть «успешным», но не содержать нужных данных. — Habr 1077680
Эталонный агентский пайплайн из документации: AgencyClients.get → цикл по логинам → Reports с Client-Login для каждого клиента; пагинация через LimitedBy / Offset.
Dictionaries и вспомогательные методы
Сервис Dictionaries — справочники регионов, валют, лимитов, статусов модерации. Его вызывают реже, но без него ломаются массовые загрузки: неверный идентификатор региона или статуса блокирует пачку объявлений.
Вспомогательные сервисы, которые агентство использует постоянно:
- Changes — проверка, что изменилось с последнего синка (экономия баллов).
- KeywordsResearch — подбор и оценка ключевых фраз.
- BidModifiers — корректировки ставок; с 13 ноября 2025 метод
BidModifiers.toggleустарел; с 26 октября 2025 добавлен типSmartTvAdjustment.
Документацию прочитали — а цикл AgencyClients → Reports так и не запустили?
OAuth-токен, Client-Login и Reports API на бумаге понятны, но без рабочего пайплайна агентство всё равно выгружает отчёты вручную. Monster Context настраивает API-контур под ключ: заявка в Директе, песочница, мультиаккаунтная отчётность, human-in-the-loop для записи и миграция скриптов под комбинаторные объявления 2026.
- Архитектура: AgencyClients.get → цикл Client-Login → offline Reports в таблицы или BI
- Регламент баллов: Use-Operator-Units, очередь отчётов, Changes вместо полных get
- Безопасность: OAuth вместо паролей, разделение read-only и write-контура
Сценарии автоматизации для агентства
Центральный блок для запросов «автоматизация яндекс директ» и «яндекс директ для рекламного агентства». Здесь API перестаёт быть «документацией для программиста» и становится операционным инструментом.
Массовые правки ставок, объявлений и минус-фраз
Типовой кейс: у 15 клиентов в e-commerce нужно поднять ставки на брендовые группы на 10% и добавить одинаковый список минус-фраз после аудита поисковых запросов.
Через API:
Reports— выгрузка поисковых запросов за период.- Фильтрация в вашем скрипте или таблице.
Keywords.update/Bids.set/ обновление минус-фраз на уровне группы или кампании.
Pawetta (август 2026) отмечает: «API Директа перестал быть территорией разработчиков: скрипт под свой кабинет теперь собирается за вечер по описанию задачи словами». — блог Pawetta Это не отменяет регламент проверки результата — особенно после массовых операций.
Синхронизация кампаний между аккаунтами клиентов
Агентство часто тиражирует удачную структуру: одна master-кампания → клонирование на региональные аккаунты. API позволяет выгрузить структуру через Campaigns.get, AdGroups.get, Ads.get, трансформировать и залить через add-методы — с учётом лимитов и модерации.
Для онбординга новых клиентов после июня 2025 цепочка изменилась: вместо AgencyClients.add — работа с паспортной организацией. Это нужно заложить в шаблон «подключения клиента», иначе старый скрипт onboarding сломается молча или с неочевидной ошибкой.
Интеграция с системой учёта клиентов, таблицами и no-code
Три уровня зрелости:
| Подход | Когда подходит | Примеры |
|---|---|---|
| No-code (n8n, Make) | Отчёты, алерты по расходу, простые правила | HTTP Request к API, ежедневная выгрузка в Google Sheets — кейс n8n |
| Скрипты (Python, CLI) | Кастомная логика ставок, синхронизация с каталогом | direct-cli, direct_sync.py, bid_manager.py — PyPI direct-cli; кейс vc.ru |
| AI + MCP | Аналитика на read-only, патч после approve | Read-only MCP → campaign_patch.json → dry-run → human approve → apply — Habr 1079434 |
Связка с сегментами аудиторий Метрики в Директе — смежный кластер: API Аудиторий + AudienceTargets для загрузки сегментов из системы учёта клиентов.
Автор кейса на vc.ru пишет: «Раньше платил за сторонний [биддер] около 20 тысяч в месяц и не мог влезть в его логику — чёрный ящик. Теперь свой, полностью под моим контролем». In-house автоматизация окупается, когда сценарии стабильны и повторяются каждую неделю.
Когда достаточно правил в кабинете, а когда нужен API
Достаточно кабинета и Коммандера, если:
- клиентов мало (1–3), изменения эпизодические;
- хватает автостратегий и встроенных правил;
- отчётность — стандартные пресеты без сводных дашбордов.
Нужен API, если:
- 10+ клиентов и единый формат отчёта «на завтра к 9:00»;
- массовые однотипные правки (ставки, минус-фразы, креативы);
- синхронизация с остатками, ценами, фидом;
- свой биддер или интеграция с внутренней аналитикой;
- аудит: кто и когда менял ставки — через
Changesи ваши логи.
Запрос «ai директолог» в 2026 году часто означает именно связку ИИ для анализа + API для исполнения после проверки человеком, а не полностью автономное управление без контроля.
Сценарии n8n, MCP и changelog API Директа — в Telegram Monster Context
В канале — короткие разборы автоматизации для агентств: OAuth и passport organization, лимиты баллов, миграция TextAd → комбинаторные, паттерн dry-run → approve → apply. Удобно сверять регламент команды, пока собираете свой первый скрипт отчётности.
UTM-метки, отчёты и контроль качества через API
Запросы «utm метки в яндекс директ», «как сделать utm метки в яндекс директ» и «utm метки в яндекс директ генератор» для агентства сводятся к одному: единый шаблон разметки на всех клиентах и проверка, что ссылки в объявлениях не «плывут» при массовых обновлениях.
Автоматическая простановка UTM при создании объявлений
При Ads.add и Ads.update финальный URL задаётся в параметрах объявления. Агентский регламент:
- шаблон UTM хранится в конфиге скрипта (source, medium, campaign, content, term);
- подстановка
{campaign_id},{ad_id},{keyword}— по правилам клиента; - перед заливкой — dry-run на 1–2 объявления в песочнице или тестовой группе.
Генераторы UTM вручную подходят для разовых кампаний; при 20+ аккаунтах ошибка в одном символе ломает сквозную аналитику в Метрике. API позволяет верифицировать URL после создания повторным Ads.get.
Сводные отчёты для клиента без ручного экспорта
Операционная схема «агентский playbook»:
AgencyClients.get → для каждого Client-Login → Reports (offline) →
сохранение CSV → сводная таблица / дашборд → PDF клиенту
Заголовки, которые нужно держать в голове:
| Заголовок | Назначение |
|---|---|
Authorization | OAuth-токен представителя |
Client-Login | Логин клиента, чьи данные запрашиваете |
Use-Operator-Units: true | Списать баллы агентства, а не клиента |
processingMode | online / offline / auto для Reports |
Официальная позиция: «агентство самостоятельно принимает решение, в каких случаях расходовать собственные баллы, а в каких — баллы своего клиента». — best practice agency
Human-in-the-loop перед отчётом клиенту: перечитать State кампаний после update; сверить Goals+Conversions; не доверять только HTTP 200. — Habr 1077680
Типичные ошибки, лимиты запросов и отладка
Ошибки авторизации и просроченные токены
Частые причины:
- заявка на API ещё не одобрена (ждать до 7 рабочих дней);
- токен выдан без scope
direct:apiили безpassport:businessдля паспортных организаций; - запрос к данным клиента без
Client-Loginили с неверным логином; - токен отозван или истёк — нужен refresh по правилам Yandex OAuth.
Симптом «все три запроса вернули 200 OK, но выводы неверны» — не ошибка авторизации, а ошибка интерпретации данных (типичный кейс с Goals/Conversions в Reports).
Лимиты API и очереди запросов при массовых операциях
Баллы (Units) — индивидуальный суточный лимит, зависит от активности кампаний (показы, клики, расход); пересчёт раз в сутки; начисление по скользящему окну — 1/24 лимита каждый час плюс неизрасходованный остаток за 23 часа. — units
По умолчанию при запросе с Client-Login списываются баллы клиента; заголовок Use-Operator-Units: true переключает списание на агентство — полезно для новых клиентов без накопленного лимита. Остаток виден в заголовке ответа Units: израсходовано/остаток/суточный_лимит.
Стоимость ошибок:
- ошибка вызова метода — 20 баллов;
- ошибка операции с объектом — 20 баллов за операцию.
Технические лимиты:
- не более 5 параллельных запросов от одного рекламодателя (клиента);
- не более 5 офлайн-отчётов в очереди на пользователя;
- оптимизация: кэш +
Changesвместо полныхget. — optimize
При массовых операциях на 30 клиентах узкое место — не «медленный интернет», а бюджет баллов × параллелизм × очередь Reports. Планируйте ночные offline-отчёты и дневные лёгкие Changes.check.
Бесплатный разбор API-автоматизации для вашего агентства
Оставьте заявку — посмотрим заявку на доступ к API, схему Client-Login по портфелю клиентов, бюджет баллов и очередь Reports. Подскажем, что переписать в скриптах до июля 2026 и как встроить human-in-the-loop, чтобы HTTP 200 не превращался в ложный отчёт клиенту.
FAQ по API Яндекс Директа
Ответы для агентств и интеграторов
Нужен ли агентству штатный программист?
Не обязательно для старта: no-code-сценарии (n8n, Make) и короткие Python-скрипты по официальным примерам закрывают отчётность и простые правки. Сложный биддер, синхронизация с каталогом и онбординг через паспортные организации потребуют разработчика или подрядчика по интеграциям — Monster Context настраивает такие контуры под ключ.
Чем OAuth-токен отличается от «API-ключа» в бытовом смысле?
OAuth-токен привязан к конкретному пользователю и его правам в Директе; его получают через авторизацию Yandex ID с нужными scope. «API-ключ» в запросах часто путают с ClientID/Client Secret приложения — это другой слой: идентификация приложения, а не замена пароля.
Можно ли автоматизировать Директ без API?
Частично — Коммандер, автостратегии, правила. Но мультиаккаунтная отчётность, массовые правки на десятках аккаунтов и интеграция с внешними системами без API упираются в ручной труд.
Где официальная документация?
Портал yandex.ru/dev/direct/doc/ru/: обзор, регистрация, сервисы, changelog 2025–2026, работа агентства.
Как начать агентству с одного клиента?
(1) Кампания в веб-интерфейсе → (2) приложение Yandex ID + заявка → (3) OAuth-токен представителя → (4) тест в песочнице → (5) один сценарий Reports на Client-Login → (6) масштабирование цикла AgencyClients.get.
Нужно ли своё приложение в Яндекс ID или хватит токена представителя?
Приложение нужно одно на агентство (или на интегратора). Токены — на каждого, от чьего имени идут запросы. Подрядчику выдают OAuth, а не пароль.
Что переписать в скриптах к июлю 2026?
Автозалив через TextAd → переход на комбинаторные объявления; проверьте гайд по ЕПК 2026 и раздел update-tga в документации.
Помогают ли курсы «api яндекс директ»?
Курсы дают базу; операционный уровень — в официальной доке, песочнице и регламенте агентства (баллы, Client-Login, валидация ответов). Связка «курс + свой первый скрипт отчётности» эффективнее пассивного просмотра.
Итог. API Яндекс Директа для агентства — это не «техническая опция», а инфраструктура масштаба: OAuth вместо паролей, цикл AgencyClients → Client-Login → Reports/Changes, осознанный бюджет баллов и миграция скриптов под комбинаторные объявления 2026 года. Начните с одного клиента и песочницы, зафиксируйте human-in-the-loop для записи — и расширяйте автоматизацию по мере повторяемости задач.









