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
- Create a key on the API keys page, with a daily credit cap so a looping workflow cannot spend more than you expect.
- 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:
| Setting | Value |
|---|---|
| Method | POST |
| URL | https://api.email-validation.org/v1/validate (or https://api-eu.email-validation.org/v1/validate for EU data residency) |
| Header | Authorization: Bearer {{process.env.EV_API_KEY}} |
| Header | Content-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
- Create a workflow with the HTTP / Webhook trigger New Requests and copy its endpoint URL.
- In the dashboard, open Webhooks > Add webhook, paste the URL and tick Bulk list completed.
- For a list created through the API, pass that endpoint's id as
webhook_endpoint_idwhen 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.