Rate Limits
ATS Screener implements rate limiting to protect the free-tier LLM APIs and prevent abuse.
Limits
Section titled “Limits”| Limit | Value | Scope |
|---|---|---|
| Requests per minute | 10 | Per IP address |
| Requests per day | 200 | Per IP address |
How It Works
Section titled “How It Works”Rate limiting is enforced at the SvelteKit server endpoint level:
- Each request is tracked by client IP address (via
x-forwarded-for) - If the per-minute limit is exceeded, subsequent requests receive
429 Too Many Requests - If the daily limit is exceeded, requests are blocked until the window resets
Security Headers
Section titled “Security Headers”All API responses include:
X-Content-Type-Options: nosniffX-Frame-Options: DENYCache-Control: no-storeHandling Rate Limits
Section titled “Handling Rate Limits”When you receive a 429 response:
{ "error": "rate limit exceeded. try again in 60 seconds."}Best practices:
- Implement exponential backoff in your client
- Cache results locally to avoid redundant requests
- For high-volume use, self-host with your own API keys
Self-Hosted Limits
Section titled “Self-Hosted Limits”When self-hosting, rate limits are configurable. The actual bottleneck becomes your LLM provider’s free tier:
| Provider | Model | RPM | RPD | TPM | TPD |
|---|---|---|---|---|---|
| Gemma 3 27B | 30 | 14,400 | 15K | - | |
| Groq | Llama 3.3 70B | 30 | 1,000 | 12K | 100K |
For the latest limits, see the official documentation: