TL;DR
- Use Webhooks by Zapier (POST, JSON) to call
https://mailexchange.com/api/v1/verifywith each new email. - Add a Filter so only
state = deliverablecontinues to Instantly, HubSpot, Mailchimp or your CRM. - Webhooks by Zapier needs a Professional plan or above. MailExchange costs $0.0058 per email or less.
What the Zap looks like
- Trigger: whatever brings in a new address, such as a form submission, a new row in Google Sheets, a new HubSpot contact or a new lead from your lead source.
- Action: Webhooks by Zapier, POST. Sends the email to MailExchange and gets the result back.
- Filter by Zapier. Continues only if the result is deliverable (or deliverable or catch-all, if you choose).
- Action: add the lead to your sequencer, CRM or email list.
Set up the Webhooks step
- Add an action, search for Webhooks by Zapier, and pick the POST event.
- URL:
https://mailexchange.com/api/v1/verify - Payload type: JSON.
- Data: one row, key
email, value mapped to the email field from your trigger. - Headers: key
Authorization, valueBearer mx_live_your_key. - Test the step. Zapier shows the parsed response, so later steps can use
state,reasonandaccept_allas fields.
The request Zapier sends, and what comes back:
POST https://mailexchange.com/api/v1/verify
Authorization: Bearer mx_live_your_key
{"email": "[email protected]"}
{"email": "[email protected]", "state": "deliverable", "reason": "accepted_email",
"score": 100, "accept_all": false, "role": false, "free": false, "disposable": false}
Webhooks steps and plan availability from Zapier's Send webhooks in Zaps help article, checked 2026-10-17. Full field list in the API reference.
Route by result
| state | reason | Suggested path |
|---|---|---|
| deliverable | accepted_email | Continue to your main campaign or list |
| risky | low_deliverability (catch-all) | Separate campaign at low volume, or a "review" tag. See catch-all emails |
| risky | low_quality (role), disposable | Stop, or tag for review |
| undeliverable | rejected_email, invalid_domain, invalid_email | Stop |
| unknown | unavailable_smtp, no_connect, dns_error | Retry later with a Delay step. The credit is refunded |
For more than one path, use Paths by Zapier instead of a single Filter, and send each state to a different action.
Good Zaps to build first
- Lead source to sequencer: new lead, then verify, then add to Instantly or Smartlead only if deliverable.
- Signup form to newsletter: new form entry, then verify, then add to Mailchimp, keeping fake and disposable signups out of your billable audience.
- New CRM contact: new HubSpot contact, then verify, then update a contact property with the state.
What it costs
Each verified address uses one MailExchange credit: $0.0058 on the 5K pack, $0.0030 at 100K. Credits never expire, so a slow trickle of signups doesn't waste a monthly allowance, and unknowns are refunded. Each step also counts as a Zapier task on your Zapier plan. See pricing.
Tips that save tasks and credits
- Filter before you verify. Put a Filter step ahead of the webhook that stops rows with an empty email field, so you don't pay for a call that can't succeed.
- Store the result. Write
stateandreasonback to your sheet or CRM, so the same address isn't verified twice by a later Zap. - Retry unknowns once. A Delay step of an hour or so, then a second webhook call, resolves many temporary mail-server errors.
Already have a list?
Zaps are for new addresses as they arrive. For a list you already have, upload the CSV instead. It's faster, and duplicates are removed free.