Form Endpoint API — One POST URL for Any HTML Form

A form endpoint is a single URL you POST your form data to instead of writing server-side code to handle it. With splitforms, that URL is https://splitforms.com/api/submit: point any HTML form's action attribute at it, add your access_key as a hidden field, and splitforms stores the submission, filters spam, and emails you — the browser does the rest.

The splitforms endpoint

https://splitforms.com/api/submit

How a Form Endpoint Works

  1. You register a form and receive an access key that identifies your account and form.
  2. You add the endpoint URL to your form's action attribute, along with the access key as a hidden field.
  3. A visitor submits the form — their browser sends a standard HTTP POST to the endpoint.
  4. The endpoint processes the submission: validates, filters spam, stores in a database, sends email notifications, and fires webhooks.
  5. You see the submission in your dashboard and inbox within seconds.

Minimal Form Endpoint Example

<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>

That's it. No SDK, no server, no API route, no database configuration. The endpoint handles everything.

contact-form.html

Point any form at this endpoint

Fill it out and hit send — this is a live demo of the form endpoint API.

What happens next ⚡

  • 📥Submission received — stored in your searchable dashboard
  • 📧Email notification — delivered to your inbox instantly
  • 🛡️Spam filtered — AI classifier + honeypot, no CAPTCHA
  • 🔗Webhook fired — optional: forward to Slack, Discord, Sheets
  • ↩️User redirected — to your thank-you page
Response time
14ms
median edge latency across 14 regions
Get Free Access Key →

500 submissions/month free · No credit card

How to Connect a Form to a Form Endpoint

  1. Get your free access keySign up at splitforms.com/login. Every form gets its own access key on the Free plan — 500 submissions/month, unlimited forms, no credit card.
  2. Point your form's action at the endpointSet 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.
  3. Add the honeypot fieldInclude 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.
  4. Add the time-trap fieldAdd 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.
  5. Set optional control fieldsAdd 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.
  6. Submit a test entry and check your dashboardFill out the form yourself. The submission appears in your splitforms dashboard and inbox within seconds — email notifications are free on every plan.

What the Endpoint Does for You

📥 Receives submissions

Accepts JSON, URL-encoded, and multipart form data. Works with native HTML forms or JavaScript fetch.

🛡️ Filters spam

Honeypot and time-trap fields plus server-side heuristics catch bots. Optional reCAPTCHA v2 if you want it — no CAPTCHA required by default.

📧 Sends email

Owner notifications free on every plan, including Free. Auto-responders on Starter+, CC/BCC on Pro+.

💾 Stores submissions

Row-level-secured Postgres with search, filter, and export. GDPR-compliant.

🔗 Fires webhooks

Signed HMAC-SHA256 webhooks to Slack, Discord, Sheets, Notion, or any URL — plus 1-click OAuth integrations. Starter plan and up.

⚡ Edge-deployed

14ms median latency across 14 regions. Submissions processed in real-time.

Form Endpoint vs. Building Your Own

FactorForm EndpointBuild Your Own
Setup time60 seconds3-7 days
Monthly cost$0 (500/mo free)$5-50 (server + DB + email)
Spam filteringIncludedYou build it
WebhooksIncludedYou build them
DashboardIncludedYou build it
MaintenanceZeroOngoing

Using the Endpoint with Different Frameworks

Plain HTML

<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_KEY">
  <input name="email" type="email" required>
  <button>Send</button>
</form>

Full walkthrough with the honeypot field and styling: see the HTML contact form guide.

React / Next.js (fetch)

const res = await fetch("https://splitforms.com/api/submit", {
  method: "POST",
  body: formData, // new FormData(formElement)
});

Framework-specific examples: React and Next.js, or browse every framework guide.

cURL

curl -X POST https://splitforms.com/api/submit \
  -H "Content-Type: application/json" \
  -d '{"access_key":"YOUR_KEY","name":"Test","email":"test@test.com","message":"Hello"}'

Reading Submissions Back Out

The endpoint isn't one-way. Once submissions land, pull them back out with GET https://splitforms.com/api/submissions, sent with an Authorization: Bearer <token> header — find your token at Dashboard → MCP. Filter by form (id or access key), page through results with limit (default 25, max 100), before, and since, and read the response as { submissions, has_more }. It's capped at 60 requests/minute. Full parameter list in the API reference.

The same token powers the free splitforms MCP server, so AI agents and coding tools can create forms and list submissions with built-in tools instead of you hand-rolling the integration. Prefer push over pull? Route new submissions to Slack, Discord, or any URL with a signed webhook instead of polling the endpoint.

FAQ

What is a form endpoint?

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.

How do I use a form endpoint?

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.

Is a form endpoint the same as a form backend?

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.

Do form endpoints work with any framework?

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.

Are form endpoints secure?

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.

What's the difference between a form endpoint and a form action URL?

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.

What data formats does a form endpoint accept?

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.

Is there a rate limit on the form endpoint?

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.

Get your form endpoint

Free access key, 500 submissions/month, no credit card. Start receiving form submissions in under a minute. Need more volume, exports, or webhooks? See pricing.

Get Free Access Key →

Questions? Email hello@splitforms.com