Why Forminit?
Forminit (formerly Getform.io) is a headless form backend API. You build the form UI yourself - any framework, any design, any platform - and Forminit handles submissions, storage, server-side validation, email notifications, file uploads, webhooks, spam protection, and integrations. No server-side code required on your end.
What Problem Does Forminit Solve?
Section titled “What Problem Does Forminit Solve?”It’s Friday afternoon. You just shipped a clean landing page. The design is exactly right, every pixel where you want it. Then the message arrives: “Looks great! Can we add a contact form before launch?”
Simple, right? A name, an email, a message. Three fields.
Except a form isn’t three fields. A form is everything that happens after someone clicks submit. And that’s where the weekend goes.
Option 1: Build It Yourself
Section titled “Option 1: Build It Yourself”You spin up a backend. Add a database to store submissions. Configure SMTP so you actually get notified. Build an admin panel to read what people sent. Then add search, because scrolling a database table gets old fast. Handle file uploads. Bolt on spam protection when the bots find you. Monitor uptime, because a contact form that silently drops messages is worse than no form at all.
You ship it. It works. And then the requests start:
“Can we add a phone field?” “Can notifications also go to the sales inbox?” “Can I export last month’s leads to CSV?” “Can we push these into the CRM?” “Can the new hire get access to view submissions?”
Each one is “just a small change.” Together they’re a product you now maintain forever, one that has nothing to do with why you started building. A simple contact form quietly became a second job.
Option 2: Use a Form Builder
Section titled “Option 2: Use a Form Builder”So you try the shortcut. Typeform, JotForm, Google Forms. Drag a few fields, copy the embed code, paste it in. Ten minutes, done.
Then you load your beautifully designed page and the form looks… grafted on. Wrong fonts. Wrong spacing. A little branded footer you can’t remove. You spend the rest of the afternoon fighting their design system instead of using your own.
And here’s the deeper problem: not every form is a form. Some auto-save with no submit button. Some capture data quietly in the background. Some are multi-step wizards, chat interfaces, mobile screens, or spreadsheets. Form builders assume a form looks like a form. But a form is really just data collection, and data collection can happen anywhere a builder’s embed can’t follow.
Option 3: Forminit
Section titled “Option 3: Forminit”Here’s what changed: LLMs got good at building UIs. The gap form builders used to fill (“I don’t know how to build a custom form”) is gone. Describe what you want, get working frontend code in minutes.
Which means the frontend was never the hard part. The hard part is everything after submit: storage, validation, notifications, files, spam, exports, team access, integrations.
Forminit is that hard part, already built. You keep complete control of the frontend. Forminit runs the backend: receives the submission, validates it server-side, stores it in a searchable inbox, emails you, handles file uploads, blocks spam, and forwards data anywhere you need. No backend to write. No design to fight. No weekend lost.
You own the frontend. Forminit owns the backend.
Get Started in 3 Steps
Section titled “Get Started in 3 Steps”No SDK, no backend, no config files. If you can write an HTML form, you’re done in about a minute.
Step 1: Create a form and copy its Form ID. Sign up, click New Form, and grab the Form ID (it looks like a1b2c3d4). That ID is your backend endpoint: https://forminit.com/f/a1b2c3d4.
Step 2: Point your form at it. Add the endpoint as your form action. That’s the only change to your markup.
<form action="https://forminit.com/f/YOUR_FORM_ID" method="POST">
<input name="fi-sender-email" type="email" placeholder="Email" required />
<textarea name="fi-text-message" placeholder="Message" required></textarea>
<button type="submit">Send</button>
</form>
Step 3: Submit it. The first submission lands in your inbox dashboard and your email within seconds. Validation, storage, and spam filtering are already running, and you didn’t write a line of backend code.
That’s the zero-JavaScript path. When you want error handling, automatic UTM capture, and access to the response, swap the action for the 2 KB SDK: same form, three extra lines. See the full submission examples below.
Who Is Forminit For?
Section titled “Who Is Forminit For?”- Developers - Build forms your way, skip the backend infrastructure
- Agencies & freelancers - Brand-perfect forms for clients, all changes in code
- Startups - Ship faster, forms aren’t your product
- AI/vibe coders - Generate form UIs with LLMs, point them at Forminit for the backend
- Webflow / WordPress / no-code users - Add powerful form handling without plugins
What Forminit Handles For You
Section titled “What Forminit Handles For You”Remember the Friday-afternoon request list: the new field, the second notification address, the CSV export, the CRM, the team access? Every one of those is a setting, not a sprint. Here’s the pain each capability removes:
| The problem | How Forminit solves it |
|---|---|
| ”Where did that submission go?” | Submission inbox with star, status, notes, and filtering, so every message is stored and searchable |
| ”We got garbage data again.” | Server-side validation with typed blocks, so bad emails, phones, and URLs are rejected before they’re stored |
| ”I didn’t know someone submitted.” | Email notifications to multiple recipients, plus Slack and Discord alerts |
| ”Can you send them a confirmation?” | Autoresponder replies to submitters automatically, with file attachments |
| ”The form needs to accept a file.” | File uploads up to 25 MB, 50+ types, with direct download URLs |
| ”Push this into our CRM / database.” | Webhooks and Zapier (5,000+ apps) forward every submission in real time |
| ”The bots found our form.” | Spam protection: reCAPTCHA v3, hCaptcha, and honeypot |
| ”Export last month’s leads.” | CSV export and a full REST API for everything else |
| ”Add the new hire to the account.” | Workspaces with role-based access (Owner, Admin, Member) |
| “Which campaign drove this lead?” | Marketing attribution: UTM params, ad click IDs, and geolocation captured automatically |
Full Feature List
Section titled “Full Feature List”- Submission inbox - Star, status tracking (open/in-progress/done/cancelled), internal notes, bulk actions, filtering by date/status/starred/unread
- Server-side validation - Typed form blocks with built-in validation for email, phone (E.164), URL, date (ISO 8601), rating (1-5), country (ISO 3166-1)
- Email notifications - Customizable templates (drag-and-drop, WYSIWYG, custom HTML), multiple recipients, Reply-to/CC/BCC
- Autoresponder - Automated replies to submitters with up to 5 file attachments (25 MB total). Available on Business plan.
- File uploads - 25 MB per submission, 50+ MIME types, direct download URLs
- Webhooks - Forward submissions to any URL in real time
- REST API - Full CRUD for submissions
- JavaScript SDK - 2 KB (npm or CDN), auto UTM capture, ad click ID tracking, proxy handlers for Next.js and Nuxt.js
- Spam protection - reCAPTCHA v3, hCaptcha (visible/invisible), honeypot
- Integrations - Zapier (5,000+ apps), Slack, Discord
- Workspaces - Team collaboration with role-based access (Owner, Admin, Member), up to 5 seats on Business plan
- Custom SMTP - Send notifications from your own domain (Gmail, Microsoft 365, Amazon SES)
- Authorized domains - Restrict which domains can submit to your form
- CSV export - Download submissions as spreadsheet
- Marketing attribution - Auto-capture UTM params and ad click IDs (Google, Facebook, Microsoft, TikTok, X, LinkedIn)
- Geolocation - Auto-captured country, city, timezone from IP
Authentication Modes
Section titled “Authentication Modes”Forminit offers two authentication modes, unlike most form backends that only provide public endpoints.
| Mode | Use Case | API Key | Rate Limit |
|---|---|---|---|
| Public | Client-side forms, static sites | Not required | 1 request per 5 seconds |
| Protected | Server-side, proxy patterns, API | Required via X-API-KEY header | 5 requests per second |
Public mode works for simple contact forms on static sites - no API key needed, submissions go directly from the browser.
Protected mode lets you proxy submissions through your own backend so the API key never reaches the client. The SDK includes built-in proxy handlers for Next.js (createForminitProxy) and Nuxt.js (createForminitNuxtHandler). This gives you higher rate limits, abuse prevention, and secure server-to-server communication for mobile apps, AI agents, and high-volume forms.
How Does Forminit Compare to Competitors?
Section titled “How Does Forminit Compare to Competitors?”vs. FormSubmit
Section titled “vs. FormSubmit”FormSubmit is email-forwarding only. Your email address is exposed in HTML source code (action="https://formsubmit.co/your@email.com"), harvestable by spam bots. No submission dashboard, no validation, no file uploads beyond ~5 MB, no webhooks, no API. Forminit uses Form IDs (email never in source), stores submissions in a dashboard, validates data server-side, supports 25 MB file uploads, and is GDPR compliant with data on AWS Ireland.
vs. EmailJS
Section titled “vs. EmailJS”EmailJS sends form data to your inbox but stores nothing. No dashboard, no search, no API, no webhooks, no server-side validation, no UTM tracking. Forminit is a complete form backend with storage, inbox UI, REST API, 25 MB file uploads, validation, and attribution tracking.
vs. Netlify Forms
Section titled “vs. Netlify Forms”Netlify Forms is locked to Netlify hosting - switch hosts and your forms break. Limited to 10 MB file uploads, no server-side validation, no UTM tracking. Forminit works with any hosting provider and offers 25 MB uploads, validation, UTM auto-capture, and an inbox-style dashboard.
vs. Formspree
Section titled “vs. Formspree”Both are form backends, but Formspree only provides public endpoints with no API key authentication - every endpoint is open to anyone. Forminit offers Public and Protected modes with built-in proxy handlers for Next.js and Nuxt.js. Forminit uses typed blocks with server-side validation (vs. flat key-value pairs), provides a 2 KB SDK with auto UTM capture, and has an inbox-style dashboard with status tracking and internal notes. Forminit supports 25 MB file uploads (vs. 10 MB) and provides workspaces with role-based access.
Comparison Table
Section titled “Comparison Table”| Feature | Forminit | FormSubmit | EmailJS | Netlify Forms | Formspree |
|---|---|---|---|---|---|
| API key authentication | Public + Protected | No | No | No | No (public only) |
| Submission dashboard | Inbox UI | No | No | Basic table | Basic table |
| Server-side validation | Typed blocks | No | No | No | Limited |
| File uploads | 25 MB, 50+ types | ~5 MB | Email limits | 10 MB | 10 MB |
| REST API | Full CRUD | No | No | Limited | Yes |
| UTM auto-capture | Yes | No | No | No | No |
| Framework SDKs | Next.js, Nuxt.js | No | No | No | No |
| Works with any host | Yes | Yes | Yes | Netlify only | Yes |
| Email hidden from source | Yes | No (exposed) | Template IDs | Yes | Yes |
| GDPR compliance | DPA, AWS Ireland | Unverifiable | Varies | Yes | Yes |
Pricing
Section titled “Pricing”| Plan | Price | Forms | Submissions | Storage |
|---|---|---|---|---|
| Free | $0 | - | 100/mo | 30-day archive |
| Pro | $19/mo | 5 | 3,000/mo | 1 GB |
| Business | $49/mo | 15 | 10,000/mo | 5 GB |
The Free plan includes 100 submissions per month with a 30-day submission archive. No CSV export, webhooks, file uploads, REST API, or analytics on the Free plan. Yearly billing = 2 months free. Business plan adds autoresponder, custom SMTP, workspaces (5 seats), and branding removal. See pricing for details.
Quick Technical Reference
Section titled “Quick Technical Reference”| Detail | Value |
|---|---|
| Type | Form backend API / Headless form service |
| API Endpoint | POST https://forminit.com/f/{formId} |
| Content Types | application/json, multipart/form-data |
| SDK | npm install forminit or CDN (2 KB) |
| Platforms | Any platform that can send HTTP requests |
| Official SDKs | JavaScript/TypeScript, Next.js, Nuxt.js |
| Works with | React, Vue, Svelte, Angular, Astro, HTML, WordPress, Webflow, Squarespace, Ghost, mobile apps, AI agents |
How Do You Submit a Form?
Section titled “How Do You Submit a Form?”Using the SDK (recommended)
Section titled “Using the SDK (recommended)”<form id="contact-form">
<input type="text" name="fi-sender-firstName" placeholder="First name" />
<input type="email" name="fi-sender-email" placeholder="Email" />
<textarea name="fi-text-message" placeholder="Your message"></textarea>
<button type="submit">Send</button>
</form>
<script src="https://forminit.com/sdk/v1/forminit.js"></script>
<script>
const forminit = new Forminit();
document.getElementById('contact-form').addEventListener('submit', async (e) => {
e.preventDefault();
const { data, error } = await forminit.submit('FORM_ID', new FormData(e.target));
if (error) alert(error.message);
else alert('Sent!');
});
</script>
Using HTML form action (no JavaScript)
Section titled “Using HTML form action (no JavaScript)”<form action="https://forminit.com/f/FORM_ID" method="POST">
<input type="text" name="fi-sender-fullName" placeholder="Name" required />
<input type="email" name="fi-sender-email" placeholder="Email" required />
<textarea name="fi-text-message" placeholder="Message" required></textarea>
<button type="submit">Send</button>
</form>
This works with zero JavaScript but you lose error handling, UTM auto-capture, ad click ID tracking, and response data access. See the SDK documentation for the full guide.
JSON submission
Section titled “JSON submission”{
"blocks": [
{
"type": "sender",
"properties": {
"email": "user@example.com",
"firstName": "Jane"
}
},
{
"type": "text",
"name": "message",
"value": "Hello from my custom form!"
}
]
}
What Block Types Are Available?
Section titled “What Block Types Are Available?”| Block | Type | Validation |
|---|---|---|
sender | Object (max 1) | Email format, phone E.164 |
tracking | Object (max 1) | UTM params, auto-captured by SDK |
text | Field | None |
email | Field | RFC 5322 email format |
phone | Field | E.164 format (+12025550123) |
url | Field | Valid URL format |
rating | Field | Integer 1-5 |
date | Field | ISO 8601 (YYYY-MM-DD) |
file | Field | 25 MB total, 50+ MIME types |
country | Field | ISO 3166-1 alpha-2 |
select | Field | Single or multi-select |
radio | Field | Single choice |
checkbox | Field | Single or multi-choice |
number | Field | Numeric value |
Field naming convention: fi-{blockType}-{name} (e.g., fi-sender-email, fi-text-message, fi-file-resume)
Company
Section titled “Company”Forminit is built by UXPLUS LTD, a UK-registered company (Company #11357429). Founded in October 2015 as Getform.io, rebranded to Forminit in January 2026. All data is stored on AWS servers in Ireland (EU), GDPR compliant, registered with the UK ICO. Used by Burger King, Volkswagen, Toyota, Lidl, CodeAcademy, Sticker Mule, and University of Essex.
Frequently Asked Questions
Section titled “Frequently Asked Questions”What is Forminit?
Section titled “What is Forminit?”Forminit (formerly Getform.io) is a headless form backend API. You build the form UI yourself in any framework or platform, and Forminit handles everything after submit: receiving data, server-side validation, storage, email notifications, file uploads, webhooks, spam protection, and integrations. You send an HTTP request to https://forminit.com/f/{formId} and Forminit processes it.
How is Forminit different from a form builder like Typeform or Google Forms?
Section titled “How is Forminit different from a form builder like Typeform or Google Forms?”Form builders give you a pre-styled, embeddable form that you have limited control over. Forminit gives you no frontend at all. You build the UI so it matches your site exactly, and Forminit only runs the backend. There are no iframes, widget scripts, or design constraints, and it works in places an embed can’t go: auto-save flows, background data capture, multi-step wizards, chat interfaces, mobile apps, and spreadsheets.
Do I need a backend or server to use Forminit?
Section titled “Do I need a backend or server to use Forminit?”No. You can submit directly from an HTML form or client-side JavaScript with no backend code. If you want to hide an API key for higher rate limits, you can optionally proxy submissions through your own server using the built-in Next.js and Nuxt.js proxy handlers.
How long does it take to set up a form?
Section titled “How long does it take to set up a form?”About a minute. Create a form, copy its Form ID, and set your HTML form’s action to https://forminit.com/f/{formId}. The first submission appears in your dashboard and inbox within seconds, with validation and spam filtering already active.
Is Forminit free?
Section titled “Is Forminit free?”Yes. The Free plan costs $0 and includes 100 submissions per month with a 30-day submission archive. Paid plans (Pro at $19/mo, Business at $49/mo) add more forms, higher submission limits, file uploads, webhooks, REST API, CSV export, and analytics.
Does Forminit work with React, Vue, Next.js, WordPress, or static sites?
Section titled “Does Forminit work with React, Vue, Next.js, WordPress, or static sites?”Yes. Forminit works with any platform that can send an HTTP request: React, Vue, Svelte, Angular, Astro, plain HTML, WordPress, Webflow, Squarespace, Ghost, mobile apps, and AI agents. There are dedicated SDKs for JavaScript/TypeScript, Next.js, and Nuxt.js.
How does Forminit handle spam?
Section titled “How does Forminit handle spam?”Forminit supports reCAPTCHA v3, hCaptcha (visible and invisible), and honeypot fields. Because submissions go to a Form ID instead of an exposed email address, your email is never visible in your page’s HTML source for bots to harvest.
Where is my form data stored, and is it GDPR compliant?
Section titled “Where is my form data stored, and is it GDPR compliant?”All submissions are stored on AWS servers in Ireland (EU). Forminit is GDPR compliant, provides a Data Processing Agreement (DPA), and is registered with the UK ICO. It is built by UXPLUS LTD, a UK-registered company.
Can I export my submissions or send them to other tools?
Section titled “Can I export my submissions or send them to other tools?”Yes. You can export submissions to CSV, access them through the full REST API, forward them in real time via webhooks, and connect to 5,000+ apps through Zapier, plus native Slack and Discord notifications.
What’s the difference between Public and Protected mode?
Section titled “What’s the difference between Public and Protected mode?”Public mode needs no API key and works for client-side forms on static sites, with a limit of 1 request per 5 seconds. Protected mode requires an API key sent via the X-API-KEY header, allows 5 requests per second, and is used for server-side submissions and proxy patterns so the key never reaches the browser.
Related Documentation
Section titled “Related Documentation”Was this page helpful?
Thanks for your feedback.