Get your free access key
Sign up at splitforms.com/login. Every form gets its own access key on the Free plan — 200 submissions total, unlimited forms, no credit card.
Form endpoint
Point any form's action at one form endpoint URL. splitforms stores every submission, filters spam, and emails you — no backend to build.

The form endpoint accepts JSON, URL-encoded, and multipart form data — from native HTML forms or a JavaScript fetch.
Honeypot, time-trap, and server-side heuristics screen bots before your inbox. Optional reCAPTCHA v2 — none required by default.
Owner notifications are free on every plan. Each submission is stored in a searchable dashboard and can fire signed webhooks.
Quick start
Set your form's action to https://splitforms.com/api/submit, add your access key, and the browser does the rest — no SDK, no server, no API route.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<input name="name" type="text" placeholder="Name" required>
<input name="email" type="email" placeholder="Email" required>
<textarea name="message" placeholder="Message" required></textarea>
<button type="submit">Send</button>
</form>Setup
No server, no SMTP setup. The same six steps whether you paste the form into raw HTML, a React component, or a WordPress custom-HTML block.
Sign up at splitforms.com/login. Every form gets its own access key on the Free plan — 200 submissions total, unlimited forms, no credit card.
Set action="https://splitforms.com/api/submit" and method="POST" on your <form> tag, then add access_key as a hidden field with your key as the value.
Include a hidden botcheck input that must stay empty. Bots fill every field, including hidden ones; humans never see it. Any submission where it's filled in gets rejected.
Add a hidden form_loaded_at field set to a timestamp when the page loads. splitforms uses the gap between load and submit to catch instant bot fills.
Add subject for a custom notification email subject, redirect for a post-submit thank-you URL, or replyto to set the reply-to address — no code required for any of them.
Fill out the form yourself. The submission appears in your splitforms dashboard and inbox within seconds — email notifications are free on every plan.
What it does
A visitor hits submit, their browser POSTs to one URL, and the form endpoint does the rest — validate the access key, filter spam, store the submission, email you, and fire optional webhooks. No server-side code on your side.

Any framework
Yes. Any HTML form can POST to a form endpoint, so the same URL works from plain HTML, a React or Next.js fetch(), Vue, Svelte, Astro, or the command line — same access key, same JSON response. You can browse every framework guide.

Read the data back
The form endpoint isn't one-way. Once submissions land, pull them back with GET /api/submissions and an Authorization: Bearer token from Dashboard → MCP — filter by form, page through with limit/before/since, and read { submissions, has_more }. Full parameters live in the API reference and the form API guide.

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 200 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.”
FAQ
A form endpoint is a URL that receives HTTP POST requests from HTML forms. Instead of writing server-side code to process form submissions, you point your form's action attribute at the endpoint URL. The endpoint handles storage, email notifications, spam filtering, and optional webhooks.
Set your form's action attribute to the endpoint URL and add a hidden input with your access key. For example: <form action="https://splitforms.com/api/submit" method="POST"> with a hidden field containing your key. That's the entire setup.
Yes. Form endpoint, form backend, and form API all refer to the same thing: a hosted service that receives your form submissions so you don't have to build server-side infrastructure. The terms are used interchangeably.
Yes. Any HTML form can POST to a form endpoint, so it works with every framework: plain HTML, React, Next.js, Vue, Svelte, Astro, Hugo, Gatsby, Webflow, Framer, Carrd, and WordPress. If it can submit a form, it can use a form endpoint.
With splitforms, form endpoints use HTTPS, submissions are stored in row-level-secured Postgres (GDPR-compliant), and webhooks are signed with HMAC-SHA256. The access key in your HTML is designed to be public — it identifies your form, not grants API access.
They're the same thing from two angles. The "endpoint" is the URL that receives POST requests; the form's action attribute is where you put that URL. Setting action="https://splitforms.com/api/submit" on any <form> tag is the entire integration — the browser does the rest.
The splitforms endpoint accepts three content types: standard HTML form posts (application/x-www-form-urlencoded), JSON (application/json) for fetch or AJAX submissions, and multipart/form-data for submissions that include file uploads.
Yes. The endpoint allows 6 submissions per minute per IP address, with a sustained cap of 20 within a 15-minute window. Requests beyond that return an HTTP 429 response, which protects your form from being flooded.
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