Лимиты Instagram* API: что боту можно, а что нельзя
Instagram* не позволяет написать человеку, который сам не начал переписку: холодный директ запрещён правилами и технически невозможен — официальный API такой отправки не даёт. Законных входов три: ответ на комментарий под постом, реакция на сторис и кодовое слово в личных сообщениях. Первый директ после комментария уходит как Private Reply, и попытка на него одна.
Разговор про бота в Instagram* почти всегда начинается с просьбы, которую выполнить нельзя: «разошлите по подписчикам». Ниже — граница канала по пунктам: что API разрешает, что запрещает и где сценарий обрывается молча.
Короткий ответ
- Написать первым нельзя. Официальный API Instagram* не даёт отправить сообщение человеку, который сам не начинал переписку. Рассылки по подписчикам аккаунта не существует ни в платном, ни в бесплатном виде.
- Законных входов три: ответ на комментарий под постом, ответ на реакцию человека на сторис, ответ на кодовое слово в личных сообщениях. Во всех трёх случаях первый шаг делает человек.
- Первый директ после комментария уходит как Private Reply, и попытка на него одна. Отказ сжигает её окончательно: повторная отправка не помогает. Страхует не повтор, а публичная подсказка в комментариях.
- Упоминание аккаунта отвечается только публично. Ответ на упоминание в сторис или в комментарии уходит публичным комментарием, а не в директ.
Что можно и что нельзя: двенадцать частых просьб
Список составлен не по нашему вкусу: разделение задаёт официальный API. Слева — просьба в той формулировке, в которой она приходит.
| Что хотят сделать | Можно ли | Оговорка |
|---|---|---|
| Ответить на входящее сообщение в директе | Да | переписку начал человек |
| Ответить в директ тому, кто написал кодовое слово в комментарии | Да, один раз | первый директ уходит как Private Reply, попытка одна |
| Ответить публичным комментарием под постом | Да | публичные ответы такой одноразовой попыткой не ограничены |
| Ответить человеку, который отреагировал на сторис | Да | диалог начинает человек, бот только отвечает |
| Ответить на кодовое слово в личных сообщениях | Да | обычная переписка, попытки не считаются |
| Ответить на упоминание аккаунта | Да, но только публично | ответ уходит комментарием, директ по упоминанию не отправляется |
| Написать первым тому, кто ничего не писал | Нет | API такой отправки не даёт |
| Разослать сообщение по подписчикам аккаунта | Нет | ни один адресат рассылки переписку не начинал |
| Поставить рассылку по базе, собранной вручную | Нет | собранная база не даёт права на первое сообщение |
| Найти человека в директе по номеру телефона или почте | Нет | переписка открывается только со стороны человека |
| Отправить Private Reply второй раз после отказа | Нет | попытка израсходована |
| Написать первым новому подписчику | Нет | подписка переписку не открывает, API такой отправки не даёт |
Две строки стоит запомнить отдельно: «рассылка по подписчикам» и «напишем первым» — не функции, за которые можно доплатить. Их в канале нет.
Почему рассылку по подписчикам нельзя купить ни за какие деньги
Причина не в цене и не в квалификации подрядчика. Право начать переписку в Instagram* принадлежит человеку, а не аккаунту: пока человек не написал комментарий, не отреагировал на сторис и не прислал сообщение, отправлять некуда.
Отсюда простая проверка для любого предложения «сделаем рассылку в директ». Один вопрос: каким методом API отправляется первое сообщение человеку, который вам не писал. Ответы бывают трёх видов:
- Названия метода нет, есть «через личный кабинет сервиса». Значит, отправка идёт не через API, а имитацией действий человека в приложении. Это нарушение правил платформы, и рискует аккаунт заказчика, а не подрядчик.
- «Разошлём тем, кто уже писал». Законно, но это не рассылка по подписчикам: адресатов столько, сколько людей когда-то написало первыми.
- «Соберём базу и напишем». Собранная база права на первое сообщение не даёт.
Правила первого шага в каждом канале свои, целиком они разобраны в статье про то, кто может написать клиенту первым. Если рассылка — главное требование проекта, канал выбран неверно, и выяснить это надо до сметы.
Private Reply: одна попытка на комментарий
Самый частый рабочий сценарий — автоответ в Instagram* по кодовому слову: под постом объявлено кодовое слово, человек пишет его в комментарий, бот отвечает в директ. Первое личное сообщение такому человеку уходит особым способом — как приватный ответ на конкретный комментарий, Private Reply. У этого способа три свойства, из которых растут почти все проблемы сценария.
Попытка ровно одна. Платформа разрешает один приватный ответ на комментарий. Не «один в минуту» и не «один в сутки» — один.
Отказ расходует попытку. Если запрос вернулся с ошибкой, право потрачено. Повторная отправка через минуту, через час и на следующий день не возвращает его: ошибка здесь чаще не сетевой сбой, а израсходованный слот. Поэтому строка «настроить повторные попытки» в таком сценарии не работает, хотя в других каналах она помогает.
Право привязано к конкретному комментарию. На другой комментарий оно не переносится и в запас не складывается: сколько комментариев, столько попыток, по одной на каждый. Сколько живёт само право, мы числом не называем: своего замера у нас нет, а пересказывать чужую документацию как факт сегодняшнего дня не стоит. Практический вывод от цифры не зависит: сценарий должен отвечать на комментарий сразу, а не по расписанию.
Единственная страховка — публичная подсказка под комментарием. Публичный ответ одноразовой попыткой не ограничен: он остаётся под постом, даже если директ не дошёл. Работу делает текст подсказки: «слово получено, ответ отправили в личные сообщения — если не видно, напишите нам сами». Человек заходит в переписку своим шагом, и дальше бот отвечает без лимита.
И ещё одно следствие — про содержание. Попытка одна, значит, тратить её на «ваш запрос принят, ожидайте» нельзя: в первом сообщении должно быть то, за чем человек писал слово.
Комментарии, сторис и упоминания: чем что отвечается
Три входа выглядят похоже, но отвечаются разными способами, и путать их дорого.
| Событие | Чем на него можно ответить | Что при этом ограничено |
|---|---|---|
| Комментарий под постом | публичный комментарий и один Private Reply в директ | приватный ответ — одна попытка на комментарий |
| Реакция человека на сторис | обычное сообщение в директе | диалог считается начатым человеком, отдельной попытки нет |
| Кодовое слово в личных сообщениях | обычное сообщение в директе | ограничений по попыткам нет, переписку начал человек |
| Упоминание аккаунта в сторис или комментарии | только публичный комментарий | директ по упоминанию не уходит вообще |
| Подписка на аккаунт | ничем | подписка не открывает переписку |
Строка про упоминания ломает ожидания чаще других. Человек упомянул аккаунт в сторис — поблагодарить его в личных сообщениях уже нельзя: единственный ответ, который платформа принимает по упоминанию, — публичный комментарий. Ветка «упоминание → директ» в сценарии не заработает, а выглядеть это будет как молчащий бот.
Follow to DM и другие обещания, которых мы не даём
Отдельно про просьбу «человек подписался — бот написал». Официальный API такой отправки не даёт: подписка переписку не открывает, начать её может только человек. Поэтому механику эту мы не продаём и в смету не ставим; появится законный способ — расскажем.
Рядом ходит другой довод: кнопку в чужом кабинете показывают как доказательство, что «первым писать можно». Кнопка в интерфейсе ничего не доказывает. Проверять надо доступ приложения к методу отправки и то, чем этот метод отвечает.
Что бывает с доступом: ложный отзыв, нечитаемый отказ и выключенный бот
Лимиты API — только половина причин, по которым бот в Instagram* молчит. Вторая половина — доступ. Три ловушки, на которых мы сами попадались.
Отзыв прав бывает ложным. Событие «доступ отозван» приходит и в том случае, когда человек снял одно из частичных разрешений в настройках профиля. Токен при этом живой, бот работает, переподключать ничего не надо. Отличить можно только живым запросом к каналу: признак на экране и письмо тут не доказательство.
Отказ читается по числовому подкоду, а не по тексту. На неудачную отправку платформа отвечает и текстом ошибки, и числовым подкодом. Текст у разных отказов совпадает и меняется без предупреждения, а подкод — единственное, по чему «попытка израсходована» отличается от «доступ не тот» и от временного сбоя канала. Сценарий, разбирающий отказ по тексту, почти любую ошибку считает временной и уходит крутить повторы там, где повторять нечего.
Выключенный бот не принимает уведомления. Расчёт «выключим на неделю, потом включим, и он разберёт накопившееся» не работает: накопившегося не будет. Бывает и так, что уведомление о комментарии не приходит по конкретному посту — тогда молчит не бот, а канал, и в настройках сценария искать нечего.
Все три ловушки выглядят снаружи одинаково — «бот сломался», — а в журнале либо пусто, либо отказ, который никто не прочитал. Поэтому журнал отправок в таких проектах не украшение, а условие разбора.
Когда бот в Instagram* задачу не решает
Случаи, в которых лучше сразу сказать «нет», чем продать сценарий:
- Задача — уведомления. Напоминание о записи, статус заказа, «оплата прошла» — всё это отправка первым, которой в Instagram* нет. Уведомления живут в Telegram — у тех, кто нажал «Запустить», — во ВКонтакте или в почте.
- Задача — реактивация базы. «Напишем тем, кто давно не покупал» в этом канале не делается. Написать можно только тем, кто сам вернулся в переписку.
- Обращений совсем мало. Бот не создаёт комментарии и сообщения, он их обрабатывает. Пока поток держится в единицах, переписку быстрее и дешевле вести руками.
- Аккаунт ведут без постов и сторис. Все три входа начинаются с публикации: комментарий под постом, реакция на сторис, объявленное в посте кодовое слово. Нет публикаций — нет входов.
- Никто не читает директ. Бот отвечает на первое сообщение, дальше начинается разговор. Разбирать переписку некому — получается автоответчик, говорящий сам с собой.
Другие каналы: где правила первого шага мягче
Если «писать первым» обязательно, канал выбирается под требование, а не наоборот.
| Канал | Кто делает первый шаг | Чем ограничен |
|---|---|---|
| Instagram* | человек: комментарий, реакция на сторис или кодовое слово | написать первым нельзя; первый директ после комментария — Private Reply, попытка одна |
| Telegram | человек нажимает «Запустить» | рассылки по базе телефонов не существует: по номеру бот человека не найдёт |
| ВКонтакте | сообщество может написать подписчику первым, бессрочно | окна в 24 часа у ВК нет — чужое ограничение, попавшее в разговор по инерции |
| МАКС | человек начинает диалог | нужен верифицированный профиль организации, ИП или самозанятого — резидента РФ; верификация занимает несколько рабочих дней; запросы к API требуют доверенного российского корневого сертификата |
Как бот встаёт на сообщество и почему он молчит до включения событий — в разборе Callback API ВКонтакте для бота. Что уезжает вместе со сценарием, а что придётся собирать заново, разобрано в статье про перенос бота из Telegram в МАКС.
Звёздочка рядом с названием: чей это вопрос
Звёздочка стоит у каждого упоминания Instagram* в наших материалах, а расшифровка — отдельной строкой внизу любой страницы сайта, а не внутри статьи: в тексте её однажды потеряют при правке, и заметит это не тот, кто правил.
Правовых заключений мы не даём, и это не осторожность в формулировках, а граница ответственности. Реклама в этом канале, упоминание аккаунта в своих материалах, обработка переписки как персональных данных — вопросы к юристу заказчика, и решать их надо до того, как собран сценарий, а не после.
Наша часть разговора техническая: какие входы в переписку API разрешает, каким способом уходит первое сообщение, где сценарий обрывается молча и что видно в журнале отправок, когда он обрывается.
Сколько это стоит
Разработка — от 20 000 ₽, поддержка — от 5 000 ₽ в месяц. Точная цифра называется после разбора задачи и всегда до начала работ. Что двигает смету именно в Instagram*: число правил и постов, публичные подсказки под комментариями, ветки для сторис и упоминаний, разбор переписки после первого ответа, связка с CRM. Как считается смета целиком, разобрано в статье про то, сколько стоит разработка чат-бота, а из чего складывается поддержка бота после запуска — в отдельном разборе.
Если на первой линии стоит ИИ-агент, его работа считается по расходу токенов: сколько агент потратил, столько и стоила его работа. Отдельно помогаем оплачивать зарубежные ИИ-сервисы иностранными картами.
Сроков не называем. Единственный срок, который мы подтверждаем, — верификация профиля в МАКС: несколько рабочих дней, и зависит она не от подрядчика.
Что запомнить
- Канал выбирают под первый шаг, а не наоборот. Если в задаче есть уведомления или возврат старой базы, спор про Instagram* заканчивается здесь: отправки первым в канале нет, и доплатить за неё некому.
- Единственную попытку планируют заранее. В первом директе должно стоять то, за чем человек писал кодовое слово, а не «ожидайте»; страховка — публичная подсказка под комментарием, а не повторная отправка.
- Ветку «упоминание → директ» не рисуют вообще — по упоминанию уходит только публичный комментарий, а мёртвая ветка в сценарии выглядит снаружи как сломанный бот.
- Молчащий бот — чаще доступ, чем сценарий: отказ читается по числовому подкоду, событие «доступ отозван» бывает ложным, а выключенный бот уведомлений не накапливает.
Разобрать свой случай можно в боте команды: с постами, кодовыми словами и тем, что должно происходить после первого директа.
Частые вопросы
Можно ли рассылать сообщения в Instagram*?
Нет. Instagram* не даёт написать человеку, который сам не начал переписку: холодный директ запрещён правилами и технически невозможен — официальный API такой отправки не предусматривает. Законных входов три: ответ на комментарий под постом, реакция на сторис и кодовое слово в личных сообщениях. Рассылку по базе подписчиков в Instagram* продать нельзя, и обещание такой рассылки — повод насторожиться.
Какие лимиты у Instagram* API для ботов?
Главный лимит Instagram* API — право начать переписку принадлежит человеку, а не аккаунту. Первое сообщение возможно только как ответ на действие человека: комментарий, реакцию на сторис или кодовое слово в директе. Первый директ после комментария уходит как Private Reply, и попытка на него одна. Упоминание аккаунта отвечается только публичным комментарием, в директ ответ по нему не уходит.
Почему бот в Instagram* не отправил директ после комментария?
Чаще всего потому, что единственная попытка приватного ответа на этот комментарий уже израсходована: приватный ответ на комментарий платформа разрешает один раз, и отказ его расходует. Повторная отправка не помогает. Вторая частая причина — уведомление о комментарии не пришло по конкретному посту, тогда сценарий не запускался вообще. Страховка одна: публичная подсказка под комментарием.
Что такое Private Reply в Instagram*?
Private Reply — приватный ответ на конкретный комментарий, тот способ, которым в Instagram* уходит первое личное сообщение комментатору. Попытка ровно одна: отказ платформы расходует её окончательно, повтор через час или на следующий день право не возвращает. Публичные ответы под постом таким лимитом не ограничены, поэтому подсказка в комментариях остаётся единственным способом дотянуться до человека.
Можно ли вести бота в Instagram* при ограничениях в России?
Правовых заключений мы не даём: законность рекламы, упоминаний аккаунта и обработки переписки — вопрос к юристу заказчика, и задавать его нужно до сборки сценария. Технически канал работает: комментарий, реакция на сторис и кодовое слово запускают ответ так же, как и раньше. Первым написать по-прежнему нельзя — это ограничение API, а не следствие ограничений в России.
Можно ли ответить ботом на упоминание в сторис?
Да, но только публичным комментарием. Ответ на упоминание аккаунта в Instagram* уходит комментарием, в личные сообщения по упоминанию бот написать не может. Реакция человека на сторис — другое событие: она считается началом диалога, и на неё бот отвечает обычным сообщением в директе, без лимита на одну попытку.
Сколько стоит бот для Instagram*-директа?
Разработка — от 20 000 ₽, поддержка — от 5 000 ₽ в месяц. Точная цифра называется после разбора задачи и до начала работ. Смету двигают число правил и постов, публичные подсказки, ветки для сторис и упоминаний, разбор переписки после первого ответа и связка с CRM. Если на первой линии работает ИИ-агент, его работа считается по расходу токенов.
Чем Telegram и ВКонтакте отличаются от Instagram* по первому сообщению?
Во ВКонтакте сообщество может написать подписчику первым и бессрочно: окна в 24 часа у ВК нет. В Telegram бот пишет только тому, кто нажал «Запустить», а рассылки по базе телефонов не существует — по номеру бот человека не найдёт. В Instagram* написать первым нельзя вообще. Поэтому уведомления и напоминания живут в Telegram или ВКонтакте, а не в Instagram*.
Нужен бот, который делает это у вас?