Rate Limit
Limites sustentados e burst por endpoint.
Tiers
Cada endpoint tem dois limites: sustained (req/min) e burst (req em janela de 5s). Excedeu burst = 429 imediato. Excedeu sustained = 429 até reset.
Headers de rate limit
X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-ResetX-Burst-LimitX-Burst-Remaining
Tabela por endpoint
| Endpoint | Sustained | Burst |
|---|---|---|
| GET /v1/health | 60/min | 10/5s |
| GET /v1/market/rates | 60/min | 10/5s |
| GET /v1/scopes | 60/min | 10/5s |
| GET /v1/account/me | 30/min | 5/5s |
| PATCH /v1/account/me | 10/min | 3/5s |
| GET /v1/account/wallets | 30/min | 5/5s |
| GET /v1/transactions | 30/min | 5/5s |
| GET /v1/fee-rules | 30/min | 5/5s |
| POST /v1/deposit/create | 10/min | 3/5s |
| GET /v1/deposit-status/:id | 60/min | 10/5s |
| GET /v1/deposit/quote | 30/min | 5/5s |
| POST /v1/qr/create | 15/min | 3/5s |
| GET /v1/qr | 30/min | 5/5s |
| GET /v1/qr/:slug | 60/min | 10/5s |
| POST /v1/qr/update alias REST: PATCH /v1/qr/:slug | 15/min | 3/5s |
| POST /v1/qr/delete alias REST: DELETE /v1/qr/:slug | 10/min | 3/5s |
| POST /v1/qr/pay | 30/min | 5/5s |
| POST /v1/links/create | 15/min | 3/5s |
| GET /v1/links | 30/min | 5/5s |
| GET /v1/links/:slug | 60/min | 10/5s |
| GET /v1/links/:slug/transactions | 30/min | 5/5s |
| POST /v1/links/update alias REST: PATCH /v1/links/:slug | 15/min | 3/5s |
| POST /v1/links/delete alias REST: DELETE /v1/links/:slug | 10/min | 3/5s |
| POST /v1/links/pay | 30/min | 5/5s |
| POST /v1/withdraw/create | 6/min | 2/5s |
| GET /v1/withdraw-status | 30/min | 5/5s |
| GET /v1/withdraw-status/:id | 60/min | 10/5s |
Códigos 429
RATE_LIMIT_EXCEEDEDBURST_EXCEEDEDPROVIDER_BACKPRESSUREABUSE_SUSPEND
Estratégia de retry
Em 429, leia Retry-After e implemente backoff exponencial com jitter. Não retry sem espera.
