Limites Globais

O Brevo aplica limites de taxa globais em todos os endpoints da API para garantir utilização justa e desempenho ótimo.

Níveis de Limite de Taxa

Plano Gratuito

  • Limite Diário: 300 pedidos
  • Limite Horário: 50 pedidos
  • Limite de Burst: 10 pedidos/minuto
  • Créditos de E-mail: 300/mês

Plano Starter

  • Limite Diário: 20.000 pedidos
  • Limite Horário: 1.000 pedidos
  • Limite de Burst: 100 pedidos/minuto
  • Créditos de E-mail: Ilimitados

Plano Business

  • Limite Diário: 50.000 pedidos
  • Limite Horário: 3.000 pedidos
  • Limite de Burst: 300 pedidos/minuto
  • Créditos de E-mail: Ilimitados

Plano Enterprise

  • Limite Diário: Personalizado (100.000+)
  • Limite Horário: Personalizado (10.000+)
  • Limite de Burst: Personalizado (1.000+/minuto)
  • Créditos de E-mail: Ilimitados

Cabeçalhos de Limite de Taxa

Cada resposta da API inclui informações de limite de taxa:

HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200
X-RateLimit-Retry-After: 3600

Descrições dos Cabeçalhos

  • X-RateLimit-Limit: Total de pedidos permitidos na janela atual
  • X-RateLimit-Remaining: Pedidos restantes na janela atual
  • X-RateLimit-Reset: Timestamp Unix quando o limite é reiniciado
  • X-RateLimit-Retry-After: Segundos a aguardar antes de tentar novamente

Monitorizar a Utilização

Verificar Utilização Atual

const checkRateLimit = async () => {
const response = await fetch('https://api.brevo.com/v3/account', {
headers: { 'api-key': process.env.BREVO_API_KEY }
});
console.log({
limit: response.headers.get('X-RateLimit-Limit'),
remaining: response.headers.get('X-RateLimit-Remaining'),
reset: new Date(response.headers.get('X-RateLimit-Reset') * 1000)
});
};

Monitorização no Painel

  1. Faça login no seu painel Brevo
  2. Navegue para Definições → Chaves de API
  3. Visualize a Utilização para cada chave de API
  4. Configure Alertas para limites aproximados

Janelas de Reinício do Limite de Taxa

  • Limites diários: Reiniciam às 00:00 UTC
  • Limites horários: Reiniciam a cada hora nos :00 minutos
  • Limites de burst: Janela deslizante (últimos 60 segundos)

Gerir Limites de Taxa

Backoff Exponencial

const makeRequestWithBackoff = async (url, options, maxRetries = 3) => {
for (let i = 0; i < maxRetries; i++) {
try {
const response = await fetch(url, options);
if (response.status === 429) {
const retryAfter = response.headers.get('X-RateLimit-Retry-After') || 60;
const delay = Math.min(1000 * Math.pow(2, i), retryAfter * 1000);
console.log(`Rate limited. Waiting ${delay}ms before retry ${i + 1}`);
await new Promise(resolve => setTimeout(resolve, delay));
continue;
}
return response;
} catch (error) {
if (i === maxRetries - 1) throw error;
}
}
};

Upgrades de Plano

Quando atinge consistentemente os limites de taxa:

  1. Analise a Utilização: Reveja quais endpoints usa mais
  2. Otimize o Código: Implemente cache e processamento em lote
  3. Considere Upgrade: Passe para um nível superior se necessário
  4. Contacte Vendas: Para requisitos empresariais

Exceções de Limite de Taxa

Endpoints de Webhook

  • Não sujeitos aos limites de taxa padrão
  • Aplicam-se limites de entrega de webhook separados

Endpoint de Verificação de Saúde

  • /v3/ping tem limites mais relaxados
  • Projetado para monitorização e verificações de disponibilidade

Operações em Lote

  • Contam como um único pedido mas podem ter limites de payload
  • Mais eficientes do que múltiplos pedidos individuais
Assistente AI

Olá! Pergunte-me qualquer coisa sobre a documentação.

Comece grátis com Brevo