Docs menu
Guides
API reference
Rate limits and quotas
Two kinds of limit apply: per-minute rate limits on each endpoint, and the monthly screening quota of your plan. Test traffic has its own limits and never uses the quota.
Last updated
Per-minute limits
| Endpoint | Live limit | Test limit | Headers |
|---|---|---|---|
/verify | Your plan's limit, per account | 300 per account | X-RateLimit-*; Retry-After on 429 |
/check | Your plan's limit per account, and 30 per client IP | 300 per account, and 30 per client IP | Retry-After on 429 |
/siteverify | The key's own limit: 1,200 for a live key as created | 300 per test key | X-RateLimit-*; Retry-After on 429 |
/feedback | Your plan's limit, per key | Your plan's limit, per key | X-RateLimit-*; Retry-After on 429 |
/reviews/{reviewId} | 60 per key | 60 per key | Retry-After on 429 |
Your plan's per-minute limit:
| Plan | Requests per minute | Screenings per month |
|---|---|---|
| Free | 60 | 1,000 |
| Starter | 600 | 25,000 |
| Pro | 600 | 250,000 |
| Enterprise | 1200 | Contact us |
Live and test traffic use separate buckets, so tests never slow down production. /verify and /check have separate buckets too. Over a limit, the answer is 429 RATE_LIMIT_EXCEEDED; wait the Retry-After seconds.
Monthly quota
Each live screening by /verify or /check counts once against your plan's monthly quota. /siteverify, /feedback, /reviews and test traffic never count. The month is the UTC calendar month.
You get an email at 80% and 100% of the quota. Past 100% screening goes on in a grace margin; at 110% of the quota the API stops screening until the next month or an upgrade:
/verifyand/checkanswer402 QUOTA_EXCEEDEDwithused,limitandresetsAt./checkissues no token, so/siteverifyanswers HTTP 200 withsuccess: falseanderror: "QUOTA_EXCEEDED": a different shape from the 402, so handle both.
Test mode
300 requests per minute per account on each of /verify and /check, 300 per minute per test key on /siteverify, and 10,000 test screenings (/verify and /check) per account per UTC day (then 429 TEST_LIMIT). See Test mode.
Headers
| Header | Meaning |
|---|---|
X-RateLimit-Limit | Requests allowed in the current one-minute window. |
X-RateLimit-Remaining | Requests left in the current window. |
X-RateLimit-Reset | Seconds until the current window ends. |
X-Quota-Limit | Live requests only: the monthly quota of the plan. |
X-Quota-Used | Live requests only: screenings counted this month, this one included. |
X-Quota-Reset | Live requests only: when the count resets (the start of the next UTC month). |
X-Quota-State | Live requests only: ok, warn (80% used), limit (100%), grace (over 100%, still served) or blocked. |
Retry-After | Seconds to wait before trying again. |
Browser code can read these headers: they are listed in Access-Control-Expose-Headers.