Limites por Endpoint
| Endpoint | Limite |
|---|
POST /v1/charges | 60 req/min |
POST /v1/withdrawals | 30 req/min |
| Demais endpoints | Sem limite definido |
Todas as respostas incluem os seguintes headers para monitorar o uso:
| Header | Descrição |
|---|
X-RateLimit-Limit | Limite total de requisições no período |
X-RateLimit-Remaining | Requisições restantes no período atual |
X-RateLimit-Reset | Timestamp Unix de quando o limite será reiniciado |
Erro de Rate Limit
Ao exceder o limite, a API retorna:
HTTP/1.1 429 Too Many Requests
{
"error": {
"code": "rate_limit_exceeded",
"message": "Too many requests. Please slow down."
}
}
Recomendações
Monitore o header X-RateLimit-Remaining para adaptar sua frequência de requisições antes de atingir o limite.
- Implemente exponential backoff ao receber erros
429
- Use o header
X-Idempotency-Key para evitar duplicatas em retentativas
- Para volume alto, considere processar cobranças em batch
// Exemplo: respeitar o rate limit
async function criarCobrancaComRetry(dados, tentativas = 3) {
for (let i = 0; i < tentativas; i++) {
const res = await fetch('https://api.flarepayments.com/v1/charges', {
method: 'POST',
headers: { 'Authorization': 'Bearer flare_xxx', 'Content-Type': 'application/json' },
body: JSON.stringify(dados)
});
if (res.status !== 429) return res.json();
const reset = res.headers.get('X-RateLimit-Reset');
const waitMs = reset ? (reset * 1000 - Date.now()) : (2 ** i * 1000);
await new Promise(r => setTimeout(r, waitMs));
}
}