Get Started
Rate Limits
Understanding Vetigen API rate limits, throttling, and retry strategies.
Rate Limits
The Vetigen API enforces rate limits to ensure fair usage and protect service stability.
Default Limits
| Limit Type | Limit | Window |
|---|---|---|
| Per API key | 1,000 requests | Per hour |
| Per endpoint | 100 requests | Per minute |
| Burst | 50 requests | Per 10 seconds |
Rate Limit Headers
Every API response includes headers indicating your current rate limit status:
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 847
X-RateLimit-Reset: 1712580000| Header | Description |
|---|---|
X-RateLimit-Limit | Total requests allowed in the window |
X-RateLimit-Remaining | Remaining requests in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
When You Hit a Rate Limit
When you exceed the rate limit, you'll receive a 429 Too Many Requests response:
{
"success": false,
"error": {
"code": "RATE_LIMIT.EXCEEDED",
"message": "Too many requests. Please retry after 47 seconds.",
"severity": "warning",
"details": {
"retry_after": 47,
"reset_at": "2026-04-11T14:00:00Z"
}
}
}Retry Strategy
Implement exponential backoff when you receive a 429 response:
async function fetchWithRetry(url, options, maxRetries = 3) {
for (let attempt = 0; attempt < maxRetries; attempt++) {
const response = await fetch(url, options);
if (response.status !== 429) {
return response;
}
const retryAfter = parseInt(response.headers.get('Retry-After') || '1', 10);
const delay = retryAfter * 1000 * Math.pow(2, attempt);
console.log(`Rate limited. Retrying in ${delay / 1000}s...`);
await new Promise((resolve) => setTimeout(resolve, delay));
}
throw new Error('Max retries exceeded');
}Best Practices
- Cache responses when possible — avoid redundant requests
- Use pagination efficiently — request only what you need with
page_size - Implement retry logic with exponential backoff
- Monitor headers — check
X-RateLimit-Remainingbefore large batch operations - Batch requests — fetch a list instead of individual items where possible
Increasing Limits
If your integration requires higher rate limits, contact developer support with your use case.