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 TypeLimitWindow
Per API key1,000 requestsPer hour
Per endpoint100 requestsPer minute
Burst50 requestsPer 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
HeaderDescription
X-RateLimit-LimitTotal requests allowed in the window
X-RateLimit-RemainingRemaining requests in the current window
X-RateLimit-ResetUnix 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-Remaining before 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.

On this page