# Framer Integration: Email Validation

URL: https://email-validation.org/integrations/framer/
Updated: 2026-11-06

> Documentation index: https://email-validation.org/llms.txt

An invisible code component checks the email field of your Framer forms when the visitor leaves it or presses submit, and shows a message under the field when the address cannot receive mail. Every other submission goes through to Framer as usual.

[Read the full setup guide](https://email-validation.org/docs/guides/framer/) [Get an API key](https://email-validation.org/signin/)

- Status: Setup guide
- One code file, placed on the page

**EmailCheck** Code component

Properties

```text
Browser key        ev_live_…  (a key for this site only)
Region             US
Block disposable   Off
Invalid message    We could not deliver to this address.
                   Please check it for typos.
```

## At a glance.

- **Status**: **Setup guide.** Not listed on a marketplace yet: you set it up yourself in a few steps, below and in the full guide.
- **For**: Framer site owners who collect sign-ups, leads or contact requests with Framer forms and want typos and dead addresses caught before the form is sent.
- **You need**: A Framer project with a form that has a field of the Email type, and an [API key](https://email-validation.org/app/api-keys/) made just for the site: only the Validate addresses permission, your site’s addresses as allowed origins, and a [daily credit cap](https://email-validation.org/docs/authentication/#limits).
- **Costs**: 1 credit = 1 validated address, as with any API request. Free: unknown results, API errors, malformed addresses and test addresses on sandbox.email-validation.org.
- **Full guide**: [Read the full setup guide](https://email-validation.org/docs/guides/framer/)

## Typical uses.

- **Stop clear typos**: An invalid result keeps the form from being sent and shows a message under the field, with a Did you mean suggestion when the API has one.
- **Keep throwaway addresses out**: Turn on Block disposable to refuse disposable addresses as well, with a message of your own.
- **Every form on the page**: One component checks every Email field in every form of its page, Framer’s own forms included, so a page with a newsletter form and a contact form needs it once.

## Set it up. 5 steps.

The short version of the [full setup guide](https://email-validation.org/docs/guides/framer/), which stays the reference when a step does not match what you see.

1. **Create a browser key**: Create a key with only Validate addresses, your site’s addresses as allowed origins, one per line, and a daily credit cap a little above the sign-ups of a busy day.
2. **Add the code file**: In Framer, open Assets, Code, create a new code file named EmailCheck, replace its contents with the code from the guide and save.
3. **Place it**: Drag EmailCheck from your assets onto each page that has a form, anywhere on the page: the canvas shows a small label, the published site nothing.
4. **Paste the key**: In its properties, paste the key into Browser key. Optionally turn on Block disposable, change the messages, or set Region to EU for EU data residency.
5. **Publish and test**: Publish, then test on the published site: `no_mailbox@sandbox.email-validation.org` shows the message, `likely_typo@sandbox.email-validation.org` a suggestion, and `accepted@sandbox.email-validation.org` is sent. In Framer’s preview the key may be refused, and the form then goes through unchecked.

## Good to know.

- The key in the component’s settings is public: anyone can read it in your published site’s code. Never use your main key. The allowed origins stop other websites from using it in their visitors’ browsers; the daily cap is what limits the cost.
- By default valid, catch\_all, unknown and disposable results go through, and so does every submission when something goes wrong: an error, a refused key, no credits left or no answer in time.
- Each address is checked once while the page is open, so pressing submit again never pays for the same address twice, and partial addresses are never sent.
- The message is announced by screen readers and linked to the field, which is marked invalid and gets the focus. The component writes nothing to the browser console, so an address is never logged.
- To keep the key on a server instead, send the form’s submissions to an automation by webhook and check them there, as in the [no-code recipes](https://email-validation.org/docs/guides/no-code/).

## Related

- [The full Framer setup guide](https://email-validation.org/docs/guides/framer/)
- [Your key on a public page: allowed origins and caps](https://email-validation.org/docs/guides/framer/#key)
- [Webflow integration](https://email-validation.org/integrations/webflow/)
- [Wix integration](https://email-validation.org/integrations/wix/)
- [Validating sign-up forms](https://email-validation.org/docs/guides/signup-form-validation/)
- [All integrations](https://email-validation.org/integrations/)
