Newsletter Signup Form — Free HTML Form with Mailchimp Sync
A newsletter signup form is a single email field that posts straight to a backend instead of your own server code. This one posts to splitforms at POST https://splitforms.com/api/submit with your access_key in a hidden field, so every new subscriber is stored in your dashboard and emailed to you — and, on Starter and above, forwarded to Mailchimp, ConvertKit, or any ESP that accepts webhook data. Free covers 500 signups a month with unlimited forms and email notifications included.
This is what your subscribers will see
Try it — drop your email in and subscribe.
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
Newsletter Signup Form Code
Paste this into your footer, popup, or inline block. It posts directly to splitforms — no server, no PHP, no API route to write.
<form action="https://splitforms.com/api/submit" method="POST">
<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY">
<input type="hidden" name="subject" value="New newsletter signup">
<input type="hidden" name="form_loaded_at" id="form_loaded_at">
<input type="email" name="email" placeholder="you@example.com" required>
<input type="text" name="first_name" placeholder="First name (optional)">
<!-- Honeypot — leave empty, bots fill every field -->
<input type="checkbox" name="botcheck" style="display:none" tabindex="-1" autocomplete="off">
<button type="submit">Subscribe →</button>
</form>
<script>
document.getElementById('form_loaded_at').value = Date.now();
</script>subject, redirect, and replyto are optional control fields splitforms reads automatically — set redirect to a thank-you page URL to send subscribers there after signup. Building this in React or Next.js instead? The same endpoint accepts a JSON fetch() POST — see the docs for the request format. Newsletter on a WordPress blog? Use the WordPress form guide or the splitforms plugin instead of pasting raw HTML.
How to Add a Newsletter Signup Form to Your Website
- Get a free access key. Sign in to splitforms and create a form to get an access_key. The Free plan covers 500 signups a month with no credit card and unlimited forms.
- Add the email field. Paste the form code below into your footer, a popup, or an inline block, and swap in your access_key. Email is the only required field — first name is optional.
- Add the spam traps. Keep the hidden botcheck honeypot empty and the form_loaded_at time-trap set to the page-load timestamp — both are checked server-side before a signup is stored.
- Test a submission. Submit a test signup from the live page and confirm it lands in your dashboard and inbox — owner email notifications are included free on every plan.
- Connect Mailchimp or your ESP. Turn on the native Mailchimp integration, or forward each signup to ConvertKit, Brevo, ActiveCampaign, or any ESP that accepts webhook data — both are available from the Starter plan ($1/month).
- Redirect subscribers after they sign up. Add a hidden redirect field pointing at a thank-you page, or leave it out — the signup is already stored and routed either way.
What to Ask on a Newsletter Signup Form
Keep the required list short — every extra required field costs signups. A minimal, high-converting newsletter form asks for:
- Email — required, the only field you truly need.
- First name — optional; lets you personalize the welcome email once it reaches your ESP.
- Interest or segment — an optional dropdown, useful if you run more than one newsletter or topic list.
- Consent checkbox — optional; for EU, UK, or Canadian visitors, add a plain checkbox field (e.g. "I want to receive emails from you"). It's stored with the submission like any other field, so you have a record of consent.
Send New Subscribers to Mailchimp, ConvertKit, or Any ESP
Mailchimp has a native, one-click integration in the splitforms dashboard, available from the Starter plan ($1/month) — connect it once and every new signup is added to your audience automatically, no webhook to configure. ConvertKit, Brevo, ActiveCampaign, and any other ESP that accepts webhook data can receive signups too: point a signed webhook at your ESP and every submission forwards as JSON. See the ConvertKit, Brevo, and ActiveCampaign guides for the exact webhook setup, or read the general webhooks page. Every signup is also available over the REST API (GET /api/submissionswith a bearer token) if you'd rather pull subscribers into your own tool, or hand the token to an AI agent through the free MCP server.
FAQ
How do I add a newsletter signup form to my website?
Add an email input with a submit button, point the form's action at https://splitforms.com/api/submit, and add your access_key as a hidden field. Each signup is stored in your dashboard and emailed to you automatically — that's included free on every plan.
Can I send new signups to Mailchimp, ConvertKit, or another ESP?
Yes. Mailchimp has a native, one-click integration in the dashboard (Starter plan and above) — connect it once and new signups are added to your audience automatically. ConvertKit, Brevo, ActiveCampaign, or any other ESP that accepts webhook data can receive signups too, via a signed webhook.
Can I add a newsletter form to Ghost, WordPress, Webflow, or a static site?
Yes. The form posts from plain HTML, so it works on any platform — Ghost, WordPress, Webflow, Shopify, Astro, Hugo, or a static site. WordPress sites can also use the splitforms plugin instead of pasting raw HTML.
Is a newsletter signup form backend free?
Yes. Free covers 500 signups a month with unlimited forms, spam filtering, and email notifications included. Starter is $1/month for 1,000 submissions with exports, webhooks, integrations, and an auto-responder; Pro is $5/month for 5,000 with CC/BCC and priority support; the 3-Year plan is a $59 one-time payment for 15,000/month.
How do I stop bots from spamming my newsletter signup form?
Every submission passes through the hidden botcheck honeypot and the form_loaded_at time-trap, plus server-side content heuristics and rate limiting (6 submissions/minute per IP, 20 per 15 minutes — anything past that gets an HTTP 429). Add per-form allowed domains, strict origin mode, or your own reCAPTCHA v2 key for extra coverage.
Does splitforms handle double opt-in or GDPR consent?
splitforms doesn't send a confirmation or double opt-in email itself — it stores the signup, emails you, and can forward it to your ESP (Mailchimp, ConvertKit, etc.), which then handles double opt-in and the welcome sequence. On Starter and above you can also turn on splitforms' own auto-responder for an immediate reply — a single automatic email, not a double opt-in flow. For GDPR/CASL consent, add a checkbox field to the form; it's stored with the submission like any other field.
Can I redirect subscribers after they sign up, or set a custom email subject?
Yes. Add a hidden redirect field with a URL to send subscribers to a thank-you page, and a hidden subject field to control the notification email's subject line — both work with no extra setup.
Can I embed the form as a popup or widget instead of a full page?
Yes. The splitforms dashboard gives you per-platform embed code — plain HTML, a React component, an iframe, or a WordPress shortcode — so you can drop the same form into a popup, a footer widget, or inline in a post without hand-coding the embed.
Start collecting emails — free
500 signups/month, native Mailchimp sync and webhooks to any ESP from $1/mo.
Get Free Access Key →Questions? Email hello@splitforms.com. See full pricing for Starter, Pro, and the 3-Year plan.