Rate limit exceeded no X (Twitter): significado e solução

Publicado:

18 min de leitura

Acar Diveroli
Autor: Acar Diveroli
Cartões de solicitação somem na profundidade; o cartão azul da frente mostra 429, com a etiqueta RATE LIMIT EXCEEDED abaixo

É noite de jogo e você não para de puxar o feed do X para baixo em busca de posts novos. De repente nada carrega e uma única linha fica na tela: "Rate limit exceeded". Sua conta não foi suspensa e o aplicativo não quebrou. O X contou as solicitações que chegam de você, e a contagem passou do que ele permite no momento. Um desenvolvedor vê a mesma frase em outro lugar: a API a devolve com HTTP 429 e o erro "code": 88.

A primeira metade deste artigo é para quem vê o aviso no celular ou no navegador: o que significa, por que aparece, quanto dura e o que fazer. A segunda metade é para desenvolvedores que usam a API do X: a resposta 429, os cabeçalhos x-rate-limit-*, a janela de 15 minutos, o modelo de acesso e preços em vigor em 7 de outubro de 2026 e um exemplo de backoff testado. No fim, olhamos o único caso específico em que um proxy faz diferença: quando o limite está ligado a um endereço IP que você compartilha com muitas outras pessoas.

O que significa "rate limit exceeded"?

Um rate limit (limite de taxa) é o teto que um serviço coloca em quantas solicitações aceita de um usuário, uma conta, um aplicativo ou um endereço IP em determinado período. No X, tudo é uma solicitação: puxar o feed para baixo pede posts novos, tocar em um perfil pede os posts daquele perfil, curtir e seguir gravam uma ação no servidor. Cada tipo de ação tem o próprio contador, e quando um contador enche, aquela ação recebe por um tempo a resposta "limit exceeded".

Por isso o aviso costuma atingir um lugar só. O feed principal pode parar de carregar enquanto as notificações continuam chegando, ou o botão de seguir pode falhar enquanto você ainda consegue postar. O mecanismo geral, a que o contador está ligado e como janelas fixas e token buckets contam, está no nosso artigo sobre 429 Too Many Requests; aqui ficamos com o que é próprio do X.

Vale separar esse aviso das outras mensagens que o X mostra. "Sua conta está suspensa" é uma decisão sobre as regras e não passa sozinha. "Este post está retido no seu país" tem a ver com um pedido legal e esconde só aquele post; como isso funciona está no nosso artigo sobre posts retidos. "Rate limit exceeded" não é nenhuma das duas: um contador está cheio e vai zerar quando o período terminar.

Quais limites o X tem?

A central de ajuda do X publica limites diários de ações por conta. Segundo a página de limites do X, uma conta pode publicar no máximo 2.400 posts por dia, e esse número é dividido em intervalos de meia hora, então você pode bater no teto de meia hora antes de esgotar o diário. Quinhentas mensagens diretas e 400 ações de seguir por dia são tetos técnicos. A página também diz que esses números são apenas limites técnicos e que comportamentos como seguir de forma agressiva são proibidos à parte pelas regras.

A leitura é outra história. O X não publica um número atual de quantos posts uma conta pode ver por dia. Esses números foram anunciados uma vez: em 1º de julho de 2023, Elon Musk anunciou limites de leitura que chamou de "temporários", voltados contra o scraping de dados, e os elevou ao longo do dia para 10.000 posts por dia para contas verificadas, 1.000 para contas não verificadas e 500 para contas novas; a reportagem da Axios daquele dia também registrou o aviso "Rate limit exceeded" que os usuários viam. Nenhuma atualização oficial foi publicada desde então, e hoje o X não diz no aplicativo em qual limite você bateu. A afirmação tão repetida de que uma assinatura Premium aumenta o limite de leitura não pôde ser confirmada nas páginas oficiais do X, então não a repetimos aqui.

Por que o aviso aparece?

O contador enche por quatro caminhos. A maioria das pessoas tem dois deles ao mesmo tempo.

  1. Rolagem e recarga rápidas. Cada puxada no feed, cada perfil e cada busca é uma solicitação separada. Recarregar várias vezes quando uma página não carrega enche o contador mais rápido.
  2. Aplicativos de terceiros conectados à sua conta. Análises de seguidores, ferramentas de postagem automática, serviços do tipo "quem deixou de me seguir" e alguns clientes antigos puxam dados em seu nome em segundo plano. Mesmo que você nunca toque no celular, as solicitações deles enchem o seu contador.
  3. Compartilhar um endereço IP com muitas pessoas. Em redes de campus, escritórios e escolas, centenas de dispositivos saem para a internet por um único endereço (isso se chama NAT). Um servidor VPN gratuito ou lotado funciona do mesmo jeito. Quando o X mantém alguns contadores por endereço, todo mundo atrás daquele endereço grava no mesmo balde, e você pode bater no limite sem ter feito nada.
  4. Restrições temporárias do lado do X. Durante medidas em toda a plataforma, como os limites de leitura de 2023, o aviso aparece para um grande número de usuários ao mesmo tempo. A única coisa a fazer nesse caso é esperar.

Quanto tempo dura?

No aplicativo, o X não informa um tempo; o aviso pede para tentar de novo em alguns instantes. Em linha com os intervalos de meia hora citados na central de ajuda, na maioria dos casos o feed volta sozinho depois de 15 a 30 minutos. Se você bateu em um limite diário, por exemplo ao esgotar as 400 ações de seguir, o contador zera no dia seguinte.

Na API, o tempo é exato. A maioria dos endpoints usa uma janela de 15 minutos, e o momento em que a janela fecha fica gravado no cabeçalho x-rate-limit-reset de cada resposta como um timestamp Unix. Algumas ações também têm um teto de 24 horas, como 10.000 solicitações por aplicativo por dia no endpoint que cria posts.

O que você deve fazer?

Os passos vão do mais fácil ao mais trabalhoso.

  1. Espere e pare de recarregar. Feche o aplicativo e faça outra coisa por 15 a 30 minutos. Recarregar nesse tempo não zera o contador, só o enche.
  2. Revise os aplicativos conectados. Vá em Configurações e privacidade › Segurança e acesso à conta › Aplicativos e sessões › Aplicativos conectados. Remova o acesso de tudo o que você não reconhece, não usa ou que pertence à família das "análises de seguidores". A central de ajuda do X diz com clareza que um aplicativo conectado pode, dependendo das permissões, ler seus posts e agir em nome da sua conta; esses aplicativos são o que enche o contador na maioria das vezes.
  3. Limpe as sessões. No mesmo menu, a aba Sessões permite sair de dispositivos que você não reconhece. Um aplicativo em um celular ou tablet antigo pode ainda estar puxando dados em segundo plano.
  4. Saia, entre de novo e limpe o cache. No navegador, apague os dados do site; no iOS, reinstale o aplicativo, e no Android use Configurações › Aplicativos › X › Armazenamento para limpar o cache. Isso não zera o contador, mas resolve o problema de "ainda não carrega" que às vezes fica depois que o aviso passou.
  5. Troque de rede. Se o aviso aparece no Wi-Fi da escola ou do escritório e não nos dados móveis, o contador está ligado ao endereço IP, que você compartilha com dezenas de pessoas. Se você usa VPN, desligue e tente de novo; uma saída VPN lotada também é um endereço compartilhado.
  6. Comece devagar em uma conta nova. Dezenas de seguidas e curtidas em sequência nos primeiros dias enchem os contadores e também atraem as verificações de automação do X.

A lista do que não fazer é curta: abrir uma segunda e uma terceira conta para continuar, instalar extensões que prometem driblar o limite e usar clientes de terceiros que prometem "leitura ilimitada". Isso viola as Regras do X e pode transformar um aviso temporário em um problema duradouro na conta.

Causa e solução por sintoma

SintomaCausa provávelO que fazer
O feed parou, as notificações continuam chegandoO contador de rolagem e recarga está cheioEsperar de 15 a 30 minutos
O aviso aparece sem tocar no celularUm aplicativo conectado puxa dados em segundo planoDesconectar os aplicativos
Aparece no Wi-Fi, não nos dados móveisIP compartilhado (NAT, VPN)Trocar de rede, desligar a VPN
O botão de seguir ou de DM não funcionaLimite diário de ações atingidoEsperar o dia seguinte
Todo mundo reclama ao mesmo tempoRestrição em toda a plataformaEsperar; não há mais nada a fazer
O aviso passou, a página continua em brancoDados de sessão desatualizadosSair e entrar de novo, limpar o cache

Para desenvolvedores: 429 e os cabeçalhos x-rate-limit

Quando um rate limit é ultrapassado na API do X, a resposta chega com HTTP 429 e o erro 88 no corpo. Segundo o documento de rate limits, os limites são definidos por endpoint, quase sempre em janelas de 15 minutos, e divididos por tipo de autenticação: solicitações feitas com um token de usuário (OAuth 1.0a ou OAuth 2.0) têm um contador por usuário, enquanto solicitações somente de aplicativo feitas com um Bearer Token compartilham um contador para o aplicativo inteiro.

Cada resposta carrega três cabeçalhos:

text
HTTP/2 429
x-rate-limit-limit: 900
x-rate-limit-remaining: 0
x-rate-limit-reset: 1791367200

{"errors":[{"code":88,"message":"Rate limit exceeded"}]}

x-rate-limit-limit é o total permitido na janela, x-rate-limit-remaining o que resta e x-rate-limit-reset o momento em que a janela fecha, em segundos Unix. Os cabeçalhos vêm também nas respostas 200; um cliente bem-comportado observa remaining e desacelera antes de ver um 429. Alguns endpoints comuns (7 de outubro de 2026, documentação do X):

EndpointPor aplicativoPor usuário
GET /2/tweets3.500 / 15 min5.000 / 15 min
GET /2/tweets/search/recent450 / 15 min300 / 15 min
GET /2/users/:id/tweets10.000 / 15 min900 / 15 min
POST /2/tweets10.000 / 24 h100 / 15 min
POST /2/users/:id/followingnenhum50 / 15 min
GET /2/dm_eventsnenhum15 / 15 min

Os quatro hábitos que o documento recomenda são também o caminho para nunca encontrar o limite: guardar as respostas em cache, usar o filtered stream para dados em tempo real em vez de fazer polling, observar remaining e distribuir as solicitações ao longo da janela.

Acesso e preços da API do X em 2026

Em 6 de fevereiro de 2026, o X anunciou no fórum de desenvolvedores que a API passava a um preço por uso (pay-per-use); o anúncio dizia que o modelo era voltado a desenvolvedores independentes e equipes pequenas, que contas com atividade recente no nível gratuito seriam migradas com um voucher único e que aplicativos de utilidade pública que publicam alertas de emergência manteriam o acesso gratuito.

Em 7 de outubro de 2026, o documento de preços do X descreve um único modelo: sem assinaturas, você compra créditos no Developer Console e cada solicitação é descontada deles. Os preços unitários do documento são 0,005 dólar por post lido, 0,015 dólar por post criado, 0,20 dólar por um post que contém link e 0,01 dólar por perfil de usuário lido; endpoints que leem os dados da sua própria conta ("Owned Reads") custam 0,001 dólar por recurso. O mesmo recurso solicitado uma segunda vez em 24 horas não é cobrado de novo. Os planos de pagamento por uso têm um teto de 3 milhões de posts lidos por mês; acima disso é preciso um contrato Enterprise. O documento diz que os preços podem mudar e que os valores atuais estão no Developer Console. Os níveis chamados Free, Basic e Pro não aparecem mais na documentação; não encontramos nenhuma página oficial dizendo quando os assinantes antigos foram migrados, então não damos essas datas.

A distinção que importa para um desenvolvedor é esta: rate limits e cobrança são sistemas separados. Você pode ficar dentro dos limites e ainda assim gastar créditos, ou receber um 429 sem gastar nada. Um 429 é gratuito, porque só as respostas bem-sucedidas que devolvem dados são cobradas; ainda assim custa tempo, porque a janela foi gasta.

Exemplo de backoff: Python

A função abaixo, ao receber um 429, verifica primeiro x-rate-limit-reset e espera a janela fechar; se o cabeçalho estiver ausente ou no passado, recorre ao backoff exponencial (5, 10, 20, 40 segundos, com teto de 15 minutos). As tentativas são limitadas: se a quinta tentativa ainda devolver 429, a resposta é entregue como está, para que quem chamou possa adiar a tarefa. Nós a executamos contra um servidor simulado local que devolvia os mesmos cabeçalhos: dois 429 com reset, um 429 sem o cabeçalho e depois um 200; a espera total foi de 27 segundos.

python
import time
import requests

def x_get(url, headers, max_tries=5):
    for attempt in range(max_tries):
        r = requests.get(url, headers=headers, timeout=30)
        if r.status_code != 429:
            return r
        # o X grava o momento em que a janela fecha em segundos Unix
        reset = int(r.headers.get("x-rate-limit-reset", "0"))
        wait = reset - time.time()
        if wait <= 0:                        # sem cabeçalho: backoff exponencial
            wait = min(5 * 2 ** attempt, 900)
        time.sleep(wait + 1)                 # um segundo para a diferença de relógio
    return r

Duas observações. Primeira, a espera pertence a um endpoint, mas deve valer para toda solicitação que sai com o mesmo token de usuário; carregar outros endpoints enquanto um está fechado só enche a janela mais rápido. Segunda, o relógio do servidor e o seu podem diferir em alguns segundos; a margem de um segundo do exemplo é para isso, e você pode aumentá-la.

Endereços IP compartilhados e o papel restrito de um proxy

Esta seção olha um caso só: o aviso aparece porque você compartilha um endereço IP com muitas pessoas. Em redes de escritório, escola, alojamento e saídas VPN lotadas, o contador que o X mantém por endereço é um balde compartilhado por todos, e ele pode encher mesmo que as suas próprias solicitações sejam poucas. A solução é um endereço que seja seu, fixo e não compartilhado com ninguém. Um Proxies ISP é exatamente isso: um endereço fixo registrado em nome de um provedor de internet, com a aparência de uma conexão doméstica e usado só por você. O contador passa a contar só as suas solicitações.

Equipes de redes sociais usam essa abordagem como prática padrão: uma agência que gerencia contas de clientes com permissão dá a cada conta o próprio perfil de navegador e o próprio endereço fixo, para que o dia movimentado de uma conta não encha o contador das outras e cada conta entre do mesmo lugar todos os dias. Como as contas são conduzidas segundo as regras escritas do X e quantas contas a plataforma permite está no nosso artigo sobre várias contas de redes sociais. Para uma equipe que trabalha em campo, um Proxies móveis faz o mesmo trabalho; um endereço que sai da rede de uma operadora é do mesmo tipo que o de um usuário no celular.

A lista do que um proxy não consegue fazer é mais longa. Se o contador está ligado à sua conta, o que vale para a maioria dos limites de rolagem e de ações, trocar de endereço não muda nada; uma solicitação do novo endereço cai no contador da mesma conta. Usar proxies para espalhar o limite de uma conta por vários endereços, para alternar entre muitas contas ou para contornar a exigência de login do X viola as Regras do X e as regras de automação; este artigo não traz método para isso e nossos produtos não são vendidos para isso. O papel do proxy cabe em uma frase: substituir um endereço compartilhado pelo seu, para que o contador veja só o seu uso.

Erros comuns

  • Recarregar depois do aviso. Cada recarga é uma solicitação nova; o contador abre mais tarde.
  • Supor que a conta foi suspensa e abrir um chamado no suporte. A suspensão vem como uma mensagem separada na página do perfil; um rate limit passa em 15 a 30 minutos.
  • Nunca olhar os aplicativos conectados. Uma ferramenta de "análise de seguidores" autorizada anos atrás pode ainda estar puxando dados em seu nome.
  • Continuar de uma segunda conta. Trocar de conta no mesmo dispositivo e endereço não zera o contador; aumenta a suspeita de automação.
  • Repetir um 429 em intervalo fixo na API. Uma nova tentativa a cada cinco segundos mantém a janela fechada em vez de aberta; leia x-rate-limit-reset.
  • Confundir rate limit com falta de créditos. São sistemas separados; um 429 é gratuito, enquanto um saldo zerado interrompe as solicitações até você adicionar créditos.

Guia de decisão

Sua situaçãoO que fazer
Primeiro aviso, um dispositivo, rede de casaEsperar de 15 a 30 minutos
O aviso aparece com frequência e sem você fazer nadaLimpar aplicativos conectados e sessões
O aviso só aparece em redes de escritório, escola ou VPNTrocar de rede; para o trabalho, um endereço fixo próprio
Bateu no limite de seguir ou de DMLimite diário; esperar o dia seguinte e reduzir o ritmo
Desenvolvedor, a API devolve 429Esperar x-rate-limit-reset, distribuir as solicitações pela janela
Desenvolvedor, as solicitações falham por créditosConferir o saldo e o limite de gastos no Developer Console
Equipe que gerencia contas autorizadasUm perfil de navegador e um endereço fixo por conta

Perguntas frequentes

Quanto tempo dura o "rate limit exceeded" no X?

No aplicativo, costuma passar sozinho em 15 a 30 minutos; o X não dá aos usuários um tempo exato. Se você bateu em um limite diário de ações, o contador zera no dia seguinte. Na API, o tempo é exato e fica no cabeçalho x-rate-limit-reset; a maioria dos endpoints usa uma janela de 15 minutos.

"Rate limit exceeded" significa que minha conta foi suspensa?

Não. A suspensão é uma decisão sobre as regras, aparece como uma mensagem separada no seu perfil e não passa sozinha. Um rate limit é um contador cheio; ele abre quando você espera e não deixa marca na sua conta.

Não fiz nada, então por que recebi um aviso de rate limit?

Há duas causas prováveis. Um aplicativo de terceiros conectado à sua conta pode estar puxando dados em seu nome em segundo plano; confira Configurações e privacidade › Segurança e acesso à conta › Aplicativos e sessões. Ou você está em uma rede compartilhada, como escritório, escola ou VPN, e outras pessoas no mesmo endereço encheram o contador que o X mantém por endereço.

Desligar a VPN resolve o erro de rate limit do X?

Se o contador está ligado ao endereço IP, sim; uma saída VPN lotada é um único endereço compartilhado por centenas de usuários. Se o contador está ligado à sua conta, desligar a VPN não muda nada e você precisa esperar. O jeito prático de distinguir os dois é passar para os dados móveis e tentar.

O que devo fazer quando a API do X devolve 429?

Leia o valor de x-rate-limit-reset na resposta e espere até aquele momento; se o cabeçalho estiver ausente, use backoff exponencial e limite o número de tentativas. Desacelere também as outras solicitações que saem com o mesmo token. Para evitar o limite de vez, guarde as respostas em cache e observe x-rate-limit-remaining.

Um proxy resolve o erro de rate limit do X?

Só em um caso: quando o contador está ligado a um endereço IP que você compartilha com muitas pessoas, um endereço fixo próprio reduz o contador ao seu próprio uso. Se o contador está ligado à sua conta, um proxy não muda nada. Espalhar o limite de uma conta por vários endereços ou usar muitas contas para passar do limite viola as Regras do X.

Em resumo

"Rate limit exceeded" é um aviso temporário de que o X viu mais solicitações suas do que permite em pouco tempo; não é punição e passa quando você espera. O contador costuma encher com rolagem rápida, aplicativos em segundo plano conectados à sua conta ou redes compartilhadas como escritórios e escolas; espere, desconecte os aplicativos e troque de rede se for preciso. Desenvolvedores veem o mesmo limite como HTTP 429 com cabeçalhos x-rate-limit-*, esperam conforme x-rate-limit-reset e lembram que, no preço por créditos de 2026, rate limits e cobrança são sistemas separados. Para equipes cujo problema é um endereço compartilhado, o que um endereço fixo próprio oferece está na nossa página de proxy para X.