FormSubmit turns any HTML form into a working form with one change: set the form's action to your FormSubmit endpoint. Every submission is filtered for spam, stored in your dashboard, emailed to you and (optionally) forwarded to webhooks, Slack, Discord, Google Sheets, Airtable, Mailchimp or Kit.
contact.html
<form action="https://formsubmit.app/f/YOUR_FORM_ID" method="POST">
<input type="email" name="email" required>
<textarea name="message" required></textarea>
<input type="text" name="_gotcha" style="display:none">
<button type="submit">Send</button>
</form>Start here
- Quickstart — create a form and receive your first submission in about a minute.
- Endpoint reference — accepted content types, responses, redirects and error codes.
- Control fields — special
_fields like_redirect,_subjectand_replyto. - AJAX & JavaScript — submit with
fetchand handle JSON responses.
Popular topics
- File uploads — plain multipart and direct browser uploads for large files.
- Spam protection and captcha.
- Email notifications — templates, recipients, digests and autoresponders.
- Webhooks — payload format, signature verification and retries.
- Google Sheets — with the minimal
drive.filepermission.
How FormSubmit works
- You create a form in the dashboard and get an endpoint:
https://formsubmit.app/f/{id}. - Your website posts to that endpoint — from plain HTML, JavaScript, WordPress, Webflow, Framer, or an AI-built site.
- FormSubmit checks the domain allowlist, rate limits, captcha and spam signals, then stores the submission.
- The response redirects the visitor (HTML) or returns JSON (JavaScript).
- In the background, we send your notification email, the optional autoresponder, and deliver to each enabled integration with automatic retries.
Looking for framework-specific instructions? See the guides or build a form visually in the form generator.