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

# Rate limits

> Understanding API rate limits

## Limits

Rate limits vary by workspace type:

| Workspace | Requests/minute | Burst/second |
| --------- | --------------- | ------------ |
| Live      | 3,000           | 30           |
| Sandbox   | 100             | 5            |

<Note>
  Pricing is usage-based. There are no plan tiers - everyone gets the same limits. Contact support if you need higher limits for planned traffic spikes.
</Note>

## Response headers

Every response includes rate limit information:

```
X-RateLimit-Limit: 3000
X-RateLimit-Remaining: 2988
X-RateLimit-Reset: 1704067200
```

| Header                  | Description                      |
| ----------------------- | -------------------------------- |
| `X-RateLimit-Limit`     | Maximum requests per minute      |
| `X-RateLimit-Remaining` | Requests remaining               |
| `X-RateLimit-Reset`     | Unix timestamp when limit resets |

## Handling 429 errors

When you exceed rate limits, you'll receive a `429 Too Many Requests` response:

```json theme={null}
{
  "error": "Rate limit exceeded",
  "retry_after": 30
}
```

Implement exponential backoff when retrying:

```javascript theme={null}
async function fetchWithRetry(url, options, maxRetries = 3) {
  for (let attempt = 0; attempt < maxRetries; attempt++) {
    const response = await fetch(url, options)

    if (response.status === 429) {
      const retryAfter = response.headers.get("retry-after") || 2 ** attempt
      await new Promise((r) => setTimeout(r, retryAfter * 1000))
      continue
    }

    return response
  }
}
```

<Warning>
  Repeatedly exceeding rate limits may result in temporary API access suspension.
</Warning>

## Best practices

* **Cache responses** - Reduce API calls by caching data that doesn't change frequently
* **Use webhooks** - Subscribe to events instead of polling for updates
* **Batch operations** - Use list endpoints instead of fetching items individually
* **Monitor headers** - Track `X-RateLimit-Remaining` to avoid hitting limits

## Need higher limits?

Contact [help@voyantcloud.com](mailto:help@voyantcloud.com) with your workspace ID and expected traffic volume. We'll coordinate capacity ahead of time.
