Form API for HTML forms
Send any form to one endpoint, https://api.formclick.io/submit, and Formclick handles the rest: spam filtering, email notifications, a submission dashboard, webhooks and integrations. No server, no backend code.
In short: Formclick is a form API. Add your access key as a hidden field and set your form’s action to https://api.formclick.io/submit. Every submission is stored, emailed to you and sent on to your tools. It accepts HTML form posts, JSON and multipart data, so it works with any website, framework or app. The Free plan includes 250 submissions a month.
Quick start
- Create a free Formclick account and a form to get its access key.
- Send submissions to
https://api.formclick.io/submitwith the key in anaccess_keyfield. - Submit once to test. The submission appears in your inbox and dashboard.
<form action="https://api.formclick.io/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<input type="text" name="name" required>
<input type="email" name="email" required>
<textarea name="message" required></textarea>
<button type="submit">Send</button>
</form>const res = await fetch('https://api.formclick.io/submit', {
method: 'POST',
headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
body: JSON.stringify({
access_key: 'YOUR_ACCESS_KEY',
name: 'Ada Lovelace',
email: 'ada@example.com',
message: 'Hello from my site',
}),
});
const result = await res.json(); // { success: true, message: "…" }curl -X POST https://api.formclick.io/submit \
-H "Content-Type: application/json" \
-d '{"access_key":"YOUR_ACCESS_KEY","email":"ada@example.com","message":"Hi"}'More working examples (contact form, file upload, no-JavaScript and fetch) are open source in the formclick/html-form-examples repository on GitHub.
Request
| Endpoint | POST https://api.formclick.io/submit, or POST https://api.formclick.io/submit/YOUR_ACCESS_KEY with the key in the URL |
|---|---|
| Content types | application/json, application/x-www-form-urlencoded (a normal HTML form) and multipart/form-data |
| Authentication | None beyond the form’s access_key. CORS is open, so browsers can call it from any site. |
| Responses | JSON when you send JSON or ask for it; a hosted result page (or your redirect) for plain browser form posts. |
Special fields
| Field | What it does |
|---|---|
access_key | Required. Identifies your form. It can only submit; it can’t read data or change settings, so it’s safe in public HTML. |
subject | Optional. Sets the notification email’s subject line. |
from_name | Optional. Sets the notification email’s sender name. |
redirect | Optional. A URL to send the visitor to after a successful submission. On the Free plan it must be on the same website as the form; paid plans can redirect anywhere. |
botcheck, _honeypot | Optional spam traps. Leave them empty for humans; filled values are silently discarded. |
g-recaptcha-response, cf-turnstile-response | Added automatically by reCAPTCHA or Cloudflare Turnstile when captcha is turned on for the form. |
any other name | Every other field is saved and delivered as-is: name, email, phone, message, custom fields. |
Response
{
"success": true,
"message": "Thank you! Your message has been received."
}{
"success": false,
"error": "Form not found",
"message": "Form not found"
}| Status | Meaning |
|---|---|
200 | Saved. JSON clients get { success: true }; a plain browser post shows a hosted thank-you page, or follows your redirect. |
400 | Missing or malformed access key, an empty submission, or a missing or failed captcha. |
403 | The form is disabled, the website isn’t on the form’s allowed domains, or the monthly submission limit is reached. |
404 | No form exists for this access key. |
413 | The request body is larger than 100 KB (files are uploaded separately). |
429 | Too many submissions from one visitor in a short time. |
Limits and spam protection
- Request body up to 100 KB. Files are uploaded separately by the Formclick script, up to 5 MB each.
- Each visitor can submit a form up to 5 times in 10 minutes; an identical submission within 2 minutes is ignored.
- Every plan filters spam and supports honeypot fields. Suspected spam is kept in a separate Spam tab and never triggers emails or integrations.
- Monthly submission limits depend on your plan (below).
What happens after a submission
- Email: an instant notification with every field, and optional autoresponders to the sender.
- Dashboard: search, review and export every submission.
- Databases: save each response as a record in your own tables. See Formclick Databases.
- Integrations: Google Sheets, Notion, Airtable, monday.com, Neon, Supabase, PostgreSQL, MySQL, SQL Server, MongoDB, Brevo, MailerLite, ActiveCampaign, SMTP Email, Discord, n8n, Webhook, HubSpot. See all integrations.
Pricing
| Plan | Price (USD) | Submissions per month |
|---|---|---|
| Free | $0 | 250 |
| Starter | $59/year | 5,000 |
| Pro | $15/month or $150/year | 10,000 |
| Business | $39/month or $390/year | 20,000 |
Every plan has unlimited forms. See pricing for every feature.
FAQ
What is a form API?
A form API is an HTTP endpoint that receives form submissions so you don’t have to write or host backend code. You point your form (or a fetch request) at it, and the service stores the submission, emails you and sends it on to your tools.
Is the Formclick form API free?
Yes, the Free plan includes 250 submissions a month and unlimited forms, with no credit card. Paid plans add higher limits, webhooks, captcha, autoresponders and file uploads.
Does it work with React, Next.js, Vue or a static site?
Yes. The endpoint accepts a plain HTML form post, JSON from fetch or axios, and multipart form data, so it works with any framework, static site generator or mobile app.
Do I need an API key or authentication header?
No header is needed. Each form has an access key that you send as the access_key field. It can only create submissions for that form, so it is safe to include in public code.
How do I stop spam?
Every plan includes a spam filter, honeypot fields and per-visitor rate limits. Paid plans add Google reCAPTCHA, Cloudflare Turnstile and domain restriction.
Can I upload files through the API?
Yes. Add file inputs and the Formclick script uploads each file securely before the form is submitted, up to 5 MB per file on plans with file uploads.
Full reference
API reference
The submit endpoint, parameters and responses in detail.
Special fields
Subjects, redirects, honeypots and more.
HTML form examples on GitHub
Open-source contact, file upload, no-JavaScript and fetch examples you can copy.
Framework guides
Copy-paste setups for React, Next.js, Vue, WordPress and more.
Keep your HTML. Let Formclick handle the rest.
Free plan, no credit card. Your first form can be live in a few minutes.
Get started free