Setting it up is easy and free. Here's how:

You don't even have to register.

1. Setup the HTML form

Change your form's action-attribute to this and replace [email protected] with your own email.

2. Add a name attribute to every field

Ensure all <input>, <select> and <textarea> elements inside your form have a name attribute, otherwise you will not receive the data filled in these fields.

3. Submit the form and confirm your email address

Go to your website and submit the form once. This will send you an email asking to confirm your email address.

Remember that if you display the same form in multiple URLs of your site you'll have to confirm it multiple times!

4. All set, receive emails

From now on, when someone submits that form, we'll forward you the data as email.

Some questions you might have:

Who are you guys?

We're a community of developers that work together to create products. You can contribute on GitHub. Formspree is a project that solves a problem many of us have faced: easily adding forms to otherwise static HTML pages.

What about privacy?

We only store contents of the last 100 form submissions and delete the rest. Emails are sent using SendGrid's API, so on that end their privacy policies apply.

Advanced features:

Form inputs can have specially named name-attributes, which alter functionality. They are all prefixed with an underscore.

_replyto or email

This value is used for the email's Reply-To field. This way you can directly "Reply" to the email to respond to the person who originally submitted the form.

_next

By default, after submitting a form the user is shown the Formspree "Thank You" page. You can provide an alternative URL for that page.

_subject

This value is used for the email's subject, so that you can quickly reply to submissions without having to edit the subject line each time.

_cc

This value is used for the email's CC Field. This lets you send a copy of each submission to another email address.

If you want to CC multiple email addresses, then just make it a list of email addresses separate by commas.

_format

Adding this to your form will allow for you to receive plain text versions of emails for form submissions.

_gotcha

Add this "honeypot" field to avoid spam by fooling scrapers. If a value is provided, the submission will be silently ignored. The input should be hidden with CSS.

Using AJAX

You can use Formspree via AJAX. This even works cross-origin. The trick is to set the Accept header to application/json. If you're using jQuery this can be done like so:

$.ajax({
    url: "https:[email protected]",
    method: "POST",
    data: {message: "hello!"},
    dataType: "json"
});

For Formspree power users, we present Formspree Gold

Formspree Gold costs

$ 9.99

each month

Each Gold account can have unlimited forms and unlimited verified emails, and all them get the features listed below.

Upgrade now

Gold features:

Extra limits and functionality for power users

Invisible emails

Get a random-like string to replace your naked email address in the action attribute of your form. Your email address will remain unknown to spam-bots and human visitors.

Unlimited form submissions

Getting more than 1000 submissions each month? No problem, upgrading will cover that.

Same form on multiple pages

Showing the same form on many different pages? Generate a form verified site-wide and don't worry about having to track multiple confirmation emails.

Auto-confirmed forms

Pre-verify email addresses on your account and you'll be able to create forms targetting them without having to submit the form and click on confirmation links.

Access to submissions archive

If you ever missed a submission email, for any reason, you can just login and read your last 1000 submissions, all listed and timestamped with full data. Also, the submissions can be exported to CSV or JSON!

It even works for submissions made while you were not a Gold user (the last 100, in this case).