> ## Documentation Index
> Fetch the complete documentation index at: https://veniceai-mintlify-de47a659.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate Limits

> Venice API rate limits by tier, the headers that expose capacity, and handling 429s.

Rate limits vary by model and tier. The default limits below are a useful reference, but the `/api_keys/rate_limits` API endpoint is the canonical way to fetch your current limits. You can check your exact limits anytime:

<CardGroup cols={2}>
  <Card title="View Your Limits" icon="gauge" href="/api-reference/endpoint/api_keys/rate_limits?playground=open">
    Interactive playground
  </Card>

  <Card title="Rate Limit Logs" icon="history" href="/api-reference/endpoint/api_keys/rate_limit_logs?playground=open">
    See which requests hit limits
  </Card>
</CardGroup>

```bash theme={null}
curl https://api.venice.ai/api/v1/api_keys/rate_limits \
  -H "Authorization: Bearer $VENICE_API_KEY"
```

## Default Limits

### Text and Embedding Models

Text and embedding models are grouped into four sizes. Each model card on the [Models page](/models/text) displays its size badge. Every embedding model is XS.

| Size | Requests/min | Tokens/min | Partner requests/min | Partner tokens/min |
| :--- | -----------: | ---------: | -------------------: | -----------------: |
| XS   |          500 |  5,000,000 |                  500 |         10,000,000 |
| S    |          150 |  3,000,000 |                  300 |          6,000,000 |
| M    |          100 |  2,000,000 |                  200 |          4,000,000 |
| L    |          100 |  2,000,000 |                  150 |          3,000,000 |

<Note>
  Some models run on dedicated or third-party infrastructure and carry limits that do not map to these four sizes. Call [`GET /api_keys/rate_limits`](/api-reference/endpoint/api_keys/rate_limits) for the authoritative per-model limits on your key.
</Note>

### Image and Audio Models

| Type                     | Requests/min | Partner requests/min |
| :----------------------- | -----------: | -------------------: |
| Image, upscale, inpaint  |           20 |                   60 |
| Speech and transcription |           60 |                  120 |

### Video and Music Models

Video and music generation are not rate limited. Both are billed per generation against your credit balance, so cost rather than a request ceiling is the practical constraint. Price a job first with [`POST /video/quote`](/api-reference/endpoint/video/quote) or [`POST /audio/quote`](/api-reference/endpoint/audio/quote).

## Handling Errors

Failed requests (500, 503, 429) should be retried with exponential backoff.

For 429 errors specifically, check the `x-ratelimit-reset-requests` header for the exact Unix timestamp when you can retry. Most HTTP libraries have built-in retry mechanisms that handle this automatically.

### Error Budgets

Two further limits protect the API against clients that retry into a wall. Both are counted per model per API key over a rolling 30 seconds, and both return `429`:

| Budget                       |   Threshold | Applies to                        |
| :--------------------------- | ----------: | :-------------------------------- |
| Failed requests              |  50 per 30s | All endpoints                     |
| Unsupported feature requests | 200 per 30s | `/chat/completions`, `/responses` |

The second budget counts requests that ask a model for a feature it does not support — for example requesting vision or tool calling from a model without that capability. Exceeding either budget appears in [rate limit logs](/api-reference/endpoint/api_keys/rate_limit_logs) as `FAILED_REQUESTS` or `UNSUPPORTED_FEATURE_REQUESTS`.

Both return a `customMessage` naming the threshold that tripped:

```
Too many failed attempts (> 50) resulting in a non-success status code. Please wait 30 seconds and try again. See https://docs.venice.ai/api-reference/rate-limiting for more information.
```

These responses set `x-ratelimit-remaining` and `x-ratelimit-resets` instead of the per-window headers below.

## Response Headers

Every response includes these headers:

| Header                           | Description                            |
| :------------------------------- | :------------------------------------- |
| `x-ratelimit-limit-requests`     | Max requests allowed in current window |
| `x-ratelimit-remaining-requests` | Requests remaining in current window   |
| `x-ratelimit-reset-requests`     | Unix timestamp when window resets      |
| `x-ratelimit-limit-tokens`       | Max tokens allowed per minute          |
| `x-ratelimit-remaining-tokens`   | Tokens remaining in current minute     |
| `x-ratelimit-reset-tokens`       | Seconds until token limit resets       |

The `/crypto/rpc/{network}` endpoint uses its own limits and its own `X-RateLimit-Limit`, `X-RateLimit-Remaining`, and `X-RateLimit-Reset` headers, which are set only on 429 responses. See [Crypto RPC](/api-reference/endpoint/crypto/rpc) for details.

## Partner Tier

Partner limits are listed alongside the defaults in the tables above.

If you're consistently hitting your rate limits and your usage patterns show **sustained demand over time**, reach out to discuss partner access: [api@venice.ai](mailto:api@venice.ai).

Partner tier limits can be adjusted based on your specific needs.
