What Is Formspree and What Does It Do?

Updated

Formspree is a hosted form backend, API, and email service for HTML and JavaScript forms. You keep your own frontend code and point the form at a Formspree endpoint; Formspree receives the submission, filters spam, sends email notifications, stores the entry in an inbox, and can forward the data to third-party tools. It fits static sites and frontends that have no server of their own, and it is unnecessary if you already run a backend that handles form POSTs.

How Formspree works

The core mechanism is a single form action URL. Formspree's own example:

<form action="https://formspree.io/f/{form_id}" method="post">
  <label for="email">Your Email</label>
  <input name="Email" id="email" type="email">
  <button type="submit">Submit</button>
</form>

You replace {form_id} with the ID from your Formspree account. On submit, the browser posts the fields to Formspree rather than to your site. Formspree then, per its documentation:

  1. Validates the data server-side and blocks spam using machine learning.
  2. Sends email notifications and auto-responses, with customizable templates.
  3. Saves the submission to the Formspree Inbox, where you can view entries, see daily analytics, and export to CSV or JSON.
  4. Triggers any configured third-party integrations.

The practical consequence: your site needs no server code, no database, and no mail configuration. The trade-off is that submissions pass through a third party, so you should be comfortable with that for the data you collect.

Ways to add a form

Formspree documents three integration paths, and the right one depends on how much control you want over the frontend:

Approach What it is Best for
HTML forms Set the form action to the Formspree endpoint Simple static pages, no build step
JavaScript forms Formspree CLI and React library, deployable via CI/CD Dynamic forms, React apps, teams with a pipeline
Formbutton Copy/paste snippet that overlays a popup form Adding a form to an existing site without editing page markup

If you are working with an AI coding agent, Formspree notes that its llms.txt file contains setup instructions for LLMs, which can save you from reconstructing the integration by hand.

What happens to submissions

Beyond delivery, Formspree covers the parts of form handling that are tedious to build yourself:

  • Spam control: automatic filtering, a machine-learning "Formshield" filter, one-click reCAPTCHA, and custom spam rules.
  • Storage and reporting: a submissions inbox, daily analytics, and CSV/JSON export.
  • Integrations: direct connections to tools including Google Sheets, Slack, Airtable, Notion, HubSpot, Salesforce, Mailchimp, Stripe, Discord, Trello, and webhooks, without requiring Zapier (Zapier is also supported).

For a small contact form, the inbox and email notification alone may be enough. For lead capture or support intake, the integrations are what let the data land where your team already works.

When Formspree fits — and when it doesn't

Formspree is a reasonable choice when:

  • Your site is static or serverless and you don't want to build a form handler.
  • You need working email notifications and spam filtering quickly — the site claims you can create a working form in seconds and see submissions in under a minute.
  • You want submissions stored and exportable without maintaining a database.
  • You need to route form data into a CRM, spreadsheet, or chat tool.

Look elsewhere when:

  • You already have a backend that can accept and process POST requests.
  • Your data handling rules require submissions to stay entirely on your own infrastructure.
  • You need form logic that a hosted backend can't express and would rather own the whole pipeline.

Pricing tiers exist (Formspree links to a Plans page), but the specifics of what each plan includes aren't covered in the material here, so check that page before committing to a volume of submissions.

Getting started

  1. Create a Formspree account and a new form to obtain your form_id.
  2. Add the action URL to your HTML form, or install the CLI/React library for a JavaScript setup.
  3. Submit a test entry and confirm it appears in the Inbox and that the notification email arrives.
  4. Configure spam rules and any integrations you need.

The most common snag is a mismatched or missing form_id in the action URL, which produces a failed submission rather than a visible error on the page — verify the endpoint first if nothing shows up in your inbox.