HTML form

Use a standard HTML form and point it at your formbuild.io endpoint. No JavaScript or backend required on your side.

Endpoint

Your form must POST to:

https://formbuild.io/in/YOUR_FORM_ID

Replace YOUR_FORM_ID with the ID shown on your form's Integration tab in the dashboard.

Method and encoding

Set method="post". We accept three content types:

  • application/x-www-form-urlencoded — the default for HTML forms. Use this for simple text fields.
  • multipart/form-data — alternative encoding. Set enctype="multipart/form-data" on the form tag.
  • application/json — send a JSON object via fetch() or from an SPA. Each key is a field name and each value is stored as a string. See AJAX & fetch().

Field names

Every input, textarea, or select with a name attribute is sent and stored. The name becomes the label shown in your Inbox (e.g. email, message, phone). You can use any names you like.

Special names: if your form includes a field named email, _replyto, or replyto, we automatically validate it as an email address. A non-empty value that isn't a valid email will be rejected.

Cross-origin (CORS)

The submission endpoint allows requests from any origin. We respond to OPTIONS preflight with 204 and Access-Control-Allow-Origin: *, so you can embed forms on other domains or submit via fetch() from a different site.

Honeypot field (optional)

In your form settings under Spam, you can set a honeypot field name. Add a hidden input with that name to your form. If a bot fills it in, we silently discard the response (returning a success status so the bot doesn't retry). See Spam protection.

Preview

You can preview and test your form from the dashboard. Open the form, go to the Integration section, and click Preview form. You'll see the form as visitors see it and can submit a test — it shows up in your Inbox like a real response.

Minimal example

<form action="https://formbuild.io/in/YOUR_FORM_ID" method="post">
  <label for="name">Name</label>
  <input name="name" id="name" type="text" required />

  <label for="email">Email</label>
  <input name="email" id="email" type="email" required />

  <label for="message">Message</label>
  <textarea name="message" id="message"></textarea>

  <button type="submit">Send</button>
</form>

← Quick start · Next: AJAX & fetch() →