Limits are per key and per account, checked on every request, and reported on every answer after the key check.
| Per minute | Per day | |
|---|---|---|
| Each key | 10 requests | 200 requests |
| Your account, all its keys together | 20 requests | 400 requests |
All of them apply at once, and whichever runs out first refuses the request. Every request counts, including ones refused as bad requests. The allowance refills steadily rather than resetting on the clock: after using all 10, one more is available about every 6 seconds.
Every answer after the key check, a 429 included, has:
| Header | Meaning |
|---|---|
| X-RateLimit-Limit | The key's requests a minute |
| X-RateLimit-Remaining | Requests left in the minute allowance right now |
| X-RateLimit-Reset | Unix time (seconds) when the minute allowance is full again |
| X-RateLimit-Limit-Day | The key's requests a day |
| X-RateLimit-Remaining-Day | Requests left in the day allowance right now |
A 401 has none of these: a caller without a valid key learns nothing about anyone's allowance.
Going over a limit returns 429 with a Retry-After header and retry_after_seconds in the body. They say the same thing:
{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded. Try again in 6 seconds.",
"retry_after_seconds": 6
}
}Wait that long before retrying. A key that keeps sending anyway is paused for longer and longer, up to an hour. The reference Discord bot catches the 429 and tells the channel how long to wait: see RateLimited in Discord Bot, and Examples for a retry loop.
Refusals show in the key's request log on the dashboard, at most once a minute. If you're refused with light traffic, check there: something else may be using the key.
There's also a cap on every key together, which protects the service. When it's reached, requests get 503 capacity_exceeded (see Errors). Unlike a 429, it isn't about anything you did: back off and retry.
Addresses are limited too, before the key is looked at: a server sending too many requests, or too many invalid keys, is refused with 429 for a while.
The free tier is modest on purpose. If you have a real need for more, write to the contact address in the Terms of Service. There's no paid tier.