Create your free access key
Sign in at splitforms.com/login and copy the access key for your form from the dashboard. Free tier: 500 submissions/month, unlimited forms, no credit card.
Form submission service
Point any HTML form at one endpoint — every submission is received, stored, emailed to you, and screened for spam. No server, no database, no backend code.

One endpoint replaces your server route, database, and mailer. Point any HTML form at it — there's nothing to install or host.
A honeypot, a time-trap, and server-side heuristics screen bots before your inbox — reCAPTCHA v2 is optional, never required.
Unlimited forms, email notifications, and spam filtering on the free plan — no credit card, no trial clock.
Quick start
Drop this into any page, point the action at the endpoint, and add your access key. That's the whole integration — no server, no build step.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
<label>Name
<input type="text" name="name" required />
</label>
<label>Email
<input type="email" name="email" required />
</label>
<label>Message
<textarea name="message" rows="4" required></textarea>
</label>
<!-- Honeypot — leave empty, bots fill every field -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off" />
<!-- Time-trap — rejects submissions sent in under ~2 seconds -->
<input type="hidden" name="form_loaded_at" value="" />
<script>
document.currentScript.previousElementSibling.value = Date.now();
</script>
<button type="submit">Send</button>
</form>Setup
No server, no SMTP setup. These are the same five steps whether you paste the form into raw HTML, a React component, or a no-code builder — a two-minute integration.
Sign in at splitforms.com/login and copy the access key for your form from the dashboard. Free tier: 500 submissions/month, unlimited forms, no credit card.
Set your form's action to https://splitforms.com/api/submit and method to POST — or call the same URL with fetch() and FormData/JSON from React, Vue, or a chatbot backend.
Drop in the botcheck honeypot input and the form_loaded_at time-trap field shown below. Both ship pre-wired in every splitforms template and start filtering spam immediately — no CAPTCHA required.
Submit the form once. The message lands in your dashboard right away and an owner-notification email goes out — email notifications are included free on every plan, not a paid add-on.
Need the data somewhere else automatically? Pro ($5/month) adds signed webhooks and one-click integrations — Slack, Discord, Google Sheets, Notion, Airtable, Mailchimp — plus CSV/XML/PDF export.
What it handles
A form only looks simple. The service behind it has to receive the request, filter spam, keep a copy, notify you, and forward the data wherever it needs to go — reliably, on every submission.

Service vs. builder vs. DIY
A form builder creates the form's user interface — the fields, the layout, the styling. A form submission service does something different: it receives the data once someone submits, wherever the form came from. Without one, you'd normally wire up a small backend yourself — a server route, a database table, an email provider, and some spam logic — just to receive a handful of messages a day. If you're mapping out the category, the form backend service page explains the pattern from the developer side, and the best form backend comparison lines up the main providers side by side.

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

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

We instantly capture and organize every submission in your inbox.

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

No credit card required. Set up in under 60 seconds.
Connect & automate
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.

Trusted by indie teams and agencies shipping forms worldwide
Testimonials
40 quotes on record — from indie hacks to agency migrations.
“I replaced a Lambda + DynamoDB + SES contact form with six lines of HTML. It took eleven minutes, and the dashboard is better than what I was going to build.”
“We migrated 14 client sites off Formspree in a single weekend. The price is a third of what we paid, the API is more honest, and the spam filter actually works.”
“The webhook payload is signed, idempotent, and well-shaped. It reads like code from a competent team, not a CRUD app held together with duct tape.”
“I stopped reaching for Typeform on small marketing sites. splitforms covers 90% of the use case at none of the bloat.”
“I onboarded our whole agency in an afternoon. The MCP integration meant Cursor literally dropped the form straight into our client repos for us.”
“The free plan gave me 500 submissions before I paid a cent, and Pro is five dollars a month. I've spent more on coffee deciding which backend to use.”
“Spam went from forty junk entries a day to zero, with no reCAPTCHA puzzle ruining the form. The honeypot and time-trap just quietly do their job.”
“Point the form action at one endpoint and you're done. No SDK, no client library, no build step. This is how a form backend should feel.”
“Leads land in Slack the second someone submits, and a copy goes to Google Sheets for the sales team. I wired both up in under ten minutes.”
“I run a static Hugo site on a five-dollar VPS. splitforms gave it a real contact form without me standing up a single server.”
Questions
It is a hosted service that stands in for the backend you would otherwise build to accept form data: one URL handles storage, owner notifications, spam filtering, and delivery to your dashboard. It fits static sites, Jamstack, and no-code builders — anywhere you want working forms without running a server or database. With splitforms you add a hidden access_key field and post to https://splitforms.com/api/submit; there is nothing else to install.
splitforms is free for 500 submissions/month with unlimited forms, email notifications, and spam filtering included. Pro is $5/month for 5,000 submissions plus webhooks, exports, and integrations. Pro is $5/month for 5,000 submissions with CC/BCC recipients and priority support. A one-time $59 3-Year plan covers 15,000 submissions/month for three years. Need more volume? Business is unlimited — email [email protected].
No. If you can add one hidden input and change a form's action attribute, you can use a form submission service. splitforms also includes a drag-and-drop dashboard builder with 50+ templates if you don't have a form built yet.
A form builder creates the form's user interface. A form submission service processes the data from a form you've already built. You can use both together: splitforms' dashboard includes a drag-and-drop builder with per-platform embeds, but the same POST endpoint also accepts a plain HTML form you write yourself.
Yes. splitforms filters spam with a hidden botcheck honeypot field, a form_loaded_at time-trap that rejects submissions sent in under a couple of seconds, and server-side content heuristics — no CAPTCHA widget required. If you still want one, reCAPTCHA v2 is supported with your own secret key. Rate limiting (6 submissions/minute per IP) also blocks bulk abuse.
Yes. Owner-notification emails are included free on every plan, including Free — they are not a paid feature. Auto-responder emails back to the person who submitted the form are a Starter-and-above feature.
Yes, with the Storage integration on a paid plan. Add enctype="multipart/form-data" and a file input to your form, connect Storage in the dashboard, and accept up to 5 files per submission at 5 MB each.
Yes. The same endpoint accepts a fetch() request with FormData or a JSON body — useful when you're posting from a React component or a chatbot backend instead of a plain HTML form. subject, redirect, and replyto are optional control fields splitforms reads automatically: set redirect to a thank-you page URL and replyto so you can hit reply straight to the person who submitted.
Yes. GET https://splitforms.com/api/submissions with a Bearer API token (from Dashboard → MCP) returns your submissions as JSON, up to 100 per request. The same token powers splitforms' MCP server, so AI agents can create forms and read submissions directly too.
Simple pricing
Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, Stripe payments, and higher submission limits.
For side projects and indie devs.
For agencies and growing products.
Pay $59. 3 years sorted.
No credit card required on Free • Cancel anytime