ARouter enforces rate limits to ensure fair access and protect service availability. Making additional accounts or API keys does not increase your rate limits — capacity is governed globally per account.Documentation Index
Fetch the complete documentation index at: https://docs.arouter.ai/llms.txt
Use this file to discover all available pages before exploring further.
Checking Your Current Limits
To check the rate limit or credits remaining on an API key, make aGET request to /v1/key:
- Python
- Node.js
- cURL
| Field | Description |
|---|---|
limit | Credit limit for this key (null = unlimited) |
limit_reset | When the limit resets (daily, weekly, monthly, or null) |
limit_remaining | Credits remaining before the key is blocked |
usage | All-time credits consumed |
usage_daily / _weekly / _monthly | Usage for the current UTC period |
is_free_tier | Whether the account has purchased credits before |
Free Tier Limits
Models with IDs ending in:free are available without purchasing credits, subject to these limits:
| Condition | RPM | RPD |
|---|---|---|
| No paid credits purchased | 20 req/min | 50 req/day |
| At least $5 in credits purchased | 20 req/min | 1,000 req/day |
Free tier limits apply to free model variants (
:free suffix) only. Paid models require a credit balance.DDoS Protection
Cloudflare’s DDoS protection automatically blocks requests that dramatically exceed reasonable usage patterns. These blocks are temporary and lift once traffic normalizes.Negative Balance
If your account has a negative credit balance, you may see402 Payment Required errors — including on free models. Adding credits to bring your balance above zero restores access.
Per-Key Spending Limits
You can configure spending limits on individual API keys to control costs:- Limit: Maximum credits the key can consume
- Reset interval:
daily,weekly,monthly, ornever
Model-Specific Limits
Some high-demand models may have additional per-model rate limits independent of your account’s overall quota. If you encounter429 Too Many Requests errors on a specific model, consider:
- Using the
:flooror:nitrovariant to access different provider endpoints - Specifying an ordered candidate model list to spread load across models
- Implementing exponential backoff and retry logic in your client