Home / Integrations / Zapier

Zapier email verification

Check every new lead, form signup or CRM contact as it arrives. One Webhooks by Zapier step calls the MailExchange API, and a filter sends only deliverable addresses on.

Updated 2026-10-17

TL;DR

  • Use Webhooks by Zapier (POST, JSON) to call https://mailexchange.com/api/v1/verify with each new email.
  • Add a Filter so only state = deliverable continues to Instantly, HubSpot, Mailchimp or your CRM.
  • Webhooks by Zapier needs a Professional plan or above. MailExchange costs $0.0058 per email or less.
The MailExchange API is in early access. Ask for a key and we'll include free credits to test your Zap. A native MailExchange app for Zapier is on our roadmap. Until it's live, the Webhooks step below does the same job.

What the Zap looks like

  1. 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.
  2. Action: Webhooks by Zapier, POST. Sends the email to MailExchange and gets the result back.
  3. Filter by Zapier. Continues only if the result is deliverable (or deliverable or catch-all, if you choose).
  4. Action: add the lead to your sequencer, CRM or email list.

Set up the Webhooks step

  1. Add an action, search for Webhooks by Zapier, and pick the POST event.
  2. URL: https://mailexchange.com/api/v1/verify
  3. Payload type: JSON.
  4. Data: one row, key email, value mapped to the email field from your trigger.
  5. Headers: key Authorization, value Bearer mx_live_your_key.
  6. Test the step. Zapier shows the parsed response, so later steps can use state, reason and accept_all as 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

statereasonSuggested path
deliverableaccepted_emailContinue to your main campaign or list
riskylow_deliverability (catch-all)Separate campaign at low volume, or a "review" tag. See catch-all emails
riskylow_quality (role), disposableStop, or tag for review
undeliverablerejected_email, invalid_domain, invalid_emailStop
unknownunavailable_smtp, no_connect, dns_errorRetry 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 state and reason back 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.

Related