# RudderStack Integration for Email Validation

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

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

A user transformation you paste into your RudderStack workspace checks the address of identify events and of the track events you name. It adds the result to each event before RudderStack sends it on, so your warehouse, CRM and email tool all receive the status.

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

- Status: Setup guide
- A JavaScript transformation

**Fields it adds** traits or properties

On each checked event

```json
{
  "ev_status": "valid",
  "ev_reason": "accepted",
  "ev_action": "send",
  "ev_processed_at": "2026-11-06T12:00:00.000Z"
}
```

## 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**: Teams that collect sign-ups and profile changes through RudderStack and want every destination to know whether an address can receive mail.
- **You need**: A RudderStack workspace with JavaScript transformations, and an [API key](https://email-validation.org/app/api-keys/) made for it, with a [daily credit cap](https://email-validation.org/docs/authentication/#limits) used only by this transformation.
- **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/rudderstack/)

## Typical uses.

- **A status column in your warehouse**: In a warehouse, the four fields become columns next to the address, so reports and audiences can leave out invalid addresses.
- **Suppress bad addresses**: In an email tool or a CRM, map ev\_status or ev\_action to a field and leave out the addresses whose action is remove.
- **Check only new addresses**: Name the track events that carry a new or changed address, such as Signed Up or Email Changed, and turn off identify checks if your app sends one on every visit.

## Set it up. 5 steps.

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

1. **Create a key**: Create an API key for RudderStack on the API keys page, with a daily credit cap.
2. **Store the key**: On Growth and Enterprise plans, add a secret named `EV_API_KEY` to RudderStack’s credential store. On other plans, paste the key into `EV_API_KEY_IN_CODE`: everyone who can open the transformation can read it there.
3. **Create the transformation**: In Transformations, create a new JavaScript transformation, replace its code with the one in the guide and set the settings at its top.
4. **Test it**: Test with an identify event whose `context.traits.email` is `accepted@sandbox.email-validation.org`. The output shows the event with the four fields added.
5. **Connect it**: Save it and connect it to the destinations that should receive the status.

## Good to know.

- Every event it checks is one validation. Transformations keep no lasting state, so an identify event that repeats an address already checked is charged again; within one batch, an address is checked once.
- It runs once for each destination it is connected to, so the same event sent to two destinations is checked twice: connect it only where the status is needed.
- It never stops or drops your events. When a check cannot be done, the event goes on without the four fields, and the log says why with the HTTP status, our error code and the request id, never the address.
- On a rate limit or an outage it sends no check until the Retry-After time is over. RudderStack does not run a transformation again later, so those events stay unchecked.
- For [EU data residency](https://email-validation.org/docs/eu-data-residency/), set `EV_REGION` to `eu`. email-validation.org is not a RudderStack destination: the transformation is the way to hand the status to your other destinations.

## Related

- [The full RudderStack setup guide](https://email-validation.org/docs/guides/rudderstack/)
- [Segment: the same check as a Segment Function](https://email-validation.org/integrations/segment/)
- [What it costs, and how to keep it low](https://email-validation.org/docs/guides/rudderstack/#cost)
- [Every error code](https://email-validation.org/docs/errors/)
- [Rate limits](https://email-validation.org/docs/rate-limits/)
- [All integrations](https://email-validation.org/integrations/)
