> ## Documentation Index
> Fetch the complete documentation index at: https://docs.onstacks.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate limits

> Per-route limits over a rolling one-minute window.

Limits apply per route group and per source IP address, over a rolling one-minute window.

## When you're rate limited

```http 429 response theme={"system"}
HTTP/1.1 429 Too Many Requests
Retry-After: 42

{
  "data": null,
  "error": {
    "code": "rate_limit_exceeded",
    "message": "too many requests for this route",
    "details": { "scope": "transfers.create", "retry_after_seconds": 42 }
  },
  "request_id": "req_a1b2c3d4"
}
```

Wait for `Retry-After` seconds before retrying. The same value is in `error.details.retry_after_seconds`.

## Default limits

| Route group | Default limit |
| - | - |
| `transfers.create`, `ramp.quote`, `ramp.payment` | 10 per minute |
| `transfers.approve`, `transfers.cancel` | 20 per minute |
| `api_keys.create`, `api_keys.revoke` | 10 per minute |
| `webhooks.*` | 120 per minute |

<Note>
  Limits are keyed by source IP address, not by API key or workspace. Integrations that share an outbound IP, for example behind the same NAT gateway, share a bucket for each route group.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.