Get a contact form API built for AI to configure
FormThunder is a form backend: point a form at it, and submissions reach your inbox, webhook or Slack. Tell Claude Code or Cursor what you want, and it creates the form, adds it to your site, matches the emails to your brand and sends a real test.
Free access keys open at launch. Until then, you can read how it works in the docs.
Add a contact form to this site that emails hello@example.com, and make the emails match our branding.
- list_linked_emailshello@example.com is verified
- create_form name: "Contact form", recipients: ["hello@example.com"]form created, key returned
- get_snippet framework: "nextjs"code written to app/contact/form.tsx
- extract_brand_from_website url: "https://example.com"logo, primary #0f766e, Inter, 8px radius
- set_brand corrected against tailwind.configbrand kit saved
- update_form theme: "card"emails now use your brand
- test_formemail delivered
Or skip the AI. This HTML works too:
<form action="https://formthunder.com/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<input name="name" required>
<input name="email" type="email" required>
<textarea name="message" required></textarea>
<button type="submit">Send</button>
</form>Your AI does the whole setup, and it can check its own work
Most form services assume a person is clicking through a dashboard. FormThunder has an MCP server and a CLI on every plan, with 48 tools covering everything the dashboard does.
- 1
It creates the form
The agent checks your verified addresses, reuses a form if one fits, and creates one if not. The access key comes back in the same call.
- 2
It wires it into your site
get_snippet returns working code for html, react, nextjs, vue, svelte or astro. The agent puts it in your project and keeps your own styling and field names.
- 3
It matches your brand
It reads your live site for the logo, colours and fonts, checks them against your code, and saves a brand kit that every email theme uses.
- 4
It proves it works
test_form sends a real submission and reports each delivery. check_form_on_site fetches your deployed page and returns a fix for anything that's wrong.
claude mcp add formthunder -- npx -y formthunder mcpWhen something goes wrong, the error tells your AI what to do
Every API error carries a hint with the next step, and many tool results carry a next_step field. An agent can usually fix the problem or tell you exactly what it needs from you. It won't guess or go in circles.
{
"error": {
"code": "feature_requires_pro",
"message": "Webhooks need the Pro plan.",
"hint": "Upgrade at https://formthunder.com/app/billing or run `formthunder billing upgrade`.",
"docs": "https://formthunder.com/docs/webhooks"
}
}Emails that look like they came from your site
Your AI reads your website and saves a brand kit: logo, colours, fonts, corner radius and footer. Three built-in email themes pick it up on the free plan. On Pro, the agent can write a custom HTML template, preview it, fix the warnings and send a test to your inbox.
Brand kit, on every plan
Five themes
Custom HTML, on Pro
Read about email templates and the brand kit.
Your leads are saved first, then delivered
A form that sends email during the request can lose a lead when a provider has a bad minute. FormThunder writes first and delivers from an outbox, so a failed send becomes a retry that you can see.
Saved before we say success
Retries for up to 24 hours
You can see every attempt
Over your limit, still kept
Two availability zones on AWS
See how it's built. We don't publish an uptime number yet, because we've only just started and wouldn't have an honest one.
Already on Web3Forms? Change two lines
FormThunder takes the same HTML. Field names like subject, from_name, replyto, redirect and botcheck work as they are.
- <form action="https://api.web3forms.com/submit" method="POST">
- <input type="hidden" name="access_key" value="YOUR_WEB3FORMS_KEY">
+ <form action="https://formthunder.com/submit" method="POST">
+ <input type="hidden" name="access_key" value="YOUR_FORMTHUNDER_KEY">Run forms for your clients, and bill them through your own Stripe
The Agency plan gives you unlimited free client accounts under one login. Upgrade any client to Pro for $5 a month on your bill, and charge them whatever you like through your own Stripe account. Your AI can work inside any client's account.
Start free, and pay when your forms get busy
Free
$0
250 submissions a month
Everything your AI needs to set up a form, with built-in email themes.
Pro
$12/mo
10,000 submissions a month
Custom email templates, attachments, webhooks and chat delivery.
Agency
$39/mo
20,000 submissions a month on your own forms
Unlimited free client accounts, $5/mo client upgrades and client billing through your own Stripe.
Questions
What is a contact form API?
It's a service that receives form posts over HTTP, stores them and delivers them to you, so your site doesn't need a server or mail setup. FormThunder accepts a plain HTML form post or JSON at one URL, and sends each submission to your email, webhook or chat.
Which AI tools can configure FormThunder?
Anything that speaks MCP, such as Claude Code and Cursor, or anything that can run a command line, using npx formthunder. MCP and the CLI are included on the free plan.
Do I need to use AI?
No. A plain HTML form works by itself, and you can manage everything in the dashboard. The AI tools are there if you want them to do the setup.
Is it safe to put the access key in my HTML?
Yes. The access key is public by design and can only send to addresses you've verified. API keys, which start with ft_live_, are the secret ones, and they stay on your machine or server.
Can I switch from Web3Forms?
Yes. FormThunder accepts the same field names, so you change the form's action URL and the access key. The fields stay as they are.
What happens when I go over 250 submissions on the free plan?
New submissions are stored and held. Upgrade and they're delivered. You get an email at 80% of the limit and when you reach it.
How long has FormThunder been running?
It's new, and we don't have customers to show you yet. So we don't quote uptime numbers or testimonials. The reliability page describes what the system does, and you can start on the free plan to judge it yourself.
Get a key and send your first test in a few minutes
The free plan covers 250 submissions a month, with MCP, the CLI and the brand kit included.