Quotas and rate limits

Two independent limits: how many requests you get per month, and how fast you may send them.

Monthly quota

Each plan includes a fixed number of billable requests per billing period. When it runs out, further requests are refused with quota_exceeded until the period resets. There is no overage billing. You can never receive a surprise invoice, because the only way to spend more is to choose a bigger plan.

What counts

On a paid plan one rule covers every case: a request is billable if and only if you received a check result. The free plan is stricter, and the two lines below say where.

Reading your quota from headers

Every response to an authenticated request carries your current position, already including the request you just made.

X-RateLimit-Limit: 500000
X-RateLimit-Remaining: 371557
X-RateLimit-Reset: 1788220800

X-RateLimit-Reset is a Unix timestamp for the end of the current period. These headers describe the monthly quota only. The per-minute limit signals itself with a Retry-After header and the rate_limited code instead.

Requests per minute

Separately from the monthly quota, each plan has a rate ceiling measured over a sliding minute. Exceeding it returns rate_limited with a Retry-After header, and costs nothing. This limit applies to every request, including the free ones. A refused request still takes work to refuse.

Plan Requests per month Requests per minute
Free 1,000 60
Starter 50,000 300
Pro 500,000 1,200
Business 5,000,000 6,000

Changing plan mid-period

A plan change moves the limit, not the counter. Upgrading gives you the extra headroom immediately. Downgrading below what you have already used blocks further requests until the period ends. This is deliberate: a reset on every change would make the quota meaningless.

Retrying

Respect Retry-After. On a rate limit it is a few seconds; on an exhausted quota it points at the end of your billing period, so retrying before then will not help. Do not retry a 4xx other than 429. The answer will be the same.