Skip to main content
Rate limits vary by model and tier. The /api_keys/rate_limits endpoint returns the current limits for each model on your key:

View Your Limits

Interactive playground

Rate Limit Logs

See which requests hit limits

Limits by Model Type

Text, Embedding, and Image Models

Text, embedding, and image models (including upscale and inpaint) each have their own limits. In the /api_keys/rate_limits response, data.rateLimits has one entry per model, and each entry’s rateLimits lists an amount for each limit type: RPM (requests per minute), TPM (tokens per minute), or RPD (requests per day). To check a single model:
Limits can change, so read them from the API rather than hardcoding them. Inference responses also carry the applied limit and your remaining capacity in the x-ratelimit-* response headers.

Speech and Transcription Models

Every speech and transcription model allows 60 requests per minute, or 120 on a Partner key.

Video and Music Models

Video, music, and voice-changer queue and retrieve requests are subject to per-account request limits. Handle 429 responses with backoff, and poll retrieve endpoints at a modest interval rather than in a tight loop. Jobs are billed per generation against your credit balance, so price a job first with POST /video/quote, POST /audio/quote, or POST /audio/voice-changer/quote.

Handling Errors

Failed requests (500, 503, 429) should be retried with exponential backoff. For 429 errors on inference endpoints, the x-ratelimit-reset-requests header gives the latest time, as a Unix timestamp in milliseconds, by which the request window has fully cleared. Waiting until then is always safe; retrying earlier may also succeed.

Error Budgets

Two further limits protect the API against clients that retry into a wall. Both are counted per model per API key, and both return 429. Failed requests are counted in fixed 30-second windows: 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 as FAILED_REQUESTS or UNSUPPORTED_FEATURE_REQUESTS. The response body’s error field names the threshold that tripped. For the failed-request budget it reads:

Response Headers

Inference responses (chat completions, responses, image, audio, and embeddings) include these headers. They are not sent on models, API key, billing, or x402 routes, and the same applies to the x-venice-balance-* headers. The failed-request budget has its own headers, sent on every response to a request made with an API key, including 401 responses: 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. Unlike the millisecond headers above, X-RateLimit-Reset is a Unix timestamp in seconds. See Crypto RPC for details.

Partner Tier

Partner keys have their own limits for each model. Call GET /api_keys/rate_limits with a Partner key to see them. If you’re consistently hitting your rate limits and your usage patterns show sustained demand over time, reach out to discuss partner access: [email protected]. Partner tier limits can be adjusted based on your specific needs.