splitforms.com

HTML contact form

Free HTML contact form code.

Paste a working HTML contact form into any page and every submission is spam-filtered, stored, and emailed to you — no PHP, backend, or JavaScript of your own.

  • 500 free / mo
  • No PHP backend
  • Zero JavaScript
Copy-paste HTML contact form code posting to the splitforms endpoint

No backend needed

No PHP, Node, or server route of your own — the splitforms endpoint is the backend for your HTML contact form.

Spam filtered

A honeypot, time-trap, and rate limits screen bots out of every HTML form submission before your inbox.

Instant email

Every contact form submission is stored in a searchable dashboard and emailed to you within seconds.

Copy-paste HTML

HTML contact form code, ready to paste.

Paste this HTML contact form into any page, point the action at the endpoint, and replace YOUR_ACCESS_KEY with the key from your dashboard. That's the whole integration — no server, no build step. Need more variations (dark mode, multi-column, file upload)? See the HTML contact form template collection.

Get your free access key
contact.html
<form action="https://splitforms.com/api/submit" method="POST">
  <!-- Required: your free access key -->
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">

  <!-- Optional: redirect after submit -->
  <input type="hidden" name="redirect" value="https://yoursite.com/thank-you">

  <!-- Name field -->
  <label for="name">Name</label>
  <input type="text" id="name" name="name" placeholder="Your name" required>

  <!-- Email field -->
  <label for="email">Email</label>
  <input type="email" id="email" name="email" placeholder="you@example.com" required>

  <!-- Message field -->
  <label for="message">Message</label>
  <textarea id="message" name="message" rows="5" placeholder="Your message" required></textarea>

  <!-- Honeypot spam protection (bots fill this, humans don't see it) -->
  <input type="checkbox" name="botcheck" class="hidden" tabindex="-1" autocomplete="off">

  <!-- Submit button -->
  <button type="submit">Send Message</button>
</form>

Setup

How to add a contact form to any HTML page.

Three steps, about a minute. Sign up for a free access key, paste the form, and watch submissions land in your dashboard within seconds.

Get your free access key

Sign up at splitforms.com/login with your email. Your free form API key is generated instantly — no credit card required. Free includes 500 submissions per month.

Copy the contact form HTML

Copy the HTML contact form code below and paste it into any page on your website. Replace YOUR_ACCESS_KEY with the key from your dashboard.

Submit a test entry

Fill out the form and submit. The submission appears in your splitforms dashboard within seconds, and you'll receive an email notification.

What happens

What happens when someone submits your HTML contact form?

The moment a visitor hits Send, the browser's native POST hands the data to splitforms. From there it's received, filtered, stored, emailed, and — on paid plans — routed onward to your connected integrations, all without a server of your own.

  • Received at the endpoint via a standard HTML form POST
  • Spam filtered — honeypot, time-trap, content heuristics, rate limits
  • Stored in a searchable dashboard, exportable on paid plans
  • Emailed to you within seconds, free on every plan
  • Routed to Slack, Discord, Sheets, Notion, or a webhook on paid plans
An HTML form submission received, filtered, stored, emailed, and routed onward

Spam protection

How do you stop spam on an HTML contact form?

The pasted form already ships with a botcheck honeypot, and splitforms adds a time-trap, content heuristics, and rate limiting on every request. It all runs server-side, so you can keep the page entirely JavaScript-free — a working reCAPTCHA alternative with nothing for visitors to solve.

  • Honeypot field bots fill in but humans never see
  • form_loaded_at time-trap rejects unrealistically fast submissions
  • Rate limiting at 6 submissions per minute per IP
  • Optional reCAPTCHA v2 with your own site key — not required
Spam bots blocked before an HTML contact form submission reaches your inbox

Customize

How do you customize an HTML contact form?

Every field name becomes a column in your dashboard, so adding fields is just adding inputs. Prefer a styled starting point? See the Tailwind CSS forms guide for a dark-mode-ready template with validation states.

  • Add fields — each name becomes a dashboard column
  • Redirect visitors to a thank-you page with a hidden redirect field
  • Set the notification email subject with a hidden subject field
  • Reply straight to the visitor with a hidden replyto field
  • Attach files with an <input type="file"> on paid plans
Customized HTML contact form fields shown as columns in the splitforms dashboard

How SplitForms works

From form to workflow in 3 simple steps.

Connect your form, collect every submission, and send data where it needs to go — without building backend infrastructure.

A SplitForms contact form submission launching straight to your inbox

Add your endpoint

Point your form to your unique SplitForms endpoint. That's it.

HTML form pointing at a SplitForms submit endpoint

Receive submissions

We instantly capture and organize every submission in your inbox.

Submissions inbox with searchable leads and status pills

Route anywhere

Send data to email, spreadsheets, CRMs, webhooks, and 7,000+ apps.

Generic integration tiles for email, sheets, chat, CRM, automate, and webhook

No credit card required. Set up in under 60 seconds.

Connect & automate

Connect your favorite tools and automate everything

SplitForms works with the destinations you route to and the platforms you build on — from Slack and Sheets to WordPress, Shopify, and Next.js.

Connect your SplitForms form to Slack, Google Sheets, Mailchimp, Zapier and more

Trusted by indie teams and agencies shipping forms worldwide

PETAL/COKRAFT.DELINEAR-XBUILD.DEVSTUDIO 71MERIDIANFRAME&CO

Testimonials

Loved by developers shipping at every scale.

40 quotes on record — from indie hacks to agency migrations.

Questions

HTML contact form questions.

View all FAQs
How do I create a contact form in HTML?

Create a <form> element, set the action attribute to a form backend endpoint like https://splitforms.com/api/submit, add a hidden input with your access key, then add your input fields (name, email, message) and a submit button. The form backend handles storage, email notifications, and spam filtering — no server-side code required.

Can I use an HTML contact form without a backend?

Yes. Point your form's action attribute at a hosted form backend like splitforms. The backend receives the POST request, stores the submission, sends you an email, and handles spam filtering. You don't need PHP, Node.js, Python, or any server-side code of your own.

Does the HTML contact form code work on static sites?

Yes. The form is a standard HTML form POST. It works on any static site host including GitHub Pages, Netlify, Vercel, Cloudflare Pages, Amazon S3, and any web server that can serve HTML files.

Do I need JavaScript for an HTML contact form?

No. The form uses native HTML form submission. JavaScript is optional — you can add it for custom validation or AJAX submission, but the form works perfectly without any JavaScript at all.

How do I protect my HTML contact form from spam?

The form above already includes a botcheck honeypot field — a hidden input bots fill in but humans never see. splitforms also runs a form_loaded_at time-trap (rejects submissions sent in under a couple of seconds), server-side content heuristics, and rate limiting (6 submissions/minute per IP) on every request automatically. You can add reCAPTCHA v2 with your own site key for an extra layer, but it isn't required.

Is the HTML contact form code actually free?

Yes. splitforms's Free plan covers unlimited forms, 500 submissions/month, email notifications, and spam filtering with no credit card required. Pro is $5/mo for 5,000 submissions plus CSV/XML/PDF exports, webhooks, and an auto-responder; Pro is $5/mo for 5,000 submissions plus CC/BCC and priority support.

Can I add a file upload field to my HTML contact form?

Yes — add <input type="file" name="attachment">. File storage requires a paid plan's Storage integration and supports up to 5 files per submission, 5 MB each.

How do I get notified when someone submits the form?

Email notifications to the form owner are included free on every plan, including Free. You'll get an email with the submission details as soon as someone submits, no setup required beyond your access key.

Simple pricing

Start free. Scale when you need more.

Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, and higher submission limits.

Free

$0

Free forever

 
Best for testing

For side projects and indie devs.

  • 500 submissions / mo
  • Unlimited forms
  • Email notifications included
  • Honeypot spam filtering
  • Submissions dashboard
  • MCP setup stays free
  • No credit card required

3-Year

$59/ 36 months
was $99 · save 40% · new-user price

Pay $59. 3 years sorted.

  • 15,000 submissions / mo
  • Unlimited forms
  • Everything in Pro
  • Renews every 3 years
  • Long-term discount
  • Priority support included
  • Vote on the roadmap

No credit card required on Free • Cancel anytime