Instagram Graph API: руководство для разработчиков
Instagram API сегодня — это Instagram Platform от Meta: один Graph API и два варианта подключения. Вариант с Instagram Login работает с профессиональным аккаунтом без страницы Facebook и обращается к graph.instagram.com; вариант с Facebook Login требует привязанной страницы и работает через graph.facebook.com. Личные аккаунты не поддерживаются, а Basic Display API отключён 4 декабря 2024 года.
Обновлено:
Что такое Instagram API в 2026 году?
Instagram API — это Instagram Platform от Meta, набор эндпоинтов Graph API для профессиональных аккаунтов. Вы выбираете один из двух вариантов: Instagram API with Instagram Login (страница Facebook не нужна, graph.instagram.com) или Instagram API with Facebook Login (аккаунт привязан к странице, graph.facebook.com). В обоих есть публикация, комментарии, статистика и упоминания; сообщения и поиск отличаются.
Вариант с Instagram Login Meta запустила 23 июля 2024 года. До этого любая интеграция шла через страницу Facebook — поэтому старые туториалы до сих пор начинаются с токена страницы.
Instagram Basic Display API, через который показывали фото личного аккаунта на сайте, признан устаревшим 4 декабря 2024 года: любой запрос к нему теперь возвращает ошибку. Для встраивания публичных постов есть oEmbed API — с 15 мая 2026 года его можно вызывать без токена доступа.
27 января 2025 года старые значения scope для Instagram Login (business_basic, business_content_publish, business_manage_comments, business_manage_messages) перестали работать, их заменили имена instagram_business_*. Если окно входа внезапно отклоняет разрешения — проверьте это первым делом.
Instagram Login или Facebook Login: что выбрать?
Оба варианта дают доступ к одним и тем же данным Instagram, но различаются окном входа, хостом, типом токена и частью функций.
| Instagram Login | Facebook Login | |
|---|---|---|
| Как входит пользователь | Логин и пароль Instagram | Логин и пароль Facebook |
| Страница Facebook | Не нужна | Нужна, привязанная к аккаунту Instagram |
| Хост API | graph.instagram.com | graph.facebook.com |
| Токен | Instagram User access token | Facebook User или Page access token |
| Имена разрешений | instagram_business_* | instagram_* и pages_* |
| Публикация, комментарии, статистика, упоминания | Есть | Есть |
| Сообщения Direct | Есть | Через Messenger Platform |
| Поиск по хештегам, business discovery | Нет | Есть |
| Отметки товаров, partnership ads | Нет | Есть |
Простое правило: если не нужны поиск по хештегам, данные чужих аккаунтов и рекламные функции, Instagram Login проще — вашим пользователям не нужна страница Facebook.
Какие аккаунты Instagram работают с API?
Только профессиональные — «Бизнес» или «Автор» (Creator). Личные аккаунты недоступны ни в одном из вариантов. Первый вопрос от пользователей обычно решается сменой типа аккаунта в настройках приложения Instagram.
В варианте с Facebook Login профессиональный аккаунт должен быть привязан к странице Facebook, а входящий человек — иметь задачу (task) на этой странице. У некоторых функций есть дополнительные условия: например, в документации Meta по Facebook Login публикация историй доступна только бизнес-аккаунтам.
API всегда действует от имени аккаунта, который авторизовал ваше приложение. Это не инструмент для чтения произвольных профилей: данные о чужих аккаунтах дают только поиск по хештегам и business discovery — оба только через Facebook Login и после App Review.
Что можно сделать через Instagram API?
Публикация контента
Фото, Reels, карусели до 10 элементов и истории через схему «контейнер → публикация». Лимит — 100 публикаций через API за скользящие 24 часа.
Модерация комментариев
Чтение, ответы, скрытие, удаление комментариев и отключение комментариев под постом. Private reply — одно личное сообщение автору комментария в течение 7 дней.
Сообщения Direct
Входящие приходят вебхуком, ответ отправляется в пределах 24-часового окна; диалоги и историю сообщений можно читать через API.
Статистика
Метрики аккаунта и публикаций. Часть метрик недоступна при числе подписчиков меньше 100; метрики аккаунта хранятся до 90 дней.
Упоминания
Поиск публикаций, где аккаунт отметили через @, и уведомления через вебхук mentions.
Хештеги и business discovery
Только Facebook Login. До 30 уникальных хештегов на аккаунт за скользящие 7 дней; нужна функция Instagram Public Content Access.
Разрешения Instagram API по функциям
Запрашивайте только нужное — каждое лишнее разрешение добавляет пункт в App Review.
| Функция | Instagram Login | Facebook Login |
|---|---|---|
| Профиль и медиа | instagram_business_basic | instagram_basic, pages_show_list |
| Публикация | instagram_business_basic, instagram_business_content_publish | instagram_basic, instagram_content_publish, pages_read_engagement |
| Комментарии и private reply | instagram_business_basic, instagram_business_manage_comments | instagram_basic, instagram_manage_comments, pages_read_engagement |
| Статистика | instagram_business_basic, instagram_business_manage_insights | instagram_basic, instagram_manage_insights, pages_read_engagement |
| Сообщения | instagram_business_basic, instagram_business_manage_messages | instagram_basic, instagram_manage_messages, pages_manage_metadata |
| Поиск по хештегам | Недоступен | instagram_basic + Instagram Public Content Access |
Если в Facebook Login роль человека на странице выдана через Business Manager, Meta дополнительно указывает ads_management и ads_read для публикации, комментариев и статистики.
Standard Access, Advanced Access и App Review
Любое приложение типа Business стартует со Standard Access ко всем своим разрешениям. Этого хватает для разработки и для приложений, которые работают только с вашими собственными или управляемыми аккаунтами, — пользователи должны иметь роль в приложении.
Advanced Access нужен, как только приложение обслуживает чужие профессиональные аккаунты, то есть для любого SaaS-продукта. Он выдаётся по каждому разрешению через App Review, а проверка компании (Business Verification) обязательна.
Функции (features) проверяются так же. Human Agent (ответ человеком в Direct до 7 дней) и Instagram Public Content Access (поиск по хештегам) — это функции, а не разрешения, и обе требуют одобрения.
Две практические ловушки: чтобы получать вебхуки, приложение должно быть в режиме Live, а вебхуки comments и live_comments приходят только при Advanced Access.
Лимиты Instagram API: сводная таблица
В Instagram действует несколько независимых лимитов — упёршись в один, вы не блокируете остальные.
| Лимит | Значение | Где применяется |
|---|---|---|
| Business Use Case (BUC) | 4800 × impressions за 24 часа | Большинство эндпоинтов Instagram Platform, на аккаунт |
| Platform Rate Limiting | Отдельная формула | Поиск по хештегам и business discovery |
| Публикация | 100 постов через API за скользящие 24 часа | На аккаунт; карусель считается одним постом |
| Медиаконтейнеры | 400 за скользящие 24 часа | На аккаунт |
| Поиск по хештегам | 30 уникальных хештегов за скользящие 7 дней | На аккаунт |
| Conversations API | 2 вызова в секунду | На аккаунт |
| Send API | Текст, ссылки, реакции, стикеры — 100 в секунду; аудио и видео — 10 в секунду | На аккаунт |
| Private replies | Посты и Reels — 750 в час; Live — 100 в секунду | На аккаунт |
Примечания и ограничения
Impressions — сколько раз контент аккаунта появлялся на чьём-либо экране за последние 24 часа. Расход BUC возвращается в заголовке X-Business-Use-Case-Usage; при превышении BUC-лимита Instagram отдаёт код ошибки 80002.
Как подключить Instagram API: пошагово
Профессиональный аккаунт
Переключите аккаунт в настройках Instagram на тип «Бизнес» или «Автор». Для Facebook Login дополнительно привяжите его к странице Facebook.
Приложение Meta
Создайте на developers.facebook.com приложение типа Business и добавьте продукт Instagram. Для Instagram Login выберите раздел «API setup with Instagram business login».
Redirect URI и разрешения
Зарегистрируйте redirect URI и запрашивайте только нужные разрешения. redirect_uri в ссылке входа и при обмене кода должен совпадать символ в символ.
Получение токена
Обменяйте код на токен на сервере. Для быстрых тестов в настройках Instagram Login App Dashboard умеет сгенерировать 60-дневный токен для аккаунтов, добавленных в приложение.
Первый запрос
Instagram Login: GET graph.instagram.com/me?fields=user_id,username. Facebook Login: GET /me/accounts, затем GET /{page-id}?fields=instagram_business_account.
Перед запуском
Подпишитесь на вебхуки, переведите приложение в Live и пройдите App Review и Business Verification для работы с чужими аккаунтами.
Как два варианта выглядят в Socialift SDK
В Python SDK Socialift оба варианта работают через один клиент Instagram — отличаются только конструктор и токен.
import asyncio, os
from socialift import Facebook, Instagram
async def main():
# 1) Instagram Login: без страницы, graph.instagram.com, Instagram User token
async with Instagram.from_env() as ig:
me = await ig.profile(os.environ["IG_USER_TOKEN"])
print(me.username, me.followers_count)
# 2) Facebook Login: токен страницы + ID аккаунта Instagram со страницы
async with Facebook.from_env() as fb, Instagram.via_facebook(
app_secret=os.environ["FACEBOOK_APP_SECRET"]
) as ig_fb:
for page in await fb.pages(os.environ["FB_USER_TOKEN"]):
if page.instagram_id:
posts = await ig_fb.media(page.access_token, ig_user_id=page.instagram_id, limit=5)
print(page.instagram_username, len(posts))
asyncio.run(main())Instagram.from_env() читает INSTAGRAM_APP_ID и INSTAGRAM_APP_SECRET, работает с graph.instagram.com и ждёт Instagram User token.
Instagram.via_facebook(app_secret=...) работает с graph.facebook.com и ждёт токен страницы. Здесь ig_user_id обязателен: на graph.facebook.com me означает страницу, а не аккаунт Instagram.
SDK добавляет appsecret_proof к каждому запросу, выбрасывает RateLimitError (с retry_after) на кодах Meta 4, 17, 32, 613 и ничего не хранит — токены живут в вашей базе. Проверить методы на реальном аккаунте можно в Playground личного кабинета.
Частые вопросы
Работает ли Instagram API с личным аккаунтом?
Нет. Оба варианта Instagram API работают только с профессиональными аккаунтами («Бизнес» или «Автор»). Тип аккаунта меняется в настройках приложения Instagram; для Facebook Login аккаунт также нужно привязать к странице Facebook.
Instagram Basic Display API ещё работает?
Нет. Meta признала его устаревшим 4 декабря 2024 года, и сейчас любой запрос возвращает ошибку. Для профессиональных аккаунтов используйте Instagram API with Instagram Login, для встраивания публичных постов — oEmbed.
Нужна ли страница Facebook для Instagram API?
Для варианта с Instagram Login, появившегося в июле 2024 года, — нет. Страница нужна только для Facebook Login; поиск по хештегам, business discovery, отметки товаров и partnership ads тоже доступны только там.
Обязателен ли App Review для Instagram API?
Только для Advanced Access — когда приложение обслуживает аккаунты, которыми вы не владеете. App Review проходит по каждому разрешению или функции и требует проверки компании. Тесты на своих аккаунтах работают на Standard Access.
Какие лимиты у Instagram API?
Большинство эндпоинтов подчиняются лимиту Business Use Case: 4800 × impressions аккаунта за 24 часа. Сверху действуют лимиты функций: 100 публикаций через API в сутки и 30 уникальных хештегов за 7 дней. Для сообщений — посекундные лимиты.