Get a free access key
Sign up at splitforms.com and create a form. Your access key appears in the dashboard instantly — no credit card required.
Form to webhook
Point your HTML form at one endpoint and every submission is forwarded to any webhook URL as HMAC-signed JSON — plus stored and emailed, so you never lose a lead.

Point your form's action at one endpoint — no server route to build or deploy.
Every delivery carries an HMAC-SHA256 X-Splitforms-Signature header you can verify.
Each submission is also stored in your dashboard and emailed to you, on every plan.
Quick start
Point the action at the endpoint, add your access key, then paste a webhook URL in the dashboard. That's the whole integration — no server code, no redeploys.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
<input name="email" type="email" required />
<textarea name="message" required></textarea>
<!-- honeypot: must stay empty -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />
<button type="submit">Send</button>
</form>
<!-- In the splitforms dashboard:
Webhooks tab -> Add URL -> https://your-app.com/webhooks/contact
(paid plans) -->Step by step
No server, no SMTP setup — six steps from a plain HTML form to a verified, signed webhook delivery.
Sign up at splitforms.com and create a form. Your access key appears in the dashboard instantly — no credit card required.
Set action="https://splitforms.com/api/submit" and method="POST" on your existing form. No JavaScript required for the base submission.
Free stores every submission and emails you. Webhook forwarding unlocks on Pro ($5/mo, 5,000 submissions) — upgrade from the dashboard in one click.
Open the Webhooks tab on your form and paste the destination URL — Slack, Discord, your own API, or a Zapier/Make/n8n catch-hook.
Submit the form once. Your endpoint should receive a POST with a JSON body and an X-Splitforms-Signature header within seconds.
Compute HMAC-SHA256 of the raw request body with your webhook secret and compare it to the sha256=-prefixed header before trusting the payload.
Where submissions go
splitforms is a hosted form backend: set your HTML form's action to https://splitforms.com/api/submit and every submission is stored, emailed, and — on paid plans — forwarded as an HMAC-signed JSON POST to any webhook URL. One endpoint routes to Slack, Zapier, or your own API, with no server code. Prefer an inbox? Pair it with form to email.

Webhook payload
A single HTTP POST with a JSON body — whatever your form fields are named becomes the payload's keys, so there is no fixed schema to map. Every request carries an X-Splitforms-Signature header (HMAC-SHA256, prefixed sha256=) your endpoint checks before trusting the data. Test a live delivery with the webhook tester.

Spam filtering
Rarely. Every submission clears a honeypot field, a time-trap, and server-side content heuristics before it is stored or forwarded, and splitforms rate-limits incoming submissions to 6 per minute per IP. Turn on reCAPTCHA v2 with your own secret for an extra layer.

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.

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.”
Form to webhook FAQ
Set your form's action to https://splitforms.com/api/submit and add a hidden access_key input. splitforms receives the POST, stores it in your dashboard, and — on paid plans — forwards the submission as a signed JSON POST to any webhook URL you add under the Webhooks tab.
Yes. Add more than one webhook URL to the same form. Each destination gets its own delivery attempt, so a Slack outage doesn't stop your other integrations or the copy stored in your dashboard.
Yes. Every outbound webhook includes an HMAC-SHA256 signature in the X-Splitforms-Signature header, prefixed sha256=, so your receiving endpoint can verify the payload really came from splitforms.
splitforms sends each webhook once, with an 8-second timeout, and does not automatically retry a failed delivery. The submission is still stored in your dashboard and emailed to you — email notifications are included on every plan, including Free — so a webhook failure never means a lost lead.
No. Webhook delivery starts on the Pro plan ($5/mo, 5,000 submissions/mo). Free (500 submissions/month) still includes unlimited forms, email notifications, spam filtering, and dashboard storage — upgrade only when you're ready to route submissions automatically.
Your endpoint receives an HTTP POST with a JSON body containing whatever fields the visitor submitted, plus the X-Splitforms-Signature header for verification. There's no separate schema to learn — the form's own fields become the payload's keys.
Yes. splitforms doesn't have a native Zapier app, but Zapier's "Webhooks by Zapier" trigger, Make's webhook module, and n8n's Webhook node all accept a splitforms webhook URL directly — paste the catch-hook URL into the Webhooks tab like any other destination.
Rarely. Every submission passes a honeypot field, a time-trap check, and server-side content heuristics before it's stored or forwarded, and splitforms rate-limits incoming submissions to 6 per minute per IP. You can also turn on reCAPTCHA v2 with your own secret for extra filtering.
Simple pricing
Choose a plan that fits your workflow — from a free form endpoint to full automations, exports, and higher submission limits.
Free forever
For side projects and indie devs.
For agencies and growing products.
Pay $59. 3 years sorted.
No credit card required on Free • Cancel anytime