Validate emails in Pipedream

Validate email addresses in any Pipedream workflow with Pipedream's own HTTP / Webhook app: one step sends the address to the API with your key, and later steps use the answer's status, reason and action.

Status: setup guide. Our own Pipedream app (actions such as Validate Email and Create Bulk Job, and an instant trigger when a bulk list finishes) is not listed on Pipedream yet: Pipedream has to add the app first. Until then, use the steps below.

Store your API key

  1. Create a key on the API keys page, with a daily credit cap so a looping workflow cannot spend more than you expect.
  2. In Pipedream, open Settings > Environment Variables and click New Variable: name EV_API_KEY, value your key. Keep it secret (the default): its value is then never shown again.

Steps read it as {{process.env.EV_API_KEY}}, so the key never sits in the workflow itself.

Validate an address

Add a step from the HTTP / Webhook app and choose Send any HTTP Request:

SettingValue
MethodPOST
URLhttps://api.email-validation.org/v1/validate (or https://api-eu.email-validation.org/v1/validate for EU data residency)
HeaderAuthorization: Bearer {{process.env.EV_API_KEY}}
HeaderContent-Type: application/json
Body{"email": "<the address from an earlier step>"}

Test the step with accepted@sandbox.email-validation.org: it returns valid and costs nothing (every test address is free). The step's return value holds the answer: status, reason, action, did_you_mean and the other fields. Continue with a Filter step, for example "continue only when action is send".

Never put the key in the URL: such requests are refused. An unknown result and an error cost nothing; if the step fails with 429 (rate_limited), run it again after the number of seconds in the Retry-After header.

Bulk lists

For many addresses at once, send one Send any HTTP Request step with method POST, URL https://api.email-validation.org/v1/bulk, the same two headers, and the body {"emails": [...]} (up to 100,000 addresses, 4 MB). The answer is the new job; its id starts with job_. Then read GET https://api.email-validation.org/v1/bulk/<id> until its status is completed, and download the results from GET https://api.email-validation.org/v1/bulk/<id>/results.

A create request sent twice is two lists: do not turn on automatic retries for that step. If it fails with a server error or a timeout, check the bulk page of the dashboard before running it again. More: bulk jobs API.

Start a workflow when a list finishes

  1. Create a workflow with the HTTP / Webhook trigger New Requests and copy its endpoint URL.
  2. In the dashboard, open Webhooks > Add webhook, paste the URL and tick Bulk list completed.
  3. For a list created through the API, pass that endpoint's id as webhook_endpoint_id when you create it. A list uploaded in the dashboard notifies every endpoint subscribed to the event.

Without code, the workflow cannot check our signature, so treat a delivery only as a hint: read the job with GET https://api.email-validation.org/v1/bulk/<job_id> (the job_id from the delivery) and act on that answer.

Updated · Maintained by the email-validation.org team