How to verify emails and phone numbers in Zapier, Make and n8n
You don't need to write code to verify the emails and phone numbers flowing into your CRM, spreadsheet or newsletter tool. Zapier, Make and n8n can all call the Verified.net API with their built-in HTTP steps. This guide shows the setup for each, plus the filter that keeps bad contacts out.
You'll need an API key: sign up, then create one under API keys. Treat it like a password.
The request, for every tool
| Method | POST |
|---|---|
| URL | https://api.verified.net/v1/email (or /v1/phone) |
| Header | Authorization: Bearer YOUR_API_KEY |
| Body (JSON) | {"address": "<the email>"} or {"number": "<the phone>"} |
The answer's recommendation.action field is accept, review or reject. That's the one field your filter needs. 1 credit per email, 1 per phone number.
Zapier
- Trigger: wherever new contacts appear (new form entry, new row in Google Sheets, new HubSpot contact...).
- Add an action: Webhooks by Zapier → Custom Request (Webhooks is included in Zapier's paid plans).
- Method
POST, URLhttps://api.verified.net/v1/email. - Data:
{"address": "then insert the email field from your trigger, then"}. - Headers:
Authorization=Bearer YOUR_API_KEYandContent-Type=application/json. - Test the step. You'll see fields such as
Recommendation Action,Did You MeanandChecks Disposable. - Add Filter by Zapier: continue only if
Recommendation Action(Text) Does not exactly matchreject. - Then your real action (add to the mailing list, create the CRM contact).
Prefer to tag rather than drop? Use Paths by Zapier: one path for reject (tag as "bad email"), one for everything else.
Make
- Add the HTTP → Make a request module after your trigger.
- URL
https://api.verified.net/v1/email, MethodPOST. - Headers:
Authorization=Bearer YOUR_API_KEY. - Body type Raw, Content type JSON (application/json), Request content:
{"address": "{{1.email}}"}(map your trigger's email field). - Tick Parse response so later modules can use the fields.
- On the link to the next module, add a filter:
Data: recommendation: actionNot equal toreject.
n8n
- Add an HTTP Request node. Method
POST, URLhttps://api.verified.net/v1/email. - Authentication: Generic Credential Type → Header Auth. Create a credential with Name
Authorizationand ValueBearer YOUR_API_KEY. Stored as a credential, the key stays out of your workflow JSON. - Send Body: on, Body Content Type JSON, Specify Body Using Fields Below, name
address, value{{ $json.email }}. - Add an If node:
{{ $json.recommendation.action }}is not equal toreject.
For large batches in n8n, set the HTTP Request node's Batching option (for example 50 items per batch) to stay well under the rate limit of 200 requests per 10 seconds.
Cleaning a whole list instead
For a one-off clean of an existing list (thousands of rows), automation steps are slow and use a task per row. Upload the CSV to Bulk in the dashboard instead: up to 100,000 rows, duplicates charged once, and you download the same file back with result columns added. The bulk API can also notify a Zapier, Make or n8n webhook when a job finishes (bulk webhooks).
Tips
- Don't stop the whole workflow on errors. In Zapier and Make, set the HTTP step to continue on error, so a timeout doesn't drop a real lead.
- Use the typo fix. If
did_you_meanis set (for examplegmail.comforgmial.com), store it in a note or use it instead. - Same contact twice is free within 7 days, so re-running a workflow doesn't double-charge.
Try it on your own data
Check an address or number now with the free checker, no signup needed, or start a 7-day trial and call the API from your code.
Start free trial API docs