Skip to main content

Overview

Rotavision applies rate limits to ensure fair usage and platform stability. Limits are applied per API key and vary by plan.

Rate Limit Tiers

PlanRequests/minRequests/dayConcurrent
Free205002
Starter605,0005
Growth60050,00020
Enterprise3,000500,000100
CustomUnlimitedUnlimitedCustom
Enterprise and Custom plans can request higher limits. Contact [email protected].

Product-Specific Limits

Some products have additional limits beyond the base rate:

Vishwas (Fairness Analysis)

OperationLimitNotes
analyze100/hourPer model_id
explain1,000/hourReal-time explanations
generate_report20/hourPDF generation

Guardian (Monitoring)

OperationLimitNotes
log_inference10,000/minHigh-throughput logging
create_monitor100/dayMonitor creation
get_alerts600/minAlert retrieval

Dastavez (Document AI)

OperationLimitNotes
extract100/minDocument extraction
create_agent20/hourBrowser agent creation
File size50 MBPer document

Sankalp (LLM Gateway)

OperationLimitNotes
proxyPlan limitPassthrough to LLM provider
Token throughputPlan-basedInput + output tokens

Orchestrate (Workflows)

OperationLimitNotes
create_workflow50/hourWorkflow definitions
run_workflow500/hourWorkflow executions
Concurrent runs10-100Plan-based

Gati (Fleet Intelligence)

OperationLimitNotes
optimize_routes100/hourRoute optimization
track_fleet10,000/minVehicle tracking
Vehicles per request1,000Route optimization

Rate Limit Headers

Every API response includes rate limit information:
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 542
X-RateLimit-Reset: 1706780400
HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the window
X-RateLimit-RemainingRequests remaining in current window
X-RateLimit-ResetUnix timestamp when the window resets

Handling Rate Limits

When you exceed a rate limit, you’ll receive a 429 Too Many Requests response:
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded. Retry after 30 seconds.",
    "type": "rate_limit_error"
  }
}
The response includes a Retry-After header indicating when to retry:
Retry-After: 30
import time
from rotavision import Rotavision
from rotavision.exceptions import RateLimitError

client = Rotavision()

def call_with_backoff(func, max_retries=5):
    for attempt in range(max_retries):
        try:
            return func()
        except RateLimitError as e:
            if attempt == max_retries - 1:
                raise

            # Use Retry-After header or exponential backoff
            wait_time = e.retry_after or (2 ** attempt)
            print(f"Rate limited. Waiting {wait_time}s...")
            time.sleep(wait_time)

# Usage
result = call_with_backoff(
    lambda: client.vishwas.analyze(model_id="my-model", dataset=data)
)

Best Practices

Don’t retry immediately after a rate limit. Use exponential backoff with jitter to avoid thundering herd.
Cache analysis results and explanations that don’t change frequently to reduce API calls.
For Guardian logging, use batch endpoints to send multiple inferences in one request.
# Instead of
for inference in inferences:
    client.guardian.log_inference(inference)

# Use batch endpoint
client.guardian.log_inferences(inferences)  # Up to 1000 per call
Track your rate limit headers and set up alerts before hitting limits.
For async operations, use webhooks instead of polling status endpoints.

Quota Management

Beyond rate limits, some resources have monthly quotas:
ResourceStarterGrowthEnterprise
Documents processed1,00010,000100,000+
LLM tokens (Sankalp)1M10M100M+
Storage (GB)101001,000+
Monitors525Unlimited
Check your quota usage in the dashboard or via API:
curl https://api.rotavision.com/v1/usage \
  -H "Authorization: Bearer rv_live_..."
{
  "period": "2026-02",
  "documents_processed": 847,
  "documents_limit": 10000,
  "tokens_used": 2450000,
  "tokens_limit": 10000000,
  "storage_used_gb": 12.4,
  "storage_limit_gb": 100
}

Requesting Higher Limits

If you need higher rate limits:
  1. Growth Plan: Upgrade via dashboard for 10x limits
  2. Enterprise Plan: Contact sales for custom limits
  3. Temporary Increase: Contact support for short-term increases during migrations or load tests