# Rate limit

The Auvo API allows **400 requests per minute per IP**. When exceeded:


```http
HTTP/1.1 403 Forbidden
Content-Type: application/json

{ "error": "Rate limit temporarily exceeded" }
```

## Recommended strategy

1. **Exponential backoff** with jitter:

```ts
async function withBackoff(fn) {
  for (let attempt = 0; attempt < 5; attempt++) {
    const res = await fn();
    if (res.status !== 403) return res;
    const wait = (2 ** attempt) * 250 + Math.random() * 250;
    await sleep(wait);
  }
  throw new Error('Rate limit did not clear after 5 attempts');
}
```
2. **Controlled parallelism** — cap at 4 concurrent requests per worker.
3. **Batch + cache** for slow-moving data (e.g. categories).
4. **Separate IPs** when possible (one IP per environment/client) to avoid
contention across applications.


## Why 400/min

The limit covers typical sync flows (up to ~23k req/hour). For higher
throughput open a ticket at help@auvo.com.br describing the use case — we can
evaluate a temporary increase.