Guia · APIs de redes sociais para desenvolvedores

API do Instagram em 2026: a Graph API depois do Basic Display, preço, limites e exemplo em Python

Por Antoine Blanco··8 min de leitura

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:

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.

AB
Antoine BlancoFundador da PlugKit. Gerencia as próprias contas de Instagram, YouTube e X pela API e pelo servidor MCP descritos aqui.

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 →
Português ▾