The form backend for static sites

Point your form at us. We handle the rest.

Point any HTML form at one endpoint and every POST becomes an email in your inbox and a record you can query — without writing a line of backend code.

Built for developers — and the AI agents writing their forms
contact.html the only line you change
1 <form method="POST"
2 action="https://api.formwire.io/submit">
3 <input type="hidden" name="access_key" value="YOUR-KEY">
4 <input type="text" name="name">
5 <input type="email" name="email">
6 <textarea name="message"></textarea>
7 <button>Send</button>
8 </form>

You keep the HTML and the styling. We handle everything after the POST.

250
Free submissions / month
~2s
Typical POST-to-inbox delivery
Unlimited forms on every plan
0
Lines of backend code
How it works

A working form in three steps.

No SDK to learn, no library to install. If your site can render an HTML form, your contact form can be live in under a minute.

  1. Step 01

    Create a form, get your key

    Sign up and grab your access key, a public ID that's safe to ship in your HTML. It can only ever deliver mail to you.

  2. Step 02

    Point your form at us

    Set your form's action to our endpoint and drop the key in a hidden field. Plain HTML, fetch, React: whatever you already write.

  3. Step 03

    Submissions land in your inbox

    Every POST becomes an email, typically within seconds, plus a stored record in your dashboard you can search, filter, and export.

Any stack, same endpoint

  • Alpine.js
  • Angular
  • Astro
  • Eleventy
  • Framer
  • Ghost
  • Hugo
  • Jekyll
  • Next.js
  • Nuxt.js
  • Preact
  • Qwik
  • React
  • Remix
  • SolidJS
  • Svelte
  • Vue
  • VitePress
  • Webflow
  • WordPress
Under the hood

What happens after submit.

Here's what FormWire does with every POST from your HTML form, fetch call or React component.

  1. Filtered before it reaches you

    A server-side honeypot filters bots before anything reaches you. Add hCaptcha, reCAPTCHA or Turnstile per form when you want more.

  2. Saved to your dashboard

    Every submission lands in a searchable inbox you can filter, export to CSV, or query over the read API. Nothing lives only in email.

  3. Email lands in your inbox

    Typically within seconds, with Reply-To set to your visitor. Hit reply in your inbox, land in theirs.

  4. Integrations are triggered

    Send the data where it needs to be: signed webhooks fire today, with more direct integrations on the way.

Why FormWire

Everything a form needs, nothing to run.

The parts that are easy to get wrong — delivery, security, and design — are the parts we take off your hands.

  • Built not to lose leads

    Stored before we say OK, delivered with retries, and delivery status visible on every submission.

  • Leads you can actually use

    Every submission is a searchable record, not just an email: filter the inbox, export CSV, or pull JSON from the read API.

  • Design without limits

    Keep your own markup, styling and framework. The endpoint never imposes a widget or an iframe on your page.

Submissions

Inbox 12 Spam 3
Search name, email, message…
  • Do you take on analytical engines?

    Ada Lovelace · Contact · 2m ago

    delivered
  • Plus one is a golden retriever — okay?

    Hannah B. · RSVP · 28m ago

    delivered
  • URGENT!!! exclusive offer inside 🎁

    cheap-pills-now · Contact · 3h ago

    quarantined
  • Order #418 — I'm a teapot, apparently

    Short & Stout · Order · 4h ago

    delivered
Export CSV GET /v1/submissions → 200
Spam protection

Spam stopped at the door.

Honeypot filtering and rate limiting are on for every form. Add hCaptcha, reCAPTCHA or Turnstile per form, plus domain rules when you need them.

Honeypot (built in)

hCaptcha

reCAPTCHA

Turnstile

Rate limiting

Domain rules

Want the details?

How spam protection works
Everything included

The features your form will actually need.

Every real contact form ends up needing these. FormWire wires them up for you.

Works with any <form>

Form-encoded, multipart, or JSON. Plain HTML posts and AJAX both get clean responses.

Verified recipients only

Mail only goes to addresses you've verified, so the public key in your HTML can never become an open relay.

Redirect anywhere

Send visitors to your own thank-you page after submit, validated against your allowlist.

Reply straight to visitors

Reply-To is set from the submitter's email. Hit reply in your inbox and land in theirs.

Auto-responder

Send a branded confirmation to the person who filled in your form, with template tokens.

File uploads

Accept attachments up to 5MB without any storage configuration. Secure links arrive with the notification email.

A real submissions inbox

Searchable dashboard with inbox and spam tabs, full submission detail, and bulk actions.

Export or query

One-click CSV export, or pull JSON from the read API with a revocable, hashed key.

CORS done right

Preflight handled, JSON responses readable from fetch. Your SPA form just works.

Pricing

Free to start. Fair when you grow.

No credit card for the free tier. Upgrade when you need more volume, richer spam controls, and integrations.

FREE

$0 /month

For side projects and static sites

  • 250 submissions / month
  • Unlimited forms
  • Honeypot + hCaptcha spam protection
  • 2 verified recipient emails
  • 30-day submission history
  • Submissions inbox + CSV export

Pro

$12 $10 /month

The full toolkit for products and client work

  • 10,000 submissions / month
  • reCAPTCHA + Turnstile + domain rules
  • 10 verified recipient emails
  • 1-year submission history
  • File uploads & attachments
  • Auto-responder, CC & BCC
  • Signed webhook integrations (Slack & Sheets coming soon)
  • JSON read API

Frequently asked questions

Everything you need to know before pointing your form at FormWire.

Can't find what you're looking for?

Contact support
Ready in a minute

Make that POST turn into an email.

Grab an access key, paste the snippet, and watch your first submission arrive before your coffee cools.

Free tier forever. No credit card required. GDPR-friendly · TLS everywhere.