Field names
Every field needs aname. Formcarry stores the value under that name, as sent. A field without a name is not sent by the browser at all.
Six names are read and not stored: _gotcha and _next (described in the Hidden inputs section), submit, and the captcha tokens g-recaptcha-response, h-captcha-response and cf-turnstile-response.
A submission with no fields, or only empty ones, is refused with a 403 that says “Form data can not be empty”.
The visitor’s email
Name the visitor’s address fieldemail. Formcarry takes the first field whose name contains the word email or mail and whose value is an address, and uses it three times:
- as the reply to address of your notification email,
- as the recipient of the auto response, and
- as a signal for the spam filter.
email rather than contact or your address, otherwise formcarry may not find it: the auto response will not send and replying to a notification goes nowhere.
Hidden inputs
_gotcha is a honeypot. Add it hidden and leave it empty. Any submission that fills it is marked as spam:
The
_next field is for paid plans only._next redirects the user to a specific page after they submit, just for this one submission form. It applies only when the form’s thank you URL in the dashboard is empty, otherwise the dashboard URL wins:
Files
Behavior varies depending on your plan. Free plans drop the files and stores the rest of the submission. Paid plans store files, up to the plan’s file storage limit.
enctype="multipart/form-data" on the form. A field can carry several files. From JSON, a field whose value is a data URL, such as data:image/png;base64,..., is stored as a file.
Limits
- 50 MB per request, files included.
- 1 submission per 15 seconds, per form, per IP address. Requests beyond that limit get a
429with the message “Wait 15 seconds before making another request”. - Over the plan’s monthly submissions, formcarry holds the extra submissions aside until the first day of the next month and shows the visitor the thank you page as usual. Upgrading before then moves them into the form. The free plan holds up to 1,900 this way, paid plans hold up to 10,000. For anything beyond that limit, the endpoint answers
401until the new month begins.
Responses
WithAccept: application/json every answer has the same shape: code, status, title and message. The HTTP status matches code.
What’s next
- Thank you pages: show a branded confirmation message after every form submission.
- Spam protection: the blocker, the filter and the honeypot.
- File uploads: storage per plan and what a stored file looks like.