Limites de Requisicao
A API do GetRaze implementa limites de requisicao para garantir uso justo e manter a estabilidade do servico.
Limites Padrao
| Plano | Requisicoes por Hora |
|---|---|
| Free | 100 |
| Pro | 1.000 |
| Business | 5.000 |
| Enterprise | Personalizado |
Headers de Limite de Requisicao
Toda resposta da API inclui informacoes de limite nos headers:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1701388800| Header | Descricao |
|---|---|
X-RateLimit-Limit | Maximo de requisicoes permitidas por hora |
X-RateLimit-Remaining | Requisicoes restantes na janela atual |
X-RateLimit-Reset | Timestamp Unix de quando o limite reinicia |
Tratando Limites de Requisicao
Quando voce excede o limite, a API retorna uma resposta 429 Too Many Requests:
json
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please wait before making more requests.",
"retry_after": 3600
}
}Boas Praticas
- Verifique os headers: Monitore
X-RateLimit-Remainingpara evitar atingir os limites - Implemente backoff: Use backoff exponencial ao receber erros 429
- Use cache nas respostas: Faca cache de dados que nao mudam com frequencia
- Agrupe requisicoes: Use endpoints de listagem em vez de fazer muitas requisicoes individuais
Exemplo: Tratando Limites de Requisicao
javascript
async function makeRequest(url, options, retries = 3) {
const response = await fetch(url, options);
// Check remaining requests
const remaining = response.headers.get('X-RateLimit-Remaining');
if (remaining && parseInt(remaining) < 10) {
console.warn('Approaching rate limit');
}
// Handle rate limit exceeded
if (response.status === 429) {
if (retries > 0) {
const retryAfter = response.headers.get('Retry-After') || 60;
await new Promise(r => setTimeout(r, retryAfter * 1000));
return makeRequest(url, options, retries - 1);
}
throw new Error('Rate limit exceeded');
}
return response.json();
}Limites Personalizados
Clientes Enterprise podem configurar limites de requisicao personalizados por chave de API. Entre em contato com o suporte para discutir suas necessidades.