Skip to content
Docs Rate limits & quotas

Docs

Rate limits & quotas

Two different limits can stop a submission, and they exist for different reasons: rate limiting is anti-abuse, and it's free to hit. The monthly quota is your plan's included allowance, and it's what you're paying for.

Rate limit Monthly quota
Purpose Stop floods and abuse Your plan's included submission allowance
Window Rolling 1 hour Calendar month
Error rate_limited, 429 quota_exceeded, 402
Counts against your plan? No Yes

Rate limiting

Each endpoint has a rate limit — 20 requests per hour by default, adjustable per endpoint in Settings. It's enforced in two places at once, both using that same number:

  • Per endpoint — total submissions to that one endpoint URL, from anyone.
  • Per submitting IP address — so one visitor (or bot) can't eat the whole endpoint's allowance by themselves. IPv6 addresses are bucketed by their /64 prefix, since a single visitor can have many addresses within that range.

Whichever limit is hit first returns rate_limited (429). A request blocked here never reaches spam filtering or delivery, and — since it was never a submission that could have counted — it doesn't touch your monthly quota either.

Monthly quota

Your plan includes a fixed number of submissions per calendar month, resetting on the 1st. Only submissions that actually get processed count — a request blocked by rate limiting, the honeypot, or Turnstile never reaches the quota check, and a submission held by spam filtering doesn't count either, since nothing was delivered. An autoresponder reply, when enabled, counts as one additional unit.

Reaching your quota returns quota_exceeded (402). Paid plans allow a limited, metered amount of overage past the included quota before hard-blocking — the Free plan blocks right at its limit. See plans for exact numbers per tier.

Try it against your own form

Create an endpoint and get a working URL in under a minute — free plan, no credit card.

Start for free