Create a free splitforms form
Sign up and add a form in the dashboard — no credit card required. Free covers 500 submissions a month on unlimited forms, with email notifications and spam filtering included.
Serverless form handling
Post any HTML form or client-side fetch() call to one hosted endpoint — no API route, no serverless function, no SMTP. splitforms stores the submission, filters spam, and emails you.

No app/api route or serverless function to write and deploy — your form posts to one endpoint.
A honeypot and form_loaded_at time-trap screen bots server-side — no CAPTCHA to add.
Every submission is saved to a searchable dashboard and emailed to you within seconds.
Quick start
Point the form action at the endpoint, add your access key, and ship — there's no API route or serverless function of your own to write or deploy.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
<input type="hidden" name="form_loaded_at" value="TIMESTAMP_ON_LOAD" />
<input name="email" type="email" required />
<textarea name="message" required></textarea>
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />
<button type="submit">Send</button>
</form>Setup
Five steps, no server code of your own to write or deploy. Point a form at the endpoint, add the honeypot and time-trap fields, and ship to any host.
Sign up and add a form in the dashboard — no credit card required. Free covers 500 submissions a month on unlimited forms, with email notifications and spam filtering included.
Set a native <form action="https://splitforms.com/api/submit" method="POST">, or POST with fetch and FormData from a client component. Either way, add access_key as a hidden field.
Include a hidden botcheck input that must stay empty and a form_loaded_at hidden field set to a timestamp when the page loads. splitforms uses both to catch bots without a CAPTCHA or a validation function of your own.
Ship to Vercel, Netlify, Cloudflare Pages, GitHub Pages, or any static host — there is no app/api route or serverless function to write and deploy alongside the form.
Submit a test entry, confirm it lands in your inbox and dashboard, then wire up Slack, Google Sheets, Notion, Airtable, or a signed webhook to Zapier, Make, or n8n — webhooks and native integrations are on Pro ($5/mo) and up.
No API route
There's no app/api/contact/route.ts to write. A client component posts FormData straight to splitforms with fetch()— the same honeypot and time-trap fields apply whether you submit with a native form action or JavaScript. It's the same one-endpoint pattern in a Next.js form, React, or plain HTML.

The shared layer
Most form handlers repeat the same work: validate fields, block spam, store the payload, email the owner, and forward a webhook. splitforms handles that shared layer — no route, SMTP, database, CAPTCHA, or hosting lock-in of your own. Need custom logic first? Put a serverless function in front of the form endpoint and forward the request; most contact, lead, and signup forms don't need one.

Any host
The POST goes to splitforms, not your hosting provider, so there's nothing platform-specific to configure. The same form keeps working when you move from Netlify to Vercel, Cloudflare Pages, GitHub Pages, or S3 — it's true static site form handling with no build-pipeline lock-in.

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.”
Common questions
Serverless form handling means your site does not run its own always-on form server. The browser posts to a hosted endpoint — https://splitforms.com/api/submit — that validates, filters, stores, and routes the submission.
No — a plain contact, lead, waitlist, or signup form posts straight to splitforms. Add your own function only when something must run server-side first, such as looking up a coupon code or generating an invoice number before the submission is accepted.
Yes. It works anywhere that can serve HTML or JavaScript because the POST goes to splitforms, not your hosting provider — there is nothing platform-specific to configure.
Netlify Forms is tied to Netlify's build and hosting pipeline. splitforms is host-agnostic: the same form keeps working if you move from Netlify to Vercel, Cloudflare Pages, GitHub Pages, or S3.
splitforms is free for 500 submissions a month on unlimited forms, with email notifications and spam filtering included. Pro is $5/month for 5,000 submissions plus webhooks, integrations, and CSV/XML/PDF exports; Pro is $5/month for 5,000 with CC/BCC and priority support; a 3-Year plan is $59 for the first 3 years, then $59/year, for 15,000 a month. Unlimited Business plans are available by emailing [email protected].
splitforms includes a hidden honeypot field (botcheck) and a time-trap field (form_loaded_at) that catch most bots automatically, plus server-side content heuristics. You can layer on optional reCAPTCHA v2 with your own secret for an extra check — none of it requires a validation function of your own.
Yes, with the Storage integration (a paid add-on): up to 5 files per submission at 5 MB each, with no upload handler of your own to write.
Yes — the shared endpoint allows 6 submissions per minute per IP and 20 within a rolling 15 minutes, returning HTTP 429 past that, since there is no server of yours in front of it to add custom throttling.
splitforms covers the shared work — storage, spam filtering, email, webhooks — but it does not run your business logic. If you need to check a value against your own database, call another API, or transform the payload before it's accepted, put a serverless function or API route in front of splitforms and forward the request from there. Most contact, lead, waitlist, and signup forms have no such logic, which is why the direct POST works without one.
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