Skip to Content
FeaturesRate Limiting

Rate Limiting

Available on all plans. See pricing.

Formtorch applies rate limits at multiple layers to protect forms from abuse and ensure consistent performance for all users.

What gets rate limited

Rate limiting applies to the public form submission endpoint (POST /f/{formId}). The dashboard and API are governed by separate limits.

Submission rate limits

LayerLimitScope
IP burst10 requests / 10 secondsPer IP address
IP + form30 requests / minutePer IP per form
Form sustained100 requests / 5 minutesPer form
Workspace quotaYour monthly plan limitPer account

Limits are enforced independently. A request must pass all layers to succeed.

Rate limit responses

When a rate limit is hit, Formtorch returns:

HTTP 429 Too Many Requests Retry-After: <seconds>

The Retry-After header tells clients how long to wait before retrying.

Monthly submission quota

Your plan includes a fixed number of submissions per month:

PlanMonthly submissions
Free150
Starter1,000
Pro5,000

Spam and test submissions don’t count toward your quota. The quota resets on the first day of each calendar month.

When the Free plan quota is reached, the form stops accepting submissions until the next reset. Starter and Pro plans may allow limited overages — see your billing settings for details.

You can monitor your current usage from Settings → Usage in the dashboard. A warning email is sent when you approach your limit.

Backends

Rate limits use Upstash Redis in production for distributed enforcement. In local development without Redis configured, an in-memory fallback is used automatically.

Exemptions

  • Test submissions (_test=true) don’t count against monthly quota but are still subject to per-IP and per-form rate limits
  • Spam submissions don’t count against monthly quota
Last updated on