Form Without a Database
Yes — a form without a database is possible when a hosted form backend stores submissions for you. splitforms is that backend: point your form's action (or a fetch() call) at POST https://splitforms.com/api/submit with a hidden access_key field, and every submission lands in a searchable, exportable dashboard instead of a database you'd have to provision, schema, and back up yourself. Free plan: 500 submissions/month, no credit card.
The Normal Way (Painful)
To store form data yourself, you need to:
- Choose a database (Postgres, MongoDB, MySQL, Firebase...)
- Provision and host the database
- Design a schema for your form data
- Write an API endpoint to receive submissions
- Handle database connections, pooling, migrations
- Build a dashboard to view and search submissions
- Implement export functionality
- Handle backups and security
If you actually want to run your own database, that path is covered in how to connect an HTML form to a database. The rest of this page is for everyone who'd rather skip it.
The Better Way
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_KEY">
<input name="name" required>
<input name="email" type="email" required>
<textarea name="message" required></textarea>
<button>Send</button>
</form>Submissions are stored automatically in a searchable, exportable dashboard. No database setup. No schema design. No migrations. No backups to manage. The same endpoint works from a static HTML page, a React component, a Next.js app, or plain JavaScript with fetch() — nothing about the storage side changes.
No database needed — submissions stored automatically
Send a test. Your submission is stored in our hosted dashboard — zero database setup.
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
500 submissions/month free · No credit card
How to Store Form Data Without a Database
- Get a free access key. Sign up at splitforms and copy the access_key for your form. The Free plan is 500 submissions/month, no credit card required.
- Point your form at the storage endpoint. Set action="https://splitforms.com/api/submit" and method="POST" on a plain HTML form, or POST JSON/FormData to the same URL with fetch() — either way there is no database or server to run.
- Add the access_key as a hidden field. It tells splitforms which of your forms the submission belongs to, so every form you build can share one account.
- Add the spam traps. Include a hidden
botcheckinput (leave it empty) and aform_loaded_athidden field set to the page-load timestamp — both are checked server-side before anything is stored. - Send a test submission. Submit the form and check your dashboard and inbox — email notifications to the form owner are free on every plan, including Free.
- Search, filter, and export whenever you need the data. The dashboard is searchable and filterable by default. Export to CSV, XML, or PDF on Starter ($1/mo) and above if you need the data outside splitforms.
What You Get Instead of a Database
- Searchable dashboard — find any submission instantly
- Filtering — by date, field value, form, or spam status
- Export — CSV, XML, PDF on Starter and above
- Indefinite storage — no expiration on any plan
- GDPR-compliant — row-level-secured Postgres, we can't read your data
- Webhooks — forward data to your own database or CRM if you ever want to, on Starter and above
See how the storage model holds up under privacy requirements in GDPR-compliant form submissions, or read a broader take on whether you need a backend for a contact form at all.
Read Your Stored Data Back
Storage isn't a one-way trip. Every form also exposes a read-only REST endpoint: GET https://splitforms.com/api/submissions with an Authorization: Bearer <token> header. Get the token from Dashboard → MCP — the same token also powers the MCP server for AI agents. Filter by form (id or access_key) and page through results with limit (default 25, max 100), before, and since. The response is { submissions, has_more }, rate-limited to 60 requests/minute.
curl "https://splitforms.com/api/submissions?form=YOUR_ACCESS_KEY&limit=25" \
-H "Authorization: Bearer YOUR_API_TOKEN"
# -> { "submissions": [...], "has_more": false }Want to move data out automatically instead of polling? Add a webhook on Starter and above, or check the full API reference for every parameter.
FAQ
Can I collect form data without a database?
Yes. A hosted form backend like splitforms stores your form submissions in a managed database on your behalf. You get a searchable dashboard with search, filter, and export — without ever provisioning, hosting, or maintaining a database yourself.
Where is my form data stored?
With splitforms, submissions are stored in row-level-secured Postgres. Only you can read your own rows — even the service provider can't access them. GDPR-compliant by design.
Do I need to write any backend code?
No. Point your form's action attribute (or a fetch() call) at https://splitforms.com/api/submit with your hidden access_key field and it's live — no server route, no ORM, no schema migration to write.
Can I export my form data?
Yes. On Starter ($1/mo) and above, you can export all submissions as CSV, XML, or PDF. You own your data and can export it at any time.
How long are submissions stored?
Submissions are stored indefinitely on all plans, including Free. There is no expiration or time limit on stored data.
Is a form without a database secure against spam?
Yes. Every submission passes a hidden botcheck honeypot, a form_loaded_at time-trap, and server-side content heuristics, plus per-form allowed-domains and strict origin checks. You can add reCAPTCHA v2 on top if you want an extra layer. Rate limiting caps abuse at 6 submissions/minute/IP and 20 per 15 minutes.
Can I still connect my own database later if I want one?
Yes. On Starter and above you can add a signed webhook that forwards each new submission (HMAC-SHA256, single attempt, 8-second timeout) to your own API, which can then write it into whatever database you run — splitforms doesn't have to be the only place the data lives.
What's the actual difference between a form backend and a database?
A database is infrastructure you provision, schema, secure, and back up yourself. A form backend like splitforms is a hosted endpoint that already includes the database, plus spam filtering, a dashboard, email notifications, and export — you just POST to it.
Store form submissions — free
500 submissions/month, no database, no credit card.
Get Free Access Key →Questions? Email hello@splitforms.com