splitforms.com

HTML form backend

HTML form backend, no PHP or server code.

Set your form's action to https://splitforms.com/api/submit and add a hidden access_key field — every submission is validated, filtered for spam, stored in a dashboard, and emailed to you. No PHP, Node, SMTP, or database.

  • 500 free / mo
  • No server code
  • 2-min setup
A plain HTML form posting to the splitforms hosted backend endpoint

No server code

No PHP, Node, SMTP, or database — one action URL is the whole HTML form backend.

Spam filtered

A honeypot, a form_loaded_at time-trap, and server-side content checks screen bots before your inbox.

Stored and emailed

Every submission lands in your searchable dashboard and inbox within seconds, free on every plan.

Quick start

Point your HTML form at one backend endpoint.

Paste this into any HTML page, set the action to the endpoint, and add your access key. That's the whole integration — no PHP, no build step, no server.

Get a free access key
index.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="redirect" value="https://yoursite.com/thanks" />
  <input type="hidden" name="form_loaded_at" id="form_loaded_at" />

  <label>
    Name
    <input name="name" autocomplete="name" required />
  </label>

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

  <label>
    Message
    <textarea name="message" required></textarea>
  </label>

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />
  <button type="submit">Send</button>
</form>

<script>
  document.getElementById('form_loaded_at').value = Date.now();
</script>

Setup

How to add an HTML form backend.

The whole setup is editing a handful of attributes on a <form> tag you already have — no build step, no dependency to install.

Get a free access key

Sign up at splitforms.com/login — no credit card. Every form gets its own access_key, and the Free plan covers 500 submissions/month across unlimited forms.

Set the form action and method

Set action="https://splitforms.com/api/submit" and method="POST" on your <form> tag — both are native HTML attributes, nothing new to import.

Add the required hidden fields

Add access_key with your key as the value, an empty botcheck honeypot input, and a form_loaded_at field set to the page-load timestamp — all three are shown in the code example above.

Add optional control fields

Drop in subject for a custom notification email subject, redirect for a post-submit thank-you URL, or replyto to set the reply-to address — no backend code for any of them.

Submit a test entry and check your dashboard

Fill out the form yourself. The entry lands in your splitforms dashboard and triggers an email notification within seconds, so you can confirm the endpoint is wired up before going live.

Backend responsibilities

What does an HTML form backend handle?

An HTML form backend is a hosted endpoint that receives your <form>'s POST request instead of a server you'd have to write yourself. Your HTML file only collects fields — splitforms handles the parts that normally require backend code. See the full HTML request/response reference for every field the endpoint accepts.

  • Receives the browser POST as form-urlencoded, JSON, or multipart
  • Validates required fields and confirms ownership via your access_key
  • Filters spam with a honeypot, a time-trap, and content checks
  • Stores every submission in a searchable, exportable dashboard
  • Emails the form owner on every submission, free on every plan
  • Routes Starter-and-above submissions to webhooks and integrations
An HTML form submission received, validated, filtered, stored, and routed to your inbox

When to use it

When should you use an HTML form backend?

Reach for this pattern when you want to own the page markup but not maintain the receiving server. See the static site contact form guide for GitHub Pages, Astro, Hugo, Eleventy, and Jekyll specifics, or contact form without a backend for the broader no-server pattern.

  • Static sites on GitHub Pages, Vercel, Netlify, or Cloudflare Pages
  • Landing pages and simple product pages with no server process
  • Agency client sites and Jamstack builds you don't want to babysit
Static sites, landing pages, and agency client sites using a hosted HTML form backend

Spam protection

How do you stop spam on a plain HTML form?

The HTML form backend screens bots before anything reaches your inbox — no CAPTCHA to bolt on. The full spam stack, reserved field names, and rate limits are covered in the spam protection docs.

  • Hidden botcheck honeypot rejects bots that fill every field
  • A form_loaded_at time-trap flags instant machine submissions
  • Per-form allowed-domain rules block key replay from other origins
  • Rate limited to 6 submissions/min per IP — HTTP 429 beyond that
Honeypot, time-trap, and content checks filtering spam from an HTML form backend

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. And with Stripe connected, your forms can take payments too.

Connect your SplitForms form to Slack, Google Sheets, Mailchimp, Zapier and more
NewTake payments on your formsDeposits, bookings, order forms — submitters check out through Stripe and the money goes straight to your Stripe account. Included on every paid plan.See plans →

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 form backend questions.

View all FAQs
What is an HTML form backend?

An HTML form backend is the server-side endpoint that receives a form POST, validates the fields, filters spam, stores the submission, and can send notifications or webhooks. With splitforms, your static HTML page keeps the normal form tag and posts directly to https://splitforms.com/api/submit — there's no PHP script or server process to write.

Can an HTML form work without PHP?

Yes. Point the form action at https://splitforms.com/api/submit, add your access key as a hidden field, and the browser sends the submission to splitforms instead of a PHP script. Email notifications to the form owner are free on every plan, including Free.

Does this HTML form backend work on static hosting?

Yes. The same form works on GitHub Pages, Vercel, Netlify, Cloudflare Pages, S3, shared hosting, and any site that can render HTML — the request leaves the browser and goes straight to splitforms, so the host never needs to run server code.

How do I stop spam on a plain HTML form?

Add the hidden botcheck honeypot field (it must stay empty) and a form_loaded_at hidden field set to the page-load timestamp. splitforms combines those with server-side content checks and per-form allowed-domain rules to filter spam before it reaches your inbox.

How do I send HTML form data to my email without a server?

Use a hosted backend instead of SMTP. splitforms emails the form owner on every submission, on every plan including Free — no mail server, API key, or SMTP credentials to configure. Just set the form action to https://splitforms.com/api/submit.

Can I read my HTML form submissions with code instead of the dashboard?

Yes. Call GET https://splitforms.com/api/submissions with an Authorization: Bearer header set to your personal access token (Dashboard → MCP). Filter by form, page with limit (up to 100), before, and since; the response is { submissions, has_more }, capped at 60 requests/minute.

Can an HTML form backend post to Slack, Google Sheets, or a webhook?

Yes, on the Starter plan and above. splitforms adds one-click integrations for Google Sheets, Notion, Airtable, Slack, Discord, Telegram, WhatsApp, and Mailchimp, plus signed generic webhooks (HMAC-SHA256, single attempt, 8s timeout, no automatic retries).

Is there a rate limit on the HTML form backend endpoint?

Yes. Each form accepts up to 6 submissions per minute per IP address, with a sustained cap of 20 within a 15-minute window. Requests beyond that return HTTP 429, which protects your inbox from being flooded.

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, Stripe payments, 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/ first 3 years
was $99 · save 40% · new-user price

Pay $59. 3 years sorted.

  • 15,000 submissions / mo
  • Unlimited forms
  • Everything in Pro
  • $59 for 3 years, then $59/year
  • Long-term discount
  • Priority support included
  • Vote on the roadmap

No credit card required on Free • Cancel anytime