API Яндекс Директа: автоматизация для агентства

OAuth, токены и сценарии для рекламного агентства — меньше рутины в кабинете, больше контроля над кампаниями клиентов

Получить предложение
01 OAuth и токен доступа
02 AgencyClients → Client-Login
03 Reports API и выгрузка
04 Сводный отчёт клиенту

Коротко. API Яндекс Директа — бесплатный программный интерфейс версии 5 для автоматизации кампаний, объявлений, ставок и отчётности через HTTPS-запросы с авторизацией OAuth 2.0. Для рекламного агентства это способ масштабировать работу с десятками клиентских кабинетов без ручного кликанья в веб-интерфейсе.

Ниже — практический гайд: доступ, сервисы, сценарии, лимиты и типичные ошибки. Связка с ведением Директа для агентства — логичное продолжение OAuth-контура.

🔌

Direct API v501

Три опоры контура: OAuth-токен, заголовок Client-Login, асинхронный Reports.

5
офлайн-отчётов в очереди
7
дней на заявку API
ayda-agency-report.sh
# агентский пайплайн
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 + логи вашей системы
ОшибкиВидны сразу в UIHTTP 200 не гарантирует нужный результат — нужна валидация

Эксперты на Habr (сентябрь 2026) подчёркивают: «пустой список ошибок означает только то, что API не отклонил операцию. Он не означает, что итоговое состояние совпадает с вашим замыслом». — кейс валидации ответов

Какие задачи агентства закрывает автоматизация через API

Подтверждённые агентские сценарии из практики и документации:

  1. Мультиаккаунтная отчётность — список клиентов через AgencyClients, затем Reports с заголовком Client-Login для каждого; данные уходят в таблицы или BI. — пример Python для агентства
  2. Массовый A/B креативов — Ads.add / Ads.update пачками вместо ручного дублирования.
  3. Чистка площадок РСЯ — отчёт + корректировки через BidModifiers и исключения.
  4. Синхронизация с остатками каталога — приостановка объявлений и ключевых фраз, если товара нет на складе.
  5. Аудит изменений — сервис Changes (check, checkCampaigns) вместо полных выборок get.
  6. Ретаргетинг и аудитории — RetargetingLists, AudienceTargets плюс отдельный API Аудиторий (scope audience:read, audience:write, хост api-audience.yandex.ru).
  7. Управление ставками — 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».

Схема API-автоматизации агентства: OAuth, Direct API, кампании и отчёты Интерактивная архитектура: Яндекс ID OAuth, шлюз Direct API v501, агентский MCC с Client-Login, сервисы Campaigns Ads Bids, асинхронный Reports и выход в дашборд клиента OAUTH → API → КАМПАНИИ → ОТЧЁТЫ OAuth Яндекс ID direct:api Direct API v501 · POST Bearer token Agency MCC AgencyClients .get → список Client-Login ЦИКЛ ПО КЛИЕНТАМ client_01 shop.ru client_02 b2b.io client_N …+20 Кампании · Ads · Bids Campaigns add · update Ads креативы Bids ставки Changes.check — экономия баллов Reports async · offline 200 201 202 retryIn · 5 в очереди Дашборд Sheets · BI Песочница api-sandbox.direct dry-run → approve human-in-the-loop ЗРЕЛОСТЬ КОНТУРА Ручной UI OAuth + 1 клиент AgencyClients + массовые ops полный playbook Активные сервисы в контуре Reports → BI Authorization Client-Login Use-Operator-Units

Как получить доступ: OAuth, токен и кабинет разработчика

Подключение API в 2026 году — трёхшаговый процесс. Порядок зафиксирован в официальной документации:

  1. Создать приложение в Яндекс ID с правом direct:api.
  2. Подать заявку на доступ в разделе «Настройки API» Директа, указав ClientID приложения.
  3. Получить 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:

  1. Reports — выгрузка поисковых запросов за период.
  2. Фильтрация в вашем скрипте или таблице.
  3. 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, патч после approveRead-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 клиенту

Заголовки, которые нужно держать в голове:

ЗаголовокНазначение
AuthorizationOAuth-токен представителя
Client-LoginЛогин клиента, чьи данные запрашиваете
Use-Operator-Units: trueСписать баллы агентства, а не клиента
processingModeonline / 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 не превращался в ложный отчёт клиенту.

🔌 OAuth, песочница и первый сценарий Reports на одного клиента
⚡ План масштабирования: параллелизм, Use-Operator-Units, Changes.check
🛡️ Валидация ответов API: Goals+Conversions, State после update

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 для записи — и расширяйте автоматизацию по мере повторяемости задач.