Rate Limits
Overview
VecTrade uses a token bucket rate limiting algorithm per API key. Limits vary by plan tier and endpoint category.Plan Limits
| Plan | Requests/min | Monthly API calls | Burst | Concurrent |
|---|---|---|---|---|
| Free | 30 | 10,000 | 5 | 2 |
| Standard | 120 | 100,000 | 20 | 5 |
| Professional | 300 | 500,000 | 50 | 20 |
| Enterprise | Custom | Custom | Custom | Custom |
Rate Limit Headers
Every response includes rate limit information:| Header | Description | Example |
|---|---|---|
X-VQ-RateLimit-Limit | Max requests per window | 1000 |
X-VQ-RateLimit-Remaining | Requests remaining in window | 987 |
X-VQ-RateLimit-Reset | Window reset time (Unix timestamp) | 1715800060 |
Retry-After | Seconds to wait (only on 429) | 2 |
Handling Rate Limits
SDK Auto-Retry
Both official SDKs automatically handle rate limiting with exponential backoff:Manual Rate Limit Monitoring
Optimization Strategies
1. Use Batch Endpoints
Instead of individual requests per symbol, use batch endpoints:2. Use Webhooks for Real-Time Updates
Instead of polling for changes, subscribe to webhooks:3. Cache Responses Client-Side
4. Use Field Filtering
Request only the fields you need to reduce payload size:Quota Exceeded vs Rate Limited
| Scenario | HTTP Status | Error Type | SDK Exception | Retryable |
|---|---|---|---|---|
| Too many requests/minute | 429 | rate_limit_error | RateLimitError | Yes (auto) |
| Monthly quota exhausted | 429 | quota_exceeded | QuotaExceededError | No |