Reference
Limits, quotas and responses
Every number on this page comes from the same settings the app enforces, so it's always current. The same limits appear in your verification email and in /llms.txt.
Signing up
| What | Limit |
|---|---|
| Email address | One you'll keep, on a domain that takes mail. Disposable email services and made-up domains are refused. |
| Address with forms already | A form created for it without logging in waits for the owner's approval by email. It accepts nothing until then, at most 3 can wait at once, and it's deleted after 7 days if not approved. |
| Forms | 10 an hour from one IP address, and 20 per account. |
Before you verify
A new form works at once, but until you click the link in your verification email:
| What | Limit |
|---|---|
| Submissions held | Up to 25 across your forms. We'll hold them safely while you confirm your email. Any after the first 25 aren't saved. |
| Spam checks and emails | Paused until you verify. As soon as you click the link, we check any held messages for spam and email the real ones to you. |
| Time to verify | 7 days from signup. If you haven't verified by then, we clear out the unverified forms and any held messages. |
Daily and storage quotas
Once you've verified, these quotas apply to your whole account, however many forms you have. They keep one busy or attacked form from using up the service for everyone. These are the standard numbers. Some accounts have their own, and the line under Your forms on your dashboard shows yours.
| What | Limit |
|---|---|
| Submissions | 500 per day (rolling 24 hours) across your forms. If you hit that, new submissions are turned away until the count drops, and we send you a quick heads-up email. |
| From one visitor | 50 of those per day from any one IP address, so a single visitor can't use up your whole quota and close your forms. |
| Notification emails | 200 per day. On busier days past 200, submissions are still saved to your dashboard, and to your Google Sheet if you've connected one. |
| Stored submissions | Up to 10,000 in your account. Beyond that, we clear out the oldest ones each night to make room. |
| History | Kept for 90 days on your dashboard. Everything synced to your Google Sheet stays yours. |
| Forms | Up to 20 per account. |
If your forms hit the submission quota, it's almost always a bot. Pause the form under attack from your dashboard, and new posts stop counting.
Each submission
| What | Limit |
|---|---|
| Size | Up to 32 KB and 100 fields per submission. |
| File uploads | Never supported. Text fields only (submissions with files are rejected). |
| Duplicates | The same post from the same visitor to the same form within 10 minutes is ignored. |
Submits.dev doesn't take file uploads and never will. Remove any <input type="file">
from your form. A post that carries a file gets a 422, or a 413 if the file is over the size limit.
Rate limits
These stop floods before they reach your form.
| What | Limit |
|---|---|
| Posts to one form | 300 a minute. |
| Posts from one visitor | 30 a minute, across all forms. |
| Creating forms | 10 an hour from one IP address. |
| Login emails | 3 every 15 minutes and 10 a day for one address. |
Responses
What POST /f/TOKEN answers with. Browser forms see an error page. JavaScript callers
get { "ok": false, "error": "..." }.
| Code | Meaning |
|---|---|
| 200 | Received. JSON callers get the submission's id. |
| 303 | Received. Browser forms are redirected to the thank-you page or your redirect URL. |
| 400 | The body couldn't be read. |
| 404 | No form has that URL. |
| 410 | The owner paused this form. Nothing was stored. |
| 403 | The form is waiting for its owner's approval, or the owner hasn't verified their email and their forms already hold 25 submissions. Nothing was stored. |
| 413 | Over 32 KB or over 100 fields. |
| 422 | No fields, a JSON body that isn't an object, or a file upload. |
| 429 | Too many posts, the account reached its daily submission quota, or one visitor sent their share of it. The Retry-After header says how many seconds to wait. |