Create an API token
Dashboard → MCP → generate a token. The same token authorizes the REST API and the MCP server; keep it secret and regenerate it if it leaks.
Feature · REST API & MCP Server
Pull submissions over a simple REST endpoint, or connect Claude Code, Cursor, or Windsurf to the splitforms MCP server and let your agent build and install forms. Included on every plan.

Your form posts to one splitforms endpoint — no server, API route, or SDK. splitforms is the backend.
Every submission is saved to a searchable dashboard and emailed to you — spam filtered before it lands.
No glue code, no third-party middleman — it ships as part of splitforms and works from your first submission.
Copy-paste ready
Replace YOUR_ACCESS_KEY with the key from your splitforms dashboard. No SDK to install, no build step — the same ts you already write.
// REST: read your submissions with the API token from Dashboard → MCP.
// GET /api/submissions?form=<form id or access_key>&limit=25&since=<ISO date>
const res = await fetch(
"https://splitforms.com/api/submissions?limit=25&since=2026-09-01T00:00:00Z",
{ headers: { Authorization: "Bearer " + process.env.SPLITFORMS_API_TOKEN } },
);
const { submissions, has_more } = await res.json();
// submissions: [{ id, form_id, created_at, data, is_spam }]
// has_more: true → call again with ?before=<created_at of the last row>
// MCP: the same token connects Claude Code, Cursor, Windsurf or any
// MCP-aware agent to https://splitforms.com/api/mcp. Example (Claude Code):
//
// claude mcp add --transport http splitforms https://splitforms.com/api/mcp \
// --header "Authorization: Bearer YOUR_API_TOKEN"
//
// Then ask: "build a quote-request form with name, email and budget and add
// it to the pricing page" — the agent calls create_form and pastes the code.How to set it up
How rest api & mcp server flows through splitforms — what you do, what we do, and what lands in your inbox.
Dashboard → MCP → generate a token. The same token authorizes the REST API and the MCP server; keep it secret and regenerate it if it leaks.
Send GET /api/submissions with Authorization: Bearer <token>, or add https://splitforms.com/api/mcp to Claude Code, Cursor, Windsurf, or another MCP client with the same header.
Page through submissions with since/before for a nightly sync, or ask your agent to create a form, install it in your project, or connect a webhook.
How rest api & mcp server works
splitforms gives you two ways to work with your forms from code, both unlocked by the same API token from Dashboard → MCP. The REST API is a read endpoint for your submissions: GET https://splitforms.com/api/submissions with an Authorization: Bearer header returns your newest submissions as JSON — id, form, timestamp, and the submitted fields — filtered by form, with since and before for incremental syncs and up to 100 rows per page. Route the same submission to an email inbox or a webhook at the same time — nothing here is one-or-the-other.

What you get
Every reason below is the boring, reliable kind — the fundamentals of rest api & mcp server, built once and tested in production so you never have to.

How SplitForms works
splitforms receives the submission, filters spam, saves it to your dashboard and emails you — then, on paid plans, sends it on to your webhooks and integrations. No backend infrastructure to build.

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
On paid plans, submissions can also go to Slack, Discord, Google Sheets, Notion, Airtable, Zapier or any signed webhook — and splitforms works on the platforms you build on, from WordPress and Shopify to Next.js. With Stripe connected, your forms can take payments too.

Common questions
Yes. GET https://splitforms.com/api/submissions with Authorization: Bearer <API token> returns { submissions: [{ id, form_id, created_at, data, is_spam }], has_more }. Filter with ?form=<form id or access key>, page with ?limit (max 100) and ?before, and sync incrementally with ?since. Get the token from Dashboard → MCP.
Its tools let an AI agent get your access key, create a form with custom fields, generate a form from a template in HTML, React, or other frameworks, list forms and templates, read and list submissions, update form settings, check usage, and create and test webhooks. Prompts cover building a form, adding a form to a site, triaging the inbox, and connecting a webhook.
Both are included on every plan, including Free. Plan limits still apply to what the tools do — for example, creating webhooks needs a paid plan, and submissions count against your plan's allowance as usual.
Create a token in Dashboard → MCP, then run: claude mcp add --scope user --transport http splitforms https://splitforms.com/api/mcp --header "Authorization: Bearer YOUR_API_TOKEN". Cursor and Windsurf take the same URL and header in their MCP settings; the dashboard shows the exact config for each.
Submissions always go to POST https://splitforms.com/api/submit with your form's access key — from HTML, fetch(), or any server. The REST API is for reading submissions; the MCP server can create and update forms.
Simple pricing
Free gives you 500 submissions for $0 — no card, no time limit. Pro is $5/month for 5,000 submissions a month, and Annual is $49/year for 15,000 a month with every Pro feature.
For side projects and indie devs.
Every paid feature, for agencies and growing products.
Every Pro feature with triple the volume — $0.27 per 1,000 at full use.
No credit card required on Free • Cancel anytime • Full pricing and FAQ