splitforms.com
10 COPY-PASTE FORM EMBEDS · FREE FOREVER

Form embed code, ready to paste. Ten templates.

Ten production-grade HTML form snippets — contact, newsletter, lead capture, support ticket, RSVP, feedback, beta waitlist, job application, quote request, demo request. Each form posts to splitforms.com out of the box. Replace one access key, paste, ship. No SDK, no install, no PHP.

No credit card. 1,000 submissions/month free. Spam filtering, webhooks, file uploads, and dashboard included.

On this page
  1. 01Contact form
  2. 02Newsletter signup
  3. 03Lead capture form
  4. 04Support ticket form
  5. 05Event RSVP form
  6. 06Feedback form
  7. 07Beta waitlist form
  8. 08Job application form
  9. 09Quote request form
  10. 10Demo request form
01 / 10

Contact form

For: Marketing sites, agency portfolios, indie projects

The classic three-field contact form (name, email, message). Drops into any HTML page, Webflow embed, Carrd block, or React component without modification.

contact-form.html
<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 contact form submission" />

  <label for="cf-name">Your name</label>
  <input id="cf-name" type="text" name="name" required />

  <label for="cf-email">Email address</label>
  <input id="cf-email" type="email" name="email" required />

  <label for="cf-message">Message</label>
  <textarea id="cf-message" name="message" rows="5" required></textarea>

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />

  <button type="submit">Send message</button>
</form>
Live preview
Use this template See styled variants
02 / 10

Newsletter signup

For: Blogs, SaaS landing pages, indie products

Email-only signup form for a newsletter or product mailing list. Pair with a webhook to push new addresses to ConvertKit, Buttondown, or Mailchimp.

newsletter-signup.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="list" value="newsletter" />

  <label for="nl-email">Get the weekly digest</label>
  <input id="nl-email" type="email" name="email" placeholder="you@domain.com" required />

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />

  <button type="submit">Subscribe</button>
</form>
Live preview
Use this template See styled variants
03 / 10

Lead capture form

For: B2B landing pages, paid-traffic destinations

Capture qualified leads with company, role, and team-size fields. Forwarded to Slack via webhook hits sales reps faster than any CRM-first flow.

lead-capture-form.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="form" value="lead-capture" />

  <label for="lc-name">Full name</label>
  <input id="lc-name" type="text" name="name" required />

  <label for="lc-work-email">Work email</label>
  <input id="lc-work-email" type="email" name="email" required />

  <label for="lc-company">Company</label>
  <input id="lc-company" type="text" name="company" required />

  <label for="lc-role">Your role</label>
  <input id="lc-role" type="text" name="role" />

  <label for="lc-size">Team size</label>
  <select id="lc-size" name="team_size">
    <option value="1-10">1–10</option>
    <option value="11-50">11–50</option>
    <option value="51-250">51–250</option>
    <option value="250+">250+</option>
  </select>

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />

  <button type="submit">Talk to us</button>
</form>
Live preview
Use this template See styled variants
04 / 10

Support ticket form

For: Help centres, SaaS apps, internal IT portals

Structured support intake with category, severity, and a detailed description field. Pipe to a Slack channel, a Linear webhook, or an email alias.

support-ticket-form.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="form" value="support-ticket" />

  <label for="st-email">Your email</label>
  <input id="st-email" type="email" name="email" required />

  <label for="st-subject">Subject</label>
  <input id="st-subject" type="text" name="subject" required />

  <label for="st-category">Category</label>
  <select id="st-category" name="category" required>
    <option value="account">Account / billing</option>
    <option value="bug">Bug or error</option>
    <option value="feature">Feature request</option>
    <option value="other">Something else</option>
  </select>

  <label for="st-severity">Severity</label>
  <select id="st-severity" name="severity">
    <option value="low">Low — minor inconvenience</option>
    <option value="medium" selected>Medium — workaround exists</option>
    <option value="high">High — blocking work</option>
  </select>

  <label for="st-description">Description</label>
  <textarea id="st-description" name="description" rows="6" required></textarea>

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />

  <button type="submit">Open ticket</button>
</form>
Live preview
Use this template See styled variants
05 / 10

Event RSVP form

For: Wedding sites, meetups, launch events, conferences

Collect attendance, headcount, and dietary preferences for any event. Works on a Carrd one-pager or a static Astro event page.

rsvp-form.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="form" value="rsvp" />

  <label for="rsvp-name">Your name</label>
  <input id="rsvp-name" type="text" name="name" required />

  <label for="rsvp-email">Email</label>
  <input id="rsvp-email" type="email" name="email" required />

  <label for="rsvp-attending">Will you be attending?</label>
  <select id="rsvp-attending" name="attending" required>
    <option value="yes">Yes — I'll be there</option>
    <option value="maybe">Maybe</option>
    <option value="no">No — can't make it</option>
  </select>

  <label for="rsvp-guests">Number of guests (including you)</label>
  <input id="rsvp-guests" type="number" name="guests" min="1" max="10" value="1" />

  <label for="rsvp-diet">Dietary preferences</label>
  <input id="rsvp-diet" type="text" name="dietary" placeholder="Vegetarian, gluten-free, none, etc." />

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />

  <button type="submit">Send RSVP</button>
</form>
Live preview
Use this template See styled variants
06 / 10

Feedback form

For: Product pages, beta releases, post-purchase pages

Five-star rating plus an open-text response. Use it on a thank-you page, a release-notes blog, or a public roadmap.

feedback-form.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="form" value="feedback" />

  <label for="fb-rating">How would you rate the experience?</label>
  <select id="fb-rating" name="rating" required>
    <option value="5">★★★★★ — Excellent</option>
    <option value="4">★★★★ — Good</option>
    <option value="3" selected>★★★ — Okay</option>
    <option value="2">★★ — Poor</option>
    <option value="1">★ — Bad</option>
  </select>

  <label for="fb-comments">What could be better?</label>
  <textarea id="fb-comments" name="comments" rows="5" required></textarea>

  <label for="fb-email">Email (optional, if you'd like a reply)</label>
  <input id="fb-email" type="email" name="email" />

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />

  <button type="submit">Send feedback</button>
</form>
Live preview
Use this template See styled variants
07 / 10

Beta waitlist form

For: Pre-launch SaaS, Y Combinator landing pages, indie launches

Collect emails plus a one-line use case for a closed beta. Tag with referrer source so you can prioritise invites by channel.

beta-waitlist-form.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="form" value="beta-waitlist" />

  <label for="bw-email">Email for the invite</label>
  <input id="bw-email" type="email" name="email" required />

  <label for="bw-usecase">What would you build with it?</label>
  <textarea id="bw-usecase" name="use_case" rows="3" required></textarea>

  <label for="bw-source">Where did you hear about us?</label>
  <input id="bw-source" type="text" name="referrer" placeholder="HN, Twitter, a friend…" />

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />

  <button type="submit">Join the waitlist</button>
</form>
Live preview
Use this template See styled variants
08 / 10

Job application form

For: Careers pages, hiring landing pages, recruiter portfolios

Collect candidate name, role of interest, LinkedIn or portfolio URL, and a cover-letter paragraph. Upload-attachment support is enabled when paired with the splitforms file-upload plan.

job-application-form.html
<form action="https://splitforms.com/api/submit" method="POST" enctype="multipart/form-data">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="form" value="job-application" />

  <label for="ja-name">Full name</label>
  <input id="ja-name" type="text" name="name" required />

  <label for="ja-email">Email</label>
  <input id="ja-email" type="email" name="email" required />

  <label for="ja-role">Role you're applying for</label>
  <input id="ja-role" type="text" name="role" required />

  <label for="ja-portfolio">Portfolio or LinkedIn URL</label>
  <input id="ja-portfolio" type="url" name="portfolio" placeholder="https://linkedin.com/in/…" />

  <label for="ja-cover">Why this role?</label>
  <textarea id="ja-cover" name="cover_letter" rows="6" required></textarea>

  <label for="ja-resume">Resume (PDF)</label>
  <input id="ja-resume" type="file" name="resume" accept="application/pdf" />

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />

  <button type="submit">Submit application</button>
</form>
Live preview
Use this template See styled variants
09 / 10

Quote request form

For: Agencies, freelancers, contractors, B2B services

Project-scoped intake with budget, timeline, and project description. Built so the inbound message arrives qualified, not as a vague 'can you tell me your prices?'

quote-request-form.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="form" value="quote-request" />

  <label for="qr-name">Your name</label>
  <input id="qr-name" type="text" name="name" required />

  <label for="qr-email">Email</label>
  <input id="qr-email" type="email" name="email" required />

  <label for="qr-company">Company (optional)</label>
  <input id="qr-company" type="text" name="company" />

  <label for="qr-service">Service needed</label>
  <select id="qr-service" name="service" required>
    <option value="design">Design</option>
    <option value="development">Development</option>
    <option value="branding">Branding</option>
    <option value="consulting">Consulting</option>
    <option value="other">Other</option>
  </select>

  <label for="qr-budget">Budget range</label>
  <select id="qr-budget" name="budget">
    <option value="under-5k">Under $5,000</option>
    <option value="5-15k">$5,000–$15,000</option>
    <option value="15-50k">$15,000–$50,000</option>
    <option value="50k-plus">$50,000+</option>
  </select>

  <label for="qr-timeline">Timeline</label>
  <select id="qr-timeline" name="timeline">
    <option value="asap">ASAP</option>
    <option value="1-month">Within a month</option>
    <option value="quarter">This quarter</option>
    <option value="exploring">Just exploring</option>
  </select>

  <label for="qr-details">Project description</label>
  <textarea id="qr-details" name="details" rows="5" required></textarea>

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />

  <button type="submit">Request a quote</button>
</form>
Live preview
Use this template See styled variants
10 / 10

Demo request form

For: B2B SaaS marketing pages, enterprise pricing pages

Demo intake with company size, team role, and a free-text 'what are you trying to solve?' box. Routes straight to your sales-engineering channel via webhook.

demo-request-form.html
<form action="https://splitforms.com/api/submit" method="POST">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY" />
  <input type="hidden" name="form" value="demo-request" />

  <label for="dr-name">Full name</label>
  <input id="dr-name" type="text" name="name" required />

  <label for="dr-email">Work email</label>
  <input id="dr-email" type="email" name="email" required />

  <label for="dr-company">Company</label>
  <input id="dr-company" type="text" name="company" required />

  <label for="dr-role">Your role</label>
  <input id="dr-role" type="text" name="role" />

  <label for="dr-size">Team size</label>
  <select id="dr-size" name="team_size">
    <option value="1-10">1–10</option>
    <option value="11-50">11–50</option>
    <option value="51-250">51–250</option>
    <option value="250+">250+</option>
  </select>

  <label for="dr-goal">What are you trying to solve?</label>
  <textarea id="dr-goal" name="goal" rows="4" required></textarea>

  <input type="checkbox" name="botcheck" style="display:none" tabindex="-1" />

  <button type="submit">Book a demo</button>
</form>
Live preview
Use this template See styled variants

How these embeds work

Three steps. Sixty seconds. Same flow for every snippet on this page — and the same flow on Webflow, Carrd, WordPress, Astro, Next.js, and any other place you can paste HTML.

  1. STEP 01
    Get an access key

    Sign up free with email — your access key appears in the dashboard immediately. No credit card.

  2. STEP 02
    Paste a snippet

    Copy any of the 10 forms above. Replace YOUR_ACCESS_KEY with your key. Paste into your HTML, React, Astro, Hugo, or Webflow page.

  3. STEP 03
    Receive submissions

    Email arrives in seconds. Webhook fires in parallel. Dashboard updates live. CSV export, Slack/Discord forwarding, BCC — all free.

Frequently asked questions

What do I need to do after I copy a form?

Two things. First, replace YOUR_ACCESS_KEY with the access key from your splitforms dashboard — sign-up takes 30 seconds and is free, no credit card. Second, paste the snippet into any HTML page, React component, Webflow embed block, Carrd embed element, WordPress Custom HTML widget, or Astro layout. The form posts to splitforms.com from any origin, so the page works whether you deploy to Vercel, Netlify, Cloudflare Pages, GitHub Pages, S3, or your own shared host.

Do I need to install an SDK or run npm install?

No. Every snippet on this page is a plain HTML <form> tag. There is no SDK to install, no React hook to import, no build-time integration. The form uses the action attribute to POST submissions directly to splitforms.com — exactly the way HTML forms have always worked. That means the snippets work in plain HTML, in static-site generators, in Astro, in Hugo, in Eleventy, in Next.js (App Router and Pages), in Nuxt, in SvelteKit, in Remix, and in WordPress without any framework-specific code.

Are these forms really free?

Yes. The free plan covers 1,000 submissions per month across unlimited forms, with built-in spam filtering, webhooks, file uploads, and the dashboard. There is no time limit and no credit card requirement. If you outgrow 1,000/month, Pro is $5/month for 5,000 submissions and the 4-Year plan is $59 once for 15,000/month over 48 months.

How is spam handled by default?

Two layers, both enabled by default with no configuration. A hidden honeypot field (the botcheck input you can see in every snippet on this page) traps bots that fill every form field. A tuned spam classifier scores everything else — anything suspicious is quarantined to a separate Spam tab in your dashboard so you can review false positives. There is no CAPTCHA on free-tier forms; your visitors do not have to identify traffic lights.

Where do submissions go?

Two places by default: the email address on your splitforms account (one notification email per submission) and the splitforms dashboard (every submission, searchable, exportable to CSV). From the dashboard you can also forward submissions to Slack, Discord, Google Sheets, Notion, Zapier, or any signed HTTP webhook URL. Webhook delivery is included on the free plan — there is no enterprise-tier paywall on integrations.

Can I customise the form's appearance?

Yes — the snippets are intentionally style-free so they inherit your site's CSS. Drop them into any design system and they will pick up your typography, button styles, and form-control styling. If you want a fully styled starter, see the form-templates gallery at /form-templates which has 60+ variants with built-in CSS, including dark mode, glassmorphism, and matching style packs for Tailwind, shadcn/ui, and plain CSS.

Do these forms work on Webflow, WordPress, Squarespace, Wix, Carrd, and Framer?

Yes. Anywhere you can paste raw HTML — including Webflow embed blocks, Carrd embed elements, Framer code components, WordPress Custom HTML blocks, Squarespace code blocks, and Wix HTML embeds — the form works without modification. There is no plugin to install, no platform-specific build, and no JavaScript dependency.

Is there a 'Powered by splitforms' watermark?

On the free plan, submission notification emails include a small 'Powered by splitforms' line in the footer of the email itself. That line is not added to your website or your form HTML — only to the notification emails we send. Paid plans (Pro and 4-Year) remove the attribution from notification emails entirely.

Ten snippets. One access key. Free.

Sign up, copy a form, and start receiving submissions in your inbox in under a minute. 1,000 submissions/month free, every month, no credit card.

Get your free access key