# Segment Integration: Email Validation

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

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

A Segment Function you paste into your workspace checks the address of identify calls and of the track events you name, and adds the status to the event. With a write key it also sends each result back into Segment as traits, for your profiles and your warehouse.

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

- Status: Setup guide
- An insert or destination function

**Function settings** Settings tab

What you set

```text
apiKey          ev_live_…   (String, secret, required)
region          eu for EU data residency
checkIdentify   true
trackEvents     Signed Up, Email Changed
writeKey        an HTTP API source’s write key (secret)
```

## 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 run sign-ups and profile changes through Segment and want their email tool, CRM and warehouse to receive each address’s status.
- **You need**: A Segment workspace with Functions, 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 function.
- **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/segment/)

## Typical uses.

- **Enrich a destination**: As an insert function attached to a cloud-mode destination, it adds ev\_status, ev\_reason, ev\_action and ev\_processed\_at to each event, for example to suppress invalid addresses in your email tool.
- **Status on your profiles**: With the write-back, each result arrives at an HTTP API source of yours as an identify call with the four fields as traits, and from there reaches your profiles and your warehouse.
- **Check only new addresses**: Name the track events that carry a new or changed address in trackEvents, and set checkIdentify to false if your app sends identify calls on every visit.

## Set it up. 6 steps.

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

1. **Create a key**: Create an API key for Segment on the API keys page, with a daily credit cap.
2. **Create the function**: In Segment, go to Connections, Catalog, open the Functions tab and click New Function. Choose Insert, or Destination.
3. **Paste the code**: Replace the editor’s code with the function in the guide.
4. **Add the settings**: In the Settings tab, add at least apiKey, marked as secret, and any of the optional settings you need.
5. **Test it**: In the Test tab, send an identify call with `accepted@sandbox.email-validation.org` as `traits.email`. The output shows the event with the four fields added.
6. **Deploy and connect**: Save and deploy it, then connect an insert function to the destination it should enrich, or a destination function to the source whose events it should check.

## Good to know.

- Every event it checks is one validation. Functions keep no lasting state, so an identify call that repeats an address already checked is charged again; the cache it uses while it runs saves some repeat checks, but Segment can empty it at any time.
- Segment runs insert functions only in front of cloud-mode destinations, not warehouses. A destination function cannot change events, so always give it a writeKey: without one its checks are charged and the results are seen only in its logs.
- 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.
- Segment stops a function after 5 seconds, so it waits a little less for each check. A check that got no answer is not sent again, because it may already have been charged; in a destination function, retryLater makes Segment try an event again after a rate limit or an outage.
- A catalog destination is built but not submitted to Segment yet, so it cannot be added from the catalog today. The [guide](https://email-validation.org/docs/guides/segment/#catalog) says what it will do.

## Related

- [The full Segment setup guide](https://email-validation.org/docs/guides/segment/)
- [RudderStack: the same check as a transformation](https://email-validation.org/integrations/rudderstack/)
- [The write-back source](https://email-validation.org/docs/guides/segment/#write-back)
- [Every error code](https://email-validation.org/docs/errors/)
- [Statuses and reasons](https://email-validation.org/docs/statuses/)
- [All integrations](https://email-validation.org/integrations/)
