splitforms.com
FAQ · 68 ANSWERED · 10 CATEGORIES

Form backend questions, answered honestly.

Everything we get asked about splitforms — pricing, setup on every major framework, spam filtering, webhooks, deliverability, GDPR, troubleshooting, and migration from Formspree, Web3Forms, Basin, and Getform. No marketing fluff.

§ Tech support

How to get help

Email hello@splitforms.com — we read every message. Free-tier replies usually arrive within one business day; Pro and 4-year customers get priority replies under four business hours. For urgent production issues, write URGENTin the subject and we'll page on-call. Real-time service status is at status.splitforms.com, and full developer docs are at /docs.

Missing a question? Email us — we read every message and add answers here.

68
questions answered
10
categories
1d
support reply, free
4h
support reply, pro
Jump to:Getting Started05Pricing & Billing10Integrations08Spam & Security07Email Deliverability06GDPR & Privacy07Technical Support & Troubleshooting07API & Developer07Migration06Account & Plans05
§ 01Getting Started

Getting Started

What splitforms is, who it's for, how to get an access key, and what to expect in the first sixty seconds.

What exactly is splitforms?

splitforms is a form backend API. You point any HTML form's action attribute at https://splitforms.com/api/submit, drop in a hidden access_key field, and submissions arrive in your inbox plus your dashboard. There's no SDK, no PHP, no plugin, no infrastructure to maintain — it's the modern replacement for self-hosted contact-form scripts and PaaS form services.

Who is splitforms for?

Developers and indie founders shipping static sites, JAMstack apps, marketing pages, and small SaaS dashboards on stacks like Next.js, Astro, Hugo, Gatsby, Eleventy, Webflow, Carrd, or plain HTML. Anyone who wants 1,000 free submissions a month without setting up Postmark, Resend, or AWS SES themselves. Agencies using one account across many client sites also fit cleanly.

How do I get a free access key?

Sign in at splitforms.com/login with email or GitHub, create a form in your dashboard, and copy the access key shown. The whole flow takes under a minute and there's no credit card required. Each access key works on unlimited forms across unlimited domains until you decide to lock it down.

What's the fastest way to ship my first form?

Copy the snippet from your dashboard (or any of our framework guides), paste it into your page, and submit a test message. Within a few seconds you'll see the submission in your inbox and the dashboard. If anything is off, the dashboard's Recent Activity panel shows exact request payloads and error messages.

Is splitforms production-ready?

Yes. The API runs on Vercel + Supabase Postgres with multi-region edge routing. We're in v0 launch, which means we're shipping fast — but the form endpoint is the same code we use ourselves and has been deduplicated, rate-limited, and signed since day one.

§ 02Pricing & Billing

Pricing & Billing

Free tier limits, Pro tier value, the 4-year plan, refunds, billing changes, and discounts.

Is splitforms really free?

Yes. 1,000 form submissions per month, unlimited forms, spam filtering, and webhooks — included on the free plan, no credit card required, ever. The free tier is a real product tier, not a trial that expires after 14 days.

What does Pro at $5/month include?

5,000 submissions/month, per-form CC and BCC recipients, allowed-domain access-key locking, custom subjects and intro text, higher email rate limits, priority support under 4 hours, and everything from the Free tier. Cancellable any time from the dashboard with no phone calls.

What's the $59 4-year plan?

A one-time $59 payment for 48 months of access at 15,000 submissions/month, with all Pro features included. It's long enough to be a meaningful deal, short enough that we can keep our promises about uptime and feature investment over its lifetime. Renew at the rate at the time when it ends, or move on.

Why a 4-year plan instead of a true lifetime offer?

Honest answer: lifetime deals quietly bankrupt indie SaaS, and we want splitforms to still exist in 2030. The 4-year window prices in real cost-of-service over a meaningful horizon without making promises we can't keep. Customers who want predictability for a multi-year project still get it.

What happens if I exceed my plan's monthly submissions?

Submissions still arrive — they're flagged 'over-quota' in your dashboard but never deleted. We email you a few days before you'll hit the limit so you can upgrade or budget. Two consecutive over-quota months prompt a friendly nudge to upgrade.

Can I cancel anytime? Are refunds available?

Yes — cancel from the dashboard at any time and you keep access until the end of the period. Refunds within 14 days of a Pro charge, no questions asked. The 4-year plan has a 30-day refund window.

Do you charge for failed submissions or spam?

No. Submissions blocked by the honeypot or flagged as spam don't count against your monthly quota. Failed deliveries (bad email, bounce) also don't count — only successful, human submissions consume quota.

How does billing work — monthly, annual, or one-time?

Pro is billed monthly via Stripe (cancel anytime). The 4-year plan is one charge, no recurring billing. There's no annual Pro tier today; if that's something you want, email us and we'll add you to a waitlist.

Are there discounts for students, non-profits, or open source?

Yes. Email hello@splitforms.com from your .edu address, your non-profit domain, or with a public OSS link, and we'll usually give you Pro for free while the project is active.

Do you charge tax / VAT?

Stripe Tax handles VAT for EU/UK customers and US sales tax where required. The amount shown at checkout is what you pay; invoices include all tax breakdowns and are downloadable from the dashboard for accounting.

§ 03Integrations

Integrations

Frameworks, site builders, and downstream services — Next.js, React, Astro, Webflow, Slack, Discord, Zapier, Google Sheets, Notion.

Does splitforms work with Next.js, React, Vue, Svelte, and Astro?

Yes. The integration is just a POST request, so anywhere you can submit a form, splitforms works identically. Server actions in Next.js, fetch() in client components, useState in React, defineComponent in Vue, +page.svelte in SvelteKit — all the same single endpoint with the same JSON response shape.

Does splitforms work with Webflow, Framer, Carrd, and WordPress?

Yes — Webflow's custom form action setting, Framer's form integration, Carrd's form-to-URL, and WordPress (no plugin) all work. Set the form action to https://splitforms.com/api/submit and add the hidden access_key input. Step-by-step guides for each are linked from the dashboard.

Do I need to install an npm package or library?

No. There's no SDK to install. The integration is a standard HTML form POST or a fetch() call — exactly what your framework already supports. We deliberately avoid SDKs because they always rot and add a dependency you don't need.

Can I forward submissions to Slack, Discord, or Google Sheets?

Yes — webhooks are free on every plan including Free. Paste a Slack incoming-webhook URL or Discord webhook URL and we auto-format for that destination. Or send signed JSON to any URL (Zapier, n8n, Make, your own server). Google Sheets works through Zapier today, with native support shipping on Pro.

Can I pipe submissions into a CRM like HubSpot, Pipedrive, or Notion?

Yes — via the custom webhook (Zapier, n8n, Make, Pipedream all work great as the middleware). Native HubSpot and Notion integrations are on the Pro roadmap; until they ship, the webhook route is reliable and signed.

Can I have multiple forms on one access key?

Yes — unlimited forms per access key on every tier including Free. Most agencies use one account across many client websites. You can also create separate forms for cleaner per-form analytics, recipients, and notifications.

Can I redirect users to a thank-you page after submit?

Yes. Add a hidden redirect field to the form pointing to your thank-you URL. Without it, the API returns JSON — perfect for fetch-based forms that show in-page success states. The redirect URL must be on a domain you own (allow-listed in settings).

Does splitforms support multi-step or conditional forms?

splitforms accepts whatever your front-end POSTs, so multi-step is just a matter of submitting on the final step (or batching steps into a single POST). Native multi-step UI helpers are on the Pro roadmap.

§ 04Spam & Security

Spam & Security

How splitforms blocks bots, the honeypot mechanism, allow-listed domains, and access-key safety.

How does splitforms spam protection work?

Every template ships a hidden honeypot field called botcheck. Bots auto-fill every form field they see; humans don't see this one because it's display:none with tabindex=-1. If a submission has botcheck filled, we silently drop it and mark it spam in your dashboard so you can audit false-positive rates.

Do I need reCAPTCHA, hCaptcha, or Cloudflare Turnstile?

No. The honeypot blocks the vast majority of bots without showing a CAPTCHA to your real users. CAPTCHAs add friction and hurt conversion. If you want stricter checks (rate-limiting per IP, fingerprint heuristics, AI classifier) you can enable them in Settings → Security.

What if real submissions get flagged as spam?

Open the dashboard — flagged submissions are stored, not deleted, so you can see false positives and one-click restore them. The most common cause is the botcheck field becoming visible to humans (a CSS override). Make sure it has both display:none and tabindex='-1'.

Can I lock my access key to specific domains?

Yes. In Settings → Security → Allowed domains, list the domains allowed to submit using this key (e.g. example.com, www.example.com). Submissions from any other origin return HTTP 403. This is the right answer when a key gets leaked or you're worried about someone copying your form.

What if my access key is exposed in client-side HTML — is that safe?

Yes — splitforms keys are designed to be public. They're an identifier, not a secret. To prevent abuse from other origins, lock the key to your domain(s). For server-side use cases (reading submissions back) you use a Bearer API token, which IS secret.

Can someone spam my form by hitting my endpoint directly?

Rate limits on the public endpoint kick in at ~60 requests/minute per IP. Combined with the honeypot, the AI classifier on Pro, and domain allow-listing, automated abuse is rare. If you do see a flood, contact us — we can block specific IP ranges or rotate the key for you.

Is the connection encrypted?

All traffic to splitforms.com/api/submit is HTTPS-only with HSTS preload. We never accept plain HTTP and we never log full request bodies in plaintext outside the database (which has row-level security so only your account can read your rows).

§ 05Email Deliverability

Email Deliverability

Where notification emails come from, how to make sure they don't land in spam, custom domains, and bounce handling.

Which email provider do you use to send notifications?

Notification emails are sent through a high-reputation transactional provider (Resend / Postmark-class) with proper SPF, DKIM, and DMARC alignment on the splitforms.com sending domain. We're not relying on your Gmail SMTP — that means deliverability is consistent across every recipient.

Why are notification emails landing in my spam or Promotions tab?

Most of the time it's because your inbox sees splitforms.com as a new sender. Mark one notification as 'Not spam' or move it to Primary, and Gmail/Outlook learn within a few messages. Adding noreply@splitforms.com to your contacts also helps.

Can I send notifications from my own domain?

Yes — custom sending domain (e.g. forms@yourcompany.com) is a Pro feature. You add a couple of DNS records (SPF/DKIM), we verify, and notifications start sending as you. Recipients see your brand, not splitforms.

Can I customize the subject line and body of notification emails?

Yes. Per-form custom subjects, intro text, and reply-to address are available on Pro. The Free tier uses a clean default subject like 'New submission from <form name>' which works for most cases.

What happens if my notification email bounces?

Bounces are tracked per recipient. After repeated hard bounces we pause sending to that address and surface it in the dashboard so you can fix it. The submission itself is always saved to the dashboard regardless of email status — email is a notification, not the source of truth.

Can I send to multiple recipients (CC, BCC, distribution list)?

Yes, on Pro. Per-form CC and BCC lists, plus the option to send to a single distribution alias. The Free tier supports a single primary recipient per form, which covers most solo and small-team setups.

§ 06GDPR & Privacy

GDPR & Privacy

Where submissions live, how long we keep them, EU residency, the DPA, and what we do (and don't) with your data.

Is splitforms GDPR-compliant?

Yes. We're a data processor; you're the controller. Submissions live in Postgres with row-level security so only your account can read your rows — even our staff can't read them via the API. We honor data-subject access and erasure requests within 30 days.

Where is my submission data physically stored?

Today the primary database is in the US-East region (Vercel + Supabase). EU data residency (Frankfurt region) is on the roadmap for organizations that need data to stay in the EU. If that's a hard requirement for you, email hello@splitforms.com and we'll prioritize.

Do you have a DPA / Data Processing Addendum?

Yes. A standard DPA (with SCCs for international transfers) is published at /dpa and is auto-accepted as part of our Terms. Custom DPA negotiation is available for enterprise customers — email us.

How long do you keep form submissions?

Indefinitely on paid tiers (you own the data). On the Free tier, submissions are kept for 12 months minimum. You can delete any submission or your entire account from the dashboard at any time, and we hard-delete within 30 days.

Do you sell or train AI models on my submissions?

No. We never sell, share, or train any model on customer submissions. The optional AI spam classifier processes submission metadata (not full content) and does not retain it. This is in writing in the Privacy Policy and the DPA.

Are you CCPA / PIPEDA compliant?

Yes. CCPA opt-out and a do-not-sell flag are wired into the dashboard (we don't sell, but the flag is honored downstream regardless). PIPEDA-style access and correction requests are handled the same way as GDPR DSARs — email privacy@splitforms.com.

Can I export everything and leave?

Yes. CSV export from the dashboard on every tier including Free, plus a JSON export endpoint on Pro. No proprietary lock-in — you can leave with all your data at any time. Account deletion wipes the data within 30 days and we'll send a confirmation.

§ 07Technical Support & Troubleshooting

Technical Support & Troubleshooting

Where to get help fast, common error codes, debugging submissions, and how to escalate.

How do I contact splitforms tech support?

Email hello@splitforms.com — we read every message. Free-tier replies usually arrive within one business day; Pro and 4-year customers get priority replies under 4 business hours. For urgent production issues, write 'URGENT' in the subject and we'll page on-call.

Where can I see what's happening with my submissions in real time?

The dashboard's Recent Activity panel shows every request to your forms — including blocked, spam-flagged, and rate-limited attempts — with timestamps, IPs, and full payloads. It's the first place to look when something doesn't behave as expected.

I'm getting HTTP 403 — what's wrong?

Almost always one of: (1) the access_key is missing or wrong, (2) the request origin isn't in your allowed-domains list, or (3) the key has been revoked. Check Settings → Security in your dashboard. The response body includes a 'reason' field that points at the exact cause.

I'm getting HTTP 429 — what now?

Too many requests in a short window. The default limit is generous for organic traffic; if you're legitimately bursting (e.g. a launch on Hacker News), email us with the time window and we'll raise the limit. Otherwise, check whether a script or webhook is hammering the endpoint.

Submissions show up in the dashboard but I'm not getting emails. Why?

Three usual suspects: notification email is in spam (check there first), your recipient address bounced (the dashboard will flag this), or notifications are paused for the form. Settings → Notifications shows current delivery status and lets you re-enable.

Is there a status page?

Yes — status.splitforms.com publishes incidents and uptime. Subscribe to the RSS feed or email updates from there. We post-mortem every customer-impacting incident publicly.

Where are the docs?

Full developer docs live at /docs with copy-paste recipes for every major framework, the full API reference, webhook signing examples, and migration guides. The README in the dashboard also has a quick-start tailored to your account.

§ 08API & Developer

API & Developer

Endpoint behavior, response formats, error codes, rate limits, file uploads, and the MCP server.

What's the splitforms API endpoint?

POST https://splitforms.com/api/submit. Accepts application/json, application/x-www-form-urlencoded, and multipart/form-data. The only required field is access_key. Returns 200 with { success: true } on success, or 400/403/429 with { success: false, message } on error.

Are webhook payloads signed?

Yes. Every webhook request body is signed with HMAC-SHA256 using a per-webhook shared secret, sent in the X-Splitforms-Signature header as 'sha256=<hex>'. Verify on your server using crypto.timingSafeEqual. Code samples in /docs#webhooks for Node, Python, Ruby, Go, and PHP.

What happens if my webhook endpoint is down?

We retry with exponential backoff (1m, 5m, 30m, 2h, 12h, 24h) for up to seven attempts. The submission still lands in your inbox and dashboard regardless — webhooks are an additional delivery channel, not the source of truth.

Is there a public API for reading submissions programmatically?

Yes — GET /api/submissions with a Bearer token (generate in Dashboard → API). Returns paginated JSON with cursor-based pagination. Filter by form, date range, and spam status. Rate-limited generously per token.

Does splitforms support file uploads on contact forms?

File upload support is on the near-term roadmap and will land on Pro and 4-Year tiers, with per-file size and per-month storage caps. Today we handle text, email, dropdowns, dates, numbers, checkboxes, radios, and textareas.

What's the MCP server?

splitforms ships a Model Context Protocol server so AI coding agents like Claude Code, Cursor, and Windsurf can read your forms, list submissions, and generate template HTML directly without you copy-pasting credentials. Setup is one command and is documented at /docs#mcp.

Are there official client libraries?

No, deliberately. The endpoint is a standard POST with a 3-line integration — adding an SDK would create a dependency you'd have to update. If you want a typed wrapper, the docs include 30-line snippets in TypeScript, Python, Go, Ruby, and PHP that you can paste straight into your codebase.

§ 09Migration

Migration

Switching to splitforms from another form backend — how the swap works and what to expect.

How do I migrate from Formspree to splitforms?

Swap the form's action URL to https://splitforms.com/api/submit and replace the access key. Existing field names (name, email, message, anything custom) work as-is, so you don't need to rewrite the form. Migration usually takes under five minutes per form.

How do I migrate from Web3Forms?

Same idea: swap the action URL and the access_key. Web3Forms' field naming conventions map 1:1 to splitforms. The honeypot field name (botcheck) is identical, so existing spam protection keeps working without any markup change.

How do I migrate from Getform, Basin, or FormSubmit?

Swap the action URL to https://splitforms.com/api/submit and add the splitforms access_key as a hidden input. Field names are arbitrary on splitforms — whatever your existing form sends, we'll capture and email. Step-by-step guides for each are at /vs.

Will I lose existing submissions when I migrate?

Submissions stored in your previous provider stay there until you delete them — splitforms doesn't touch them. If you want history in one place, most providers let you export to CSV; we can ingest that into your dashboard via support if you ask.

Can I run splitforms in parallel with my current backend during the cutover?

Yes — point one staging form at splitforms while production stays on the old provider. Or use a feature flag in your front-end to A/B the two endpoints. Once you trust the new setup, swap the production action URL and you're done.

Will my existing webhooks and integrations still work?

splitforms speaks the same shapes most form services do (Slack incoming-webhook URLs, Discord webhook URLs, signed JSON to a custom endpoint), so most integrations are a settings paste, not a rebuild. The signature header name is X-Splitforms-Signature — update your verify code to read that.

§ 10Account & Plans

Account & Plans

Logging in, team members, transferring forms, deleting your account.

How do I log in?

Magic-link email or GitHub OAuth at splitforms.com/login. We don't ask for a password — magic links are more secure for low-frequency apps like this and there's nothing to forget. Sessions last 30 days; you can sign out from any device in Settings → Sessions.

Can I add team members to my account?

Multi-seat teams are on the Pro roadmap. Today, agencies typically share a single login (or use one account per client) — both work fine. If team seats are a hard requirement, email hello@splitforms.com so we can prioritize correctly.

Can I transfer a form to another account?

Yes — contact support with the form ID and the destination email and we'll move it (and all its submissions) over. Self-serve transfer is on the roadmap.

How do I delete my account?

Settings → Account → Delete account. We hard-delete all submissions, webhooks, and account data within 30 days and send a confirmation email. If you only want to pause, you can downgrade to Free instead and keep your forms intact.

What if splitforms shuts down?

Honest answer: every submission is exportable as CSV/JSON at any time, so worst-case you keep the data. The codebase is also public — self-hosting is a real fallback. We have no plans to shut down, but we plan our customer-experience contract for the case where we did.

✻ ✻ ✻

Still have a question?

We read every email and add common questions to this page within a week. Or just start with a free access key — most setup answers itself in 60 seconds.

Get free access key →Email hello@splitforms.com