Rate Limits
NeuralRepo enforces per-user daily rate limits to ensure fair usage and service stability. Limits apply only to API key and Bearer token authenticated requests. Web UI sessions using cookie authentication are exempt from rate limiting.
Daily Limits
Section titled “Daily Limits”| Plan | Limit |
|---|---|
| Free | 100 requests per day |
| Pro | 10,000 requests per day |
Limits are applied per authenticated user. Multiple API keys belonging to the same user share the same daily quota. The counter resets at midnight UTC.
Retry Behavior
Section titled “Retry Behavior”When you exceed your daily limit, the API responds with 429 Too Many Requests:
{ "error": "Rate limit exceeded"}When you receive a 429 response, use exponential backoff to retry. Start at 1 second and double on each consecutive 429. Do not retry immediately — rapid retries will not help since the limit is daily.
Example: Retry with Backoff
Section titled “Example: Retry with Backoff”async function fetchWithRetry(url, options, maxRetries = 3) { for (let attempt = 0; attempt < maxRetries; attempt++) { const res = await fetch(url, options);
if (res.status !== 429) return res;
const delay = Math.pow(2, attempt) * 1000; await new Promise((resolve) => setTimeout(resolve, delay)); }
throw new Error("Rate limit exceeded after retries");}Best Practices
Section titled “Best Practices”- Cache responses when possible to reduce request volume.
- Batch operations instead of making many individual requests.
- Spread requests evenly across the day rather than sending bursts.
- Monitor your usage and consider upgrading to Pro if you consistently approach the Free plan limit.
Status Codes
Section titled “Status Codes”| Status | Meaning |
|---|---|
429 Too Many Requests | Rate limit exceeded; wait and retry |