Limites de taxa
Entenda os limites de taxa da API, os cabeçalhos de resposta e as boas práticas para tratar erros de limite com elegância.
Visão geral
Os limites de taxa protegem a API contra abuso e garantem uso justo para todos os clientes. Cada chave de API tem uma cota de requisições que é redefinida a cada hora. Quando você ultrapassa o limite, as requisições retornam um erro 429 (Too Many Requests) até a cota ser redefinida.
Limites padrão
Limites de taxa padrão por chave de API: | Tipo de limite | Limite | Período de reset | |----------------|--------|------------------| | Requisições | 1.000/hora | Por hora | | Pico | 100/minuto | Por minuto | | Tamanho do lote | 100 itens | Por requisição | **Limites por endpoint:** • Verificação de e-mail: 1.000/hora • Busca de e-mail: 500/hora • Enriquecimento: 200/hora • Busca de leads: 500/hora • Análise de SEO: 200/hora Precisa de limites maiores? Fale com o suporte para conhecer as opções enterprise.
Cabeçalhos de limite de taxa
Toda resposta inclui informações de limite de taxa nos cabeçalhos: ``` X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 856 X-RateLimit-Reset: 1709046000 Retry-After: 3600 ``` | Cabeçalho | Descrição | |-----------|-----------| | `X-RateLimit-Limit` | Máximo de requisições permitidas por hora | | `X-RateLimit-Remaining` | Requisições restantes na janela atual | | `X-RateLimit-Reset` | Timestamp Unix em que o limite é redefinido | | `Retry-After` | Segundos até poder tentar de novo (apenas em 429) |
Tratar os limites de taxa
Ao receber uma resposta 429, implemente uma lógica de retry: ```javascript async function makeRequest(url, options) { const response = await fetch(url, options); if (response.status === 429) { const retryAfter = response.headers.get('Retry-After') || 60; await sleep(retryAfter * 1000); return makeRequest(url, options); // Tentar novamente } return response; } ``` **Backoff exponencial:** Para falhas repetidas, use backoff exponencial com jitter: ```javascript const delay = Math.min(baseDelay * 2 ** attempt + randomJitter, maxDelay); ```
Boas práticas
Otimize seu uso da API para evitar limites: • **Use endpoints em lote** — verifique 100 e-mails em uma requisição em vez de 100 requisições • **Faça cache das respostas** — não busque novamente dados que você já tem • **Distribua as requisições** — não dispare todas de uma vez • **Monitore os cabeçalhos** — acompanhe sua cota restante de forma proativa • **Trate erros com elegância** — implemente lógica de retry adequada • **Use webhooks** — em operações assíncronas, espere o callback em vez de fazer polling **Abordagem baseada em fila:** ```javascript // Processar requisições com rate limiting const queue = new RateLimitedQueue({ maxConcurrent: 10, minDelay: 100 // ms entre requisições }); await queue.addAll(requests); ```
Artigos relacionados
Tratamento de erros
Trate erros 429 e outros erros da API com elegância.
Autenticação
Gestão de chaves de API e boas práticas de segurança.
Endpoints de SEO
Gere relatórios de SEO, análise performance, acompanhe posições de palavras-chave e monitore Core Web Vitals.
API de personalização com IA
Gere ganchos e linhas de assunto de e-mail escritos por IA através da API. Saiba quando usar sync ou batch, os padrões de idempotência e sondagem, os preços e os códigos de erro.