Quickstart
Create a form, point your HTML at it and receive your first submission. No backend code, no SDK.
Before you start
You need a MakeTheForm account (the free plan is fine) and an HTML form you can edit. If you do not have one handy, copy the example in step 2.
- 1
Create a form
Sign in to the dashboard and click New form. Give it a name you will recognise later, like
contact, and choose which email address gets notified. The endpoint exists the moment you save.contactActiveYour endpoint
https://mtform.co/f/your-form-keyCopyCopy the endpoint. It is public by design: it only accepts submissions, it cannot read them back. We also send a confirmation link to the notification address; until it is confirmed, submissions are stored but not emailed.
- 2
Point your form at the endpoint
Set your form's
actionto the endpoint and itsmethodtoPOST. Every input needs aname: that becomes the field name in your submission.<form action="https://mtform.co/f/your-form-key" method="POST"> <label> Name <input name="name" autocomplete="name" required> </label> <label> Email <input type="email" name="email" autocomplete="email" required> </label> <label> Message <textarea name="message" required></textarea> </label> <!-- Spam trap: hidden from people, tempting to bots. Leave it empty. --> <input type="text" name="_mtf_honeypot" tabindex="-1" autocomplete="off" aria-hidden="true" style="position:absolute;left:-9999px" > <button type="submit">Send</button> </form>Keep your own markup. MakeTheForm never injects scripts or styles. Anything that renders a standard form works, including Webflow and Framer. The hidden_mtf_honeypotfield in the snippet is the spam trap; leave it empty. - 3
Send a test submission
Submit the form in your browser, or send a request from your terminal. Add
Accept: application/jsonto get a JSON response instead of a redirect.curlcurl -X POST https://mtform.co/f/your-form-key \ -H "Accept: application/json" \ -d email=you@example.com \ -d message="Hello from the quickstart"Response · 201 Created{ "ok": true, "submission_id": "5f0c2b8e-3d1a-4c6e-9b7f-2a8d4e6c1b90", "message": "Submission received" }On the Free plan, notifications arrive as one daily digest email at 9:00 in your timezone. The submission still shows in your dashboard immediately. Pro and Agency send each one the moment it arrives. - 4
Check the dashboard
Open Submissions in the dashboard. Your test is at the top.
Form From Status Received contact you@example.com New Just now Before you go live, add your site under Allowed domains in the form's settings, so only your own pages can submit to the endpoint from a browser. See Allowed domains for how matching works.
Next steps
That is the whole integration. From here, most people add one of these:
Want the details of every status code? See the API reference.