Insane Forms

Quickstart

A plain HTML form that sends Submissions to Insane Forms.

1. Create a Form

Sign in at app.insaneforms.com with a magic link, GitHub or Google. Create a Workspace and choose its Region, EU or US. The Region can't be changed later, so pick the one your visitors' data should live in (see Regions and your data).

Add a Project for your website, then a Form inside it. The Form's Setup tab shows its endpoint URL and ready-made snippets:

2. Point your form at it

Set the form's action to the endpoint URL and its method to POST. Name your fields however you like: the endpoint stores every field it receives.

The _gotcha field is the honeypot. People never see it, so a Submission that fills it in is marked as Spam. Spam protection has the other checks.

3. Send a test Submission

Open the page, fill in the form and send it. The browser follows a 303 redirect to the Form's success URL, or to a hosted thank-you page if you haven't set one. Set the success URL in the Form's General tab. It has to start with http:// or https://.

You can also send one from a terminal. Ask for JSON to see the answer instead of the redirect:

The Submission appears in the Project's inbox in the dashboard, marked Unread. If the Form has Recipients, each confirmed one gets a Notification too.

Running Insane Forms yourself? In development the endpoint is http://submit.localhost:<port>/f/YOUR_FORM_ID, on the dashboard's port.

What the endpoint accepts

  • Bodies: application/x-www-form-urlencoded (what a plain form sends), multipart/form-data (for file uploads) and JSON. A request with any other Content-Type, or none, gets 400 invalid_body.
  • Up to 100 fields, with up to 65,536 characters in each value.
  • Up to 1 MB for a urlencoded or JSON body, and 4.5 MB for a multipart body, files included.
  • A field name that appears more than once, such as a group of checkboxes, arrives as a list of values.

Anything larger gets 413 payload_too_large.

Gotchas

  • Errors always come back as JSON, even for a plain HTML post. The visitor's browser shows the JSON, so catch likely failures before the form is sent, or send with fetch and show your own message.
  • A Form you've switched off answers 404 form_not_found, the same as one that doesn't exist.
  • The beta Plan takes 1,000 Submissions a month per Workspace. Spam doesn't count. Past the limit the endpoint answers 429 plan_limit_reached.
  • If the Form has Allowed Origins, a plain HTML post is checked too. The page needs to be one of them.

Next steps

On this page