API do Instagram em 2026: a Graph API depois do Basic Display, preço, limites e exemplo em Python
Sim, o Instagram tem uma API, mas só para contas profissionais: a Basic Display API, que lia contas pessoais, parou de funcionar em 4 de dezembro de 2024. O que resta é a Instagram Graph API, via Instagram Login ou Facebook Login. A Meta não informa nenhuma taxa. Os limites: 100 posts publicados e 4.800 chamadas por impressão, ambos a cada 24 horas. Verificado em 24 de setembro de 2026.
O Instagram tem uma API?
Até 2024 havia duas. A Basic Display API, lançada em 2019, foi "projetada para dar suporte a casos de uso de consumidores, para pessoas com contas pessoais", nas palavras da própria Meta: ela lia informações de perfil e de mídia. A Graph API atendia as contas comerciais.
Em 4 de setembro de 2024, a Meta anunciou o fim da Basic Display: a partir de 4 de dezembro de 2024, "todas as requisições à Instagram Basic Display API vão falhar". O mesmo post indicou aos desenvolvedores duas configurações, a recém-lançada API do Instagram com Instagram Login e a API do Instagram com Facebook Login.
As duas são o que hoje se chama de Instagram Graph API, e ambas exigem uma conta profissional, comercial ou de criador. Não existe mais API oficial para contas pessoais.
Instagram Graph API: Instagram Login ou Facebook Login
A escolha do login define o que você pode construir. Segundo a visão geral da Instagram Platform da Meta, lida em 24 de setembro de 2026:
| Instagram Login | Login do Facebook | |
|---|---|---|
| Hospedagem | graph.instagram.com |
graph.facebook.com |
| Exige uma Página do Facebook | Não | Sim, vinculado à conta |
| Token | Token de usuário do Instagram | Token de usuário ou de Página do Facebook |
| Publicação de conteúdo | Sim | Sim |
| Moderação de comentários | Sim | Sim |
| As mensagens | Sim | Pela Messenger Platform |
| Insights e menções | Sim | Sim |
| Busca por hashtag | Não | Sim |
| Marcação de produtos | Não | Sim |
| Anúncios de parceria | Não | Sim |
| Permissões de publicação | instagram_business_basic, instagram_business_content_publish |
instagram_basic, instagram_content_publish, pages_read_engagement |
Escolha o Instagram Login quando você trabalha com o conteúdo da própria conta: publicação, comentários, DMs, insights. Ele não precisa de uma Página do Facebook, e é a configuração que o PlugKit usa. A Meta resume o limite dele em uma linha: "Esta configuração de API não pode acessar anúncios nem marcações." Escolha o Facebook Login quando precisar de busca por hashtag, marcação de produtos, anúncios de parceria ou "metadados e métricas básicos sobre outras contas comerciais e de criador do Instagram".
Níveis de acesso, App Review e tokens
Seu app da Meta precisa ser do tipo Business. Depois, há dois níveis de acesso:
- O Acesso Padrão, o nível padrão, "destina-se a apps que só serão usados por pessoas com funções neles, durante o desenvolvimento do app ou para testar seu app." Suas próprias contas se encaixam aqui. Sem App Review.
- O Acesso Avançado é obrigatório "se o seu app atende contas profissionais do Instagram que você não possui nem gerencia". Ele exige App Review e verificação da empresa.
Um token de curta duração vale por uma hora; um de longa duração vale por 60 dias e pode ser renovado antes de expirar. Para um primeiro teste, o App Dashboard gera um para você: Instagram, API setup with Instagram business login e, depois, Generate token ao lado da sua conta.
Há uma armadilha que passa despercebida com facilidade. GET /me?fields=user_id,username retorna dois IDs. O id tem escopo do app; o user_id é o ID da conta profissional do Instagram, o que todo endpoint de publicação espera.
Preço da API do Instagram
A Meta não publica nenhum preço para a API do Instagram. Nenhuma das páginas que li em 24 de setembro de 2026, a visão geral, a de publicação de conteúdo, a de limitação de taxa e a de insights, menciona uma taxa. Isso não vale para todas as plataformas: o X cobra por chamada, e o PlugKit repassa esse custo sem margem, US$ 0,005 para ler um post e US$ 0,015 para publicar um, segundo a documentação de cobrança.
No Instagram, você paga com trabalho:
| Custo | Construa sobre a Graph API | Passar pelo PlugKit |
|---|---|---|
| Taxa por chamada | Nenhuma listada pela Meta | Nenhuma para o Instagram; o X é a única plataforma cobrada por uso |
| Assinatura | US$ 0 | US$ 29 por mês para 5 contas, US$ 97 para 30 |
| Contas de outras pessoas | App Review e verificação da empresa | A conexão é feita pelo link OAuth do PlugKit |
| Renovação do token | Seu código, antes do dia 60 | O PlugKit guarda um token de longa duração |
| Fila, novas tentativas, webhooks | Seu código | Incluída |
Limites de taxa da API do Instagram
| Limite | Valor | Fonte da Meta |
|---|---|---|
| Chamadas à plataforma, exceto mensagens | 4.800 × impressões por 24 h | Limites de taxa |
| Posts publicados via API | 100 a cada 24 h corridas no guia, quota_total 50 na página de referência |
Publicação de conteúdo |
| API Conversations | 2 chamadas por segundo por conta | Limitação de taxa |
| Send API | 100 chamadas por segundo para texto, links, reações e figurinhas; 10 para áudio ou vídeo | Limitação de taxa |
| Respostas privadas | 750 chamadas por hora em comentários de posts e reels; 100 por segundo em comentários de Lives | Limitação de taxa |
| Contêiner não publicado | Expira após 24 h | Publicação de conteúdo |
Impressões, aqui, significam "o número de vezes que qualquer conteúdo da conta profissional do Instagram do usuário do app entrou na tela de uma pessoa nas últimas 24 horas". Uma conta nova com pouco alcance recebe um orçamento de chamadas pequeno. Toda resposta traz um cabeçalho X-Business-Use-Case-Usage: leia esse cabeçalho em vez de tentar adivinhar.
Os dois limites de posts se contradizem. Antes de um lote grande, chame GET /<IG_ID>/content_publishing_limit?fields=quota_usage,config e confie no que ele retorna para a sua conta. As outras redes estão na minha tabela de limites de taxa.
Exemplo em Python da API do Instagram
Este script publica uma foto com o Instagram Login. Você precisa de Python 3, requests, um token de longa duração em IG_TOKEN e um JPEG em uma URL pública, já que a Meta busca o arquivo por conta própria.
import os
import time
import requests
GRAPH = "https://graph.instagram.com/v25.0"
HEADERS = {"Authorization": f"Bearer {os.environ['IG_TOKEN']}"}
def call(method, path, params=None, body=None):
r = requests.request(method, f"{GRAPH}/{path}", headers=HEADERS,
params=params, json=body, timeout=30)
data = r.json()
if "error" in data:
raise RuntimeError(f"{r.status_code}: {data['error']['message']}")
return data
# The professional account ID is user_id, not id
ig_id = call("GET", "me", {"fields": "user_id,username"})["user_id"]
# 1. Container: a public JPEG plus the caption
container = call("POST", f"{ig_id}/media", body={
"image_url": "https://example.com/launch.jpg",
"caption": "Launch day. Link in bio.",
})["id"]
# 2. Wait for FINISHED: Meta suggests once a minute, 5 minutes max
for _ in range(5):
status = call("GET", container, {"fields": "status_code"})["status_code"]
if status == "FINISHED":
break
if status in ("ERROR", "EXPIRED"):
raise RuntimeError(f"container {container}: {status}")
time.sleep(60)
else:
raise RuntimeError("container not ready after 5 minutes")
# 3. Publish
media_id = call("POST", f"{ig_id}/media_publish",
body={"creation_id": container})["id"]
print("published", media_id)
# 4. What is left of the 24-hour quota
print(call("GET", f"{ig_id}/content_publishing_limit",
{"fields": "quota_usage,config"})["data"][0])
Executado em 24 de setembro de 2026 com um token propositalmente inválido, o script para já na primeira chamada:
RuntimeError: 401: Invalid OAuth access token - Cannot parse access token
O corpo bruto por trás dele traz "type":"OAuthException","code":190. Com um token válido em uma conta profissional, o script imprime o novo ID de mídia e, em seguida, o uso da sua cota.
API de Reels do Instagram
Um reel usa as mesmas três chamadas, com um contêiner diferente:
container = call("POST", f"{ig_id}/media", body={
"media_type": "REELS",
"video_url": "https://example.com/clip.mp4",
"caption": "New reel",
"share_to_feed": True,
})["id"]
Um vídeo pode demorar mais para ser processado do que uma foto, e é para isso que serve o loop de polling de 5 minutos. O contêiner também aceita cover_url, thumb_offset, audio_name, collaborators e trial_params, além de upload_type para uploads retomáveis, que o guia da Meta envia para outro host, rupload.facebook.com. As especificações, segundo a referência de mídia da Meta:
| Reel | Vídeo de story | Imagem do feed | |
|---|---|---|---|
| Formato | MP4 ou MOV | MP4 ou MOV | Somente JPEG |
| Duração | 3 s a 15 min | Até 60 s | |
| Tamanho máximo do arquivo | 300 MB | 100 MB | 8 MB |
| Codecs | H.264 ou HEVC, AAC até 48 kHz | Mesma família dos reels | |
| Taxa de quadros | 23 a 60 fps | ||
| Proporção | 0,01:1 a 10:1, 9:16 recomendado | 4:5 a 1,91:1 |
Os stories usam media_type=STORIES. Os carrosséis aceitam até 10 imagens ou vídeos como contêineres filhos e, depois, um contêiner CAROUSEL que você publica.
Construa sobre a Graph API ou conecte-se a ela
Construa sobre ela quando você tiver um único app, suas próprias contas e uma necessidade como busca por hashtag ou dados de outras empresas, que só o login do Facebook cobre. O Python acima já é a maior parte da metade de publicação.
Use o PlugKit quando o Instagram for uma rede entre várias, quando um agente fizer o trabalho ou quando você preferir não cuidar de renovação de token, filas e App Review. O PlugKit roda sobre o Instagram Login: a documentação dele cobre a publicação de imagens, vídeos, reels com modo de teste e stories, DMs, comentários e insights, ao lado de LinkedIn, X, TikTok, YouTube, Facebook, WhatsApp e Telegram. O agendamento está em como automatizar posts no Instagram. Para agentes, o servidor MCP expõe tudo isso em 103 ferramentas:
claude mcp add -t http plugkit https://api.plugkit.co/mcp
Custa US$ 29 por mês para 5 contas conectadas, com cancelamento a qualquer momento e 7 dias de teste grátis. Onde ele não resolve: a documentação dele não lista busca por hashtag nem dados de outras contas, então uma ferramenta de monitoramento deve ser construída sobre o Facebook Login. Saiba mais na página Servidor MCP do Instagram, no meu guia de APIs de redes sociais e no hub de APIs.
Perguntas frequentes
A API do Instagram é gratuita?
A Meta não publica nenhum preço para ela: nenhuma das páginas da Instagram Platform que li em 24 de setembro de 2026 menciona uma taxa. Você paga de outras formas: um orçamento de chamadas atrelado às suas impressões, App Review e Business Verification se você atende contas de outras pessoas, e o código que você precisa manter.
Posso usar a API do Instagram com uma conta pessoal?
Não. As duas configurações atuais exigem uma conta comercial ou de criador, e a Basic Display API, a que foi feita para contas pessoais, parou de responder em 4 de dezembro de 2024. Mudar para uma conta profissional nas configurações do app é o único caminho.
O que substituiu a Instagram Basic Display API?
A API do Instagram com Instagram Login, lançada em 2024 e utilizável sem uma Página do Facebook, e a API do Instagram com Facebook Login. As duas atendem apenas contas profissionais.
Quantos posts posso publicar por dia com a API do Instagram?
O guia de publicação da Meta fala em 100 posts publicados via API a cada 24 horas corridas, e um carrossel conta como um só. A página de referência do endpoint content_publishing_limit ainda diz 50. Consulte esse endpoint para a sua conta antes de planejar o volume.
Preciso de App Review para a Instagram Graph API?
Não para as suas próprias contas: o Standard Access cobre apps usados por pessoas que têm uma função neles. O Advanced Access, que exige App Review e Business Verification, passa a ser obrigatório quando o seu app atende contas profissionais que você não possui nem gerencia.
Um plug para cada plataforma que seu agente usa
$29 por mês para 5 contas conectadas, cancele quando quiser. Todos os recursos em todos os planos.
Pegue sua chave de API →