Limite de taxa (rate limit)
Um limite de taxa (rate limit) é um teto para quantas requisições um serviço aceita de um mesmo cliente dentro de uma janela de tempo — algumas por segundo, ou algumas centenas por minuto —, aplicado recusando o excesso, por convenção com o status HTTP 429 Too Many Requests. Ele costuma ser confundido com uma cota, que limita o uso total ao longo de um período maior, como um dia ou um mês. Os dois falham de jeitos diferentes: um limite de taxa se resolve sozinho em segundos ou minutos, enquanto uma cota esgotada continua esgotada até ser renovada.
Limite de taxa ou cota: descubra qual você atingiu
Os dois chegam como uma requisição recusada, e alguns provedores devolvem o mesmo código de status para ambos, então o erro sozinho raramente diz qual foi. Vale esclarecer isso antes de mexer em qualquer código, porque as soluções apontam para direções opostas.
- Um limite de taxa conta requisições por uma janela curta. A solução é desacelerar: espaçar as requisições, colocá-las em fila e, quando a resposta trouxer um cabeçalho Retry-After, esperar esse tempo antes de tentar de novo.
- Uma cota conta o uso total — requisições, créditos, mensagens, tokens — ao longo de um dia ou de um mês. Esperar alguns segundos não muda nada; as opções são esperar a renovação, aumentar o limite ou usar menos.
- Um limite de concorrência define quantas requisições podem estar em andamento ao mesmo tempo, por mais devagar que cheguem. Ele aparece quando o trabalho é distribuído em paralelo, e é fácil confundi-lo com um limite de taxa.
Confira também contra o que o limite é contado: uma chave de API, uma conta ou o endereço de onde vêm as requisições. É isso que decide se uma segunda chave mudaria alguma coisa.
Uma cota que esgotamos sem perceber
A AgentCeres, o AI Growth Officer da agentceres.com, opera agentes que pesquisam na web enquanto trabalham, e essas buscas passavam por uma API de busca com chaves do plano gratuito de 1.000 créditos por mês. Em setembro de 2026 descobrimos que a chave compartilhada pela maioria dos nossos contêineres de agentes estava em 1.002 de 1.000. Todas as buscas na web desses workspaces vinham falhando, e nada em lugar nenhum mostrava isso: os agentes chamavam o provedor de busca diretamente, então esse tráfego não passava por nada nosso que o contasse.
O número de uso enganava de um jeito que vale lembrar. Um contador que para no teto é um piso, não uma medição: depois que a chave esgotou, as buscas seguintes falhavam em vez de serem contadas, então o número que víamos ficava abaixo da demanda real. Depois que passamos a carga para chaves com folga, um dia inteiro de tráfego sem nenhum teto chegou a cerca de 153 créditos, uns 4.600 por mês — perto de quatro vezes o uso mensal que conseguíamos ver enquanto a chave estava no teto.
A segunda lição veio ao construir a verificação. O endpoint de uso do provedor também tem limite de taxa, e esse limite é contado pelo endereço de onde vêm as requisições, não pela chave: assim que uma verificação o disparou, cinco chaves diferentes devolveram 429 juntas. Um script que tentasse de novo chave por chave só teria cavado mais fundo, então o nosso para no primeiro 429 e informa que não conseguiu fazer a leitura — e trata isso como falha, nunca como um resultado limpo.
Projetar para os limites que você vai atingir
Parta do princípio de que todo serviço que você chama vai recusar você em algum momento, e decida antes como isso vai aparecer para quem usa o seu produto. Uma recusa que aparece como uma mensagem clara custa um pouco de confiança. Uma recusa que aparece como um resultado discretamente pior custa muito mais, porque ninguém sabe que há algo para corrigir. Por que meu app parou de enviar e-mails percorre a mesma falha num provedor de e-mail, onde a recusa chegou disfarçada de outro erro.
Três hábitos cobrem quase tudo. Espere e tente de novo diante de um limite de taxa, respeitando o Retry-After, mas nunca repita automaticamente uma ação que talvez já tenha acontecido, como um pagamento ou uma mensagem enviada. Registre o uso de cada serviço medido num lugar que você realmente olha, com um alerta bem antes do teto, e não ao chegar nele. E trate uma leitura ausente como alarme: a verificação que não consegue rodar é a que esconde a queda.
FAQ
- O que significa o HTTP 429?
- É o código de status Too Many Requests: o servidor está dizendo que você enviou requisições demais num determinado período. Ele é definido na RFC 6585, e a resposta pode incluir um cabeçalho Retry-After dizendo quanto tempo esperar antes de tentar de novo. Alguns provedores também o enviam quando uma cota mais longa acaba, então leia o corpo do erro antes de decidir qual você atingiu.
- Qual é a diferença entre limite de taxa e cota?
- Um limite de taxa limita requisições por uma janela curta e se resolve sozinho em segundos ou minutos. Uma cota limita o uso total ao longo de um período maior, muitas vezes um mês, e continua esgotada até ser renovada ou você aumentá-la. Desacelerar resolve o primeiro e não faz nada pelo segundo.
- Usar mais chaves de API contorna um limite de taxa?
- Só se o limite for contado por chave, e só se os termos do provedor permitirem. Alguns limites são contados por conta ou por endereço IP, e aí uma segunda chave não muda nada — vimos cinco chaves diferentes recusadas ao mesmo tempo porque o limite pertencia ao endereço de onde vinham as verificações.
- Como agentes de IA lidam com limites de taxa?
- Tão bem quanto alguém os projetou para lidar. Um agente que chama ferramentas em loop pode atingir um limite em segundos, e um modelo pode seguir em frente sem a ferramenta que falhou e ainda escrever uma resposta fluente, que parece normal. Registre cada chamada recusada e garanta que a falha de uma ferramenta seja relatada como falha; alucinação explica o que pode preencher o vazio quando isso não acontece.
- Como paro de atingir limites de taxa?
- Espace as requisições em vez de mandá-las em rajadas, guarde em cache os resultados que você buscaria duas vezes, agrupe chamadas quando a API permitir e coloque o trabalho em fila para que um pico vire uma espera curta, e não um muro de recusas. Depois acompanhe o uso em relação ao limite com um alerta que dispare bem antes, para descobrir o teto por um gráfico, e não por um cliente.
An AI growth team that runs this for you
AgentCeres is a managed AI marketing team — you approve what ships. 14-day free trial, from $39/month.