Get a free access key
Sign in to splitforms and copy the access key for your form. The Free plan needs no credit card.
Form API
One hosted endpoint your forms POST to — spam filtered, stored, and emailed to you, then readable back into your own app over REST.

POST to one URL — no server route, PHP, or SMTP to build or maintain.
Honeypot, time-trap, and rate limits screen bots server-side.
Every submission is saved to your dashboard and emailed to you.
Quick start
Drop this into any page, set the action to 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_KEY">
<input name="email" type="email" required>
<textarea name="message" required></textarea>
<button>Send</button>
</form>Setup
Six steps whether you paste the form into raw HTML, a React component, or a fetch() call — the endpoint is the same every time.
Sign in to splitforms and copy the access key for your form. The Free plan needs no credit card.
Set action="https://splitforms.com/api/submit" and method="POST" on an HTML form, or POST JSON/FormData to the same URL with fetch().
It tells splitforms which of your forms the submission belongs to — every request needs it.
Include a hidden botcheck input (leave it empty) and a form_loaded_at hidden field set to the page-load timestamp. Both are checked server-side before anything is stored.
Submit the form and check your dashboard and inbox — email notifications are included on every plan, including Free.
On paid plans, route new submissions to a signed webhook or a native integration like Slack, Notion, or Google Sheets — no extra code on your form.
What a form API does
A form API is a hosted endpoint your forms POST to instead of a backend you'd build yourself. splitforms' free form API accepts a plain HTML post, a fetch() call with JSON, or multipart file data — then validates it, spam-filters it, stores it, and emails you. See how a hosted form endpoint works. Free plan: 500 submissions/month, unlimited forms, no credit card.

Every stack
The Quick start above is the plain HTML version. The same access key and endpoint work from a fetch() call or a terminal — send JSON or form fields, whichever suits your stack. It works the same from a React component, a Next.js Server Action, or plain JavaScript.

Read submissions
The submit endpoint is only half the API. Every form also exposes a read-only REST endpoint — GET /api/submissions with an Authorization: Bearer token. Grab the token from Dashboard → MCP, the same token that powers the MCP server for AI agents. See the full API reference for every parameter.

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
Yes. splitforms provides a free form API endpoint at https://splitforms.com/api/submit. You get 500 submissions per month free, no credit card required. Paid plans start at $5/month (Pro, 5,000 submissions) for webhooks and integrations.
Set your form's action attribute to the API endpoint URL and method to POST: <form action="https://splitforms.com/api/submit" method="POST">. Add your access key as a hidden field. The browser handles the rest — fetch() with JSON or FormData works the same way.
splitforms offers the most generous free tier (500 submissions/month), the lowest paid pricing ($5/month Pro), signed webhooks, spam filtering, and a free MCP server for AI agents — making it the best free form API for most developers.
Yes. Form APIs work with any framework. You can use a native HTML form POST or handle it with fetch() in React, Next.js, Vue, Svelte, Astro, or any JavaScript framework — the endpoint doesn't care what rendered the form.
GET https://splitforms.com/api/submissions with an Authorization: Bearer <token> header. Grab the token from Dashboard → MCP. Filter by form (id or access_key), and page through results with limit, before, and since — the response is { submissions, has_more }. Limit is 60 requests/minute.
Yes, multipart uploads are supported on the submit endpoint. Attaching files to submissions and storing them requires the Storage integration (a paid feature): up to 5 files per submission, 5 MB each.
Add the hidden botcheck honeypot field (leave it empty) and the form_loaded_at time-trap field. splitforms also runs server-side content heuristics, per-form allowed-domains and strict origin checks, and rate-limits abuse (6 submissions/minute/IP, 20 per 15 minutes) — reCAPTCHA v2 is optional if you want an extra layer.
Yes. The free MCP server gives AI agents like Claude Code, Cursor, and Windsurf tools to create forms and read submissions directly. A chatbot or agent backend can also just POST collected data to /api/submit with the form's access_key, the same as any other client.
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