Вы решили автоматизировать публикации в Instagram: подключаете сервис или просите разработчика написать интеграцию. И тут начинаются вопросы, на которые лендинги отвечают одинаково бодрым «поддерживаем всё»: а Stories можно? А музыку в Reels? А PNG с прозрачным фоном? А поправить подпись после публикации?

Ответы есть, но они разбросаны по англоязычной документации Meta и меняются раз в несколько месяцев. Ниже — сводка на 2026 год: что Instagram Content Publishing API реально умеет, точные требования к файлам, как устроена публикация «под капотом», чего нет в принципе и как читать ошибки. Разницу между официальным API и «серыми» сервисами с паролем мы уже разбирали в базовой статье про автопостинг в Instagram — здесь уровень глубже.

Кому API доступен и что нужно подключить

Публиковать через API могут только профессиональные аккаунты — Business или Creator. Личный профиль не подключить никак, это ограничение Meta, а не конкретного сервиса.

Способов авторизации два:

  • Instagram Login (появился в 2024 году). Аккаунт подключается напрямую, страница Facebook не нужна. Нужные права: instagram_business_basic и instagram_business_content_publish.
  • Facebook Login. Классический путь через привязку Instagram к странице Facebook. Права: instagram_basic, instagram_content_publish, плюс pages_show_list и pages_read_engagement.

Для собственной интеграции нужно приложение в Meta for Developers. Пока оно в режиме разработки, публиковать могут только аккаунты с ролью в приложении — для своего магазина или школы этого достаточно, App Review не нужен. Сервису для клиентов проверку Meta придётся пройти: это недели переписки и запись скринкаста.

Токены доступа живут 60 дней, после чего их нужно обновлять. Нормальный сервис делает это сам; если самописная интеграция «внезапно перестала постить» через два месяца — почти наверняка истёк токен.

Как устроена публикация: контейнер, потом публикация

Через API пост не «отправляется» одним запросом. Всегда два шага:

  1. Создание контейнера. Запрос POST /{ig-user-id}/media с ссылкой на файл, подписью и параметрами. В ответ приходит ID контейнера.
  2. Публикация. Запрос POST /{ig-user-id}/media_publish с этим ID. Только после него пост появляется в ленте.

Для фото шаги идут подряд, весь процесс укладывается в несколько секунд. Для видео и Reels между ними есть обработка: контейнер получает статус IN_PROGRESS, и публиковать его можно только после FINISHED. Обычно это 30–120 секунд, у длинных Reels дольше. Статусы ERROR и EXPIRED означают, что публиковать нечего: контейнер живёт 24 часа, потом его нужно создавать заново.

Главное практическое следствие: файл нельзя загрузить напрямую. API принимает только публичную ссылку — картинка или видео должны лежать на сервере, куда Instagram придёт по прямому URL. Ссылка «поделиться» из Google Диска не подходит. Исключение одно: для Reels есть resumable upload, когда файл передаётся частями. Именно поэтому любой сервис автопостинга сначала копирует ваши медиа к себе в хранилище и уже оттуда отдаёт Instagram. Спросите, где лежат файлы и сколько хранятся — это нормальный вопрос.

Что можно публиковать и точные требования к файлам

ФорматФайлТребования
Фото в лентутолько JPEGдо 8 МБ, соотношение сторон от 4:5 до 1.91:1, ширина 320–1440 px, цветовое пространство sRGB
ReelsMP4 или MOVкодек H.264 или HEVC, звук AAC, 23–60 fps, от 3 секунд до 15 минут, до 1 ГБ, рекомендуемое 9:16
Карусель2–10 элементовфото и видео можно смешивать; видео в карусели — до 60 секунд
Storiesфото или видеовидео до 60 секунд, вертикаль 9:16

Два момента, о которые спотыкаются чаще всего. Первый: PNG и HEIC не принимаются — фото с айфона в формате HEIC нужно конвертировать, и это должен делать либо сервис, либо вы. Второй: квадрат 1:1 проходит, а вот вертикальное 2:3 (стандартная пропорция фотокамеры) — нет, его придётся кадрировать до 4:5.

Подпись: до 2200 знаков, до 30 хэштегов, до 20 упоминаний через @. Кроме подписи через API можно передать:

  • alt-текст к фото (поле alt_text) — полезно и для доступности, и для поиска;
  • геометку через location_id (это ID страницы места в Facebook, не координаты);
  • отметки людей на фото с координатами x/y (user_tags);
  • соавторов поста (collaborators, до 3 аккаунтов) — приглашение уйдёт им в приложение, и пост появится в их профиле после подтверждения;
  • обложку для Reels — либо своей картинкой (cover_url), либо кадром на нужной секунде (thumb_offset), и флаг share_to_feed, показывать ли ролик в основной ленте.

Если сервис на лендинге пишет «поддерживаем Reels», но обложку выбрать нельзя — это первое, что стоит проверить на пробном периоде. Обложка в профиле решает, кликнут ли по ролику через месяц.

Лимиты: 50 постов и 200 вызовов

50 публикаций за скользящие 24 часа на аккаунт. Именно скользящие: если вы опубликовали 50 постов между 10:00 и 23:00, лимит не «обнулится в полночь», а будет освобождаться по одному по мере того, как каждому посту исполнится 24 часа. Карусель — одна публикация. Stories считаются в тот же лимит. Проверить остаток можно запросом GET /{ig-user-id}/content_publishing_limit — он вернёт quota_usage.

Для одного аккаунта 50 в сутки — потолок, до которого дотягиваются разве что новостные паблики.

Лимит вызовов — около 200 запросов в час на каждого подключённого пользователя. Для публикаций это почти неважно: один пост стоит 2–3 вызова (создать контейнер, проверить статус, опубликовать). А вот для аналитики важно: сервис, который каждые пять минут обновляет статистику по 30 постам, упрётся в этот лимит раньше, чем в лимит публикаций.

Чего через API нет, и никакой сервис это не обойдёт

Честный список на 2026 год. Если сервис обещает что-то из этого «через официальный API» — либо он делает это руками модератора, либо не через официальный API.

  • Интерактив в Stories. Опросы, тесты, слайдеры, стикер со ссылкой, стикер с музыкой, упоминания стикером — всего этого нет. Через API Story — это просто картинка или видео. Текст «Свайпай вверх» придётся впечатать в макет.
  • Музыка из библиотеки Instagram в Reels. Звук должен быть уже в файле, а значит — с правами на использование.
  • Фильтры и эффекты. Обрабатывайте видео до загрузки.
  • Редактирование и удаление. Опубликованный через API пост нельзя ни исправить, ни удалить через API — только руками в приложении. Опечатку в подписи проверяйте до публикации, а не после.
  • Личные аккаунты. См. выше.
  • Само расписание. API публикует «сейчас». Отложенная публикация — это очередь на стороне сервиса. Если сервер сервиса лёг в 19:00, пост в 19:00 не выйдет. Спросите, как устроены повторные попытки и придёт ли вам уведомление.
  • Продвижение поста. Реклама — это отдельный Marketing API с другими правами и проверкой.

Что есть, но часто забывают: ответы на комментарии и их скрытие, чтение упоминаний и статистики по постам и аккаунту. На API строится не только публикация, но и модерация с аналитикой — как у сервисов из обзора автоматизации SMM.

Типичные ошибки и что они значат

Сообщения Graph API лаконичны, поэтому вот перевод самых частых:

  • «Media type is not supported» — вы отдали PNG, HEIC, WebP или GIF. Конвертируйте в JPEG (фото) или MP4 (видео).
  • «The aspect ratio is not supported» — пропорции вне диапазона 4:5–1.91:1. Кадрируйте.
  • «Media URL is not accessible» — ссылка не публичная или редиректит. Откройте её в режиме инкогнито: если картинка не грузится сразу, Instagram её тоже не увидит.
  • Статус EXPIRED — между созданием контейнера и публикацией прошло больше 24 часов. Создайте заново.
  • Статус ERROR у видео — чаще всего кодек (VP9, WebM), частота кадров выше 60 или битрейт выше 25 Мбит/с. Перекодируйте в H.264, 30 fps.
  • «Application request limit reached» — упёрлись в 50 постов за сутки или в лимит вызовов. Смотрите content_publishing_limit и ждите.
  • «Invalid OAuth access token» — токен истёк или доступ отозван. Переподключите аккаунт.

Пример из практики: цветочный магазин в Ташкенте три недели «терял» каждый второй пост. Причина — фото загружали с айфона в HEIC, а сервис молча ронял их вместо конвертации. Смена сервиса решила проблему за вечер: не потому, что второй сервис «лучше», а потому, что он конвертирует и показывает ошибку словами.

Чек-лист при выборе сервиса автопостинга

Семь вопросов, которые стоит задать до оплаты или проверить на бесплатном тарифе:

  1. Подключение через OAuth, без пароля от Instagram? Если просят пароль — это не API.
  2. Конвертирует ли сервис HEIC/PNG в JPEG и кадрирует ли под 4:5 сам?
  3. Можно ли выбрать обложку Reels и отключить показ в ленте?
  4. Поддерживаются ли карусели с видео и Stories?
  5. Есть ли alt-текст, геометка и соавторы?
  6. Что происходит, если публикация упала: повтор, уведомление, куда оно приходит?
  7. Видно ли остаток лимита 50 постов и предупреждает ли сервис заранее?

Как не получить блокировку даже на официальном API — какие бывают чекпойнты, что Instagram считает подозрительным и как «прогревать» новый аккаунт — отдельная статья: автопостинг в Instagram без бана.

Repost21 работает с Instagram только через официальный Graph API: фото, видео, Reels с обложкой, карусели и Stories. Медиа конвертируются и хостятся на стороне сервиса, при ошибке публикации приходит уведомление в Telegram-бот, а ассистент Луна помогает с подписью до того, как её нельзя будет исправить. Что именно поддерживается для каждой площадки — в документации, а попробовать можно бесплатно.