# Rate limiting

Each account can make up to 3,000 API requests a minute (50 a second), across all of its keys in live and test mode together. If you need more, contact support.

## Headers

| Header | Meaning |
| --- | --- |
| `X-RateLimit-Limit` | Requests your account may make each minute. |
| `X-RateLimit-Remaining` | Requests left in the current minute. |
| `Retry-After` | On a `429` only: seconds to wait before trying again. |

## When you go over

You get `429` with code `4290000`, and nothing in the request is done. Wait for `Retry-After` seconds, then retry. Retrying a create with the same request is always safe (see [Idempotency](https://docs.weavpayments.com/idempotency)).

```json title="json · 429 Too Many Requests"
{
    "code": "4290000",
    "success": false,
    "message": "Too many requests. Wait, then retry."
}
```

## Staying under the limit

- Use [webhooks](https://docs.weavpayments.com/webhooks/event-types) to learn when a payment finishes instead of polling `GET /v1/payments/{reference_id}`.
- List with `per_page=100` and the cursor rather than many small pages.
- Spread retries out with backoff, and honor `Retry-After`.
- Setting your webhook URL is limited to 10 changes a minute.
