Como fazer / técnico

Limite de requisições da API do Instagram

Como funciona o rate limit da API do Instagram e como evitar bater nele em produção.

A API do Instagram aplica dois limites diferentes, e confundir os dois é a causa mais comum de um cliente reportar "a integração parou de funcionar" quando na verdade o problema é volume: um limite de chamadas de API e um limite separado de posts efetivamente publicados.

01

O limite de chamadas de API

A Meta aplica o que chama de limite Business Use Case: por conta do Instagram conectada ao seu app, você tem direito a um número de chamadas dentro de uma janela rolante de uma hora — não um reset fixo à meia-noite. Esse número escala conforme a base de contas conectadas ao seu app: quanto mais contas o seu app atende, maior a capacidade total, mas o limite por conta continua o mesmo.

Como esse valor por conta e a forma de calcular a capacidade agregada do app variam conforme a documentação da Meta é atualizada, trate o número exato como algo a confirmar direto na página oficial de rate limiting da Graph API em vez de fixar uma constante no seu código a partir de um post de terceiros.

02

O limite de posts publicados

Separado do limite de chamadas, existe um teto para quantos posts uma conta pode efetivamente publicar via API dentro de uma janela móvel de 24 horas — não um dia de calendário. Segundo a documentação atual da Meta sobre publicação de conteúdo no Instagram, esse teto é de 100 posts publicados via API em uma janela de 24 horas, e um carrossel conta como um único post para esse limite.

Esse número já apareceu documentado de forma diferente no passado — algumas fontes mais antigas ainda citam 25 posts por 24 horas — então, antes de assumir qualquer valor fixo em produção, confirme o consumo real de uma conta específica consultando o endpoint de limite de publicação dela na Graph API em vez de confiar em um número hard-coded.

03

Como o PostGate expõe isso

Quando qualquer um desses limites é atingido, o PostGate traduz a resposta da Meta para o mesmo envelope estruturado de erro de toda a API: um código rate_limited, a flag retryable: true e o request_id para correlacionar com o log de entrega.

Erro de rate limitAPI do PostGate
{
  "error": {
    "code": "rate_limited",
    "message": "Instagram rate limit exceeded.",
    "platform": "instagram",
    "retryable": true,
    "request_id": "req_01JXYZ"
  }
}
04

Boas práticas em produção

Trate rate_limited como um sinal de espera, não de falha: aplique backoff exponencial com jitter e reenvie usando a mesma Idempotency-Key — o PostGate já lida com as tentativas de entrega junto ao provedor internamente, então a nova tentativa do seu lado é só sobre o transporte da requisição em si. Para contas que publicam em volume, distribuir os horários de publicação ao longo do dia evita concentrar chamadas na mesma janela de uma hora.

Construa com o PostGate

Uma API para cada rede social que os seus clientes usam — com sandbox, documentado e pronto hoje.

Comece a construir Leia a documentação