How to Verify Emails in n8n

n8n workflows move contacts between the forms, databases, and email tools that drive your marketing, which makes them the ideal place to catch bad addresses early. With the HTTP Request node you can call the VeriMails API mid-workflow, verify every contact as it arrives, and use an IF node to route each result. This guide walks through that build, on n8n Cloud or self-hosted.

TLDR

  • Place a VeriMails API verification HTTP Request node right after your n8n trigger and before CRM or email-platform writes.
  • Route deliverable results through IF or Switch, and hold invalid, disposable, catch-all, and unexpected statuses for review instead of mailing them.
  • Use bulk verification for existing lists, then let the n8n workflow keep new webhook and form contacts clean in real time.

n8n Workflow Setup Checklist

Build the workflow so the HTTP Request node becomes a verification checkpoint. The routing nodes should decide what happens next from the VeriMails JSON response.

Decisionn8n setupOperator note
Input nodeUse the Webhook node, form trigger, database trigger, or sheet trigger that first exposes the email value.Verify before any downstream node writes the contact to a CRM or sender.
API credentialsStore the VeriMails key as an HTTP Request credential, using header or query authentication according to your API setup.Credentials keep the key out of plain workflow fields and make rotation easier for self-hosted and Cloud instances.
HTTP Request nodeSet the method and URL for the VeriMails API, then map the email with an expression from the trigger item.Run the node once and inspect the output JSON before wiring the routing nodes.
Branching nodeUse IF for a simple deliverable versus not-deliverable split, or Switch when you want separate outputs for catch-all, disposable, and role-based results.Switch keeps multi-status routing easier to read and safer to extend later.
Failure behaviorAdd an error or fallback branch that logs the input and response when the API call fails or returns an unexpected status.Fail closed so an unverified address does not continue just because a node configuration changed.

Why Verify Your n8n Contacts

n8n is the automation layer that connects your contact sources to the tools that store and mail them. Adding a verification node there means a bad address is caught once, in one place, before it can propagate across every connected system.

Workflows write contacts into systems that send and bill

A typical n8n workflow takes a new form submission or database row and writes it into an email platform, an ad audience, or a CRM. If that contact is invalid, the bad address now lives in a system that will bill you for it or try to mail it. An HTTP Request node calling VeriMails, placed before the write node, keeps every downstream system clean.

Webhook and form triggers carry the most bad data

The most common n8n triggers, such as the Webhook node receiving a new form submission and polling triggers on databases or sheets, are also the noisiest sources of email data. People mistype and fake addresses constantly. A verification node right after the trigger catches those errors at the entry point of the workflow.

Real-time verification keeps lists clean continuously

Verifying inside a workflow means each contact is checked the moment the webhook fires, not weeks later in a bulk export. Your lists stay clean continuously, your bounce rate has no chance to spike, and you never mail an address that was wrong from the start.

Bad addresses still bounce and damage sender reputation

However many nodes sit between the form and the inbox, an invalid address eventually bounces. Bounce rates above five percent push your campaigns toward spam across the whole list. A VeriMails node in the workflow removes that risk at the source instead of leaving your email platform to absorb it.

What VeriMails Checks

When an HTTP Request node calls the VeriMails API for a contact, VeriMails runs a full chain of checks and returns a structured result your IF or Switch node can branch on. Every address is tested as follows:

Syntax validation confirms the address is correctly formed. MX and DNS records are queried to confirm the domain exists and can receive mail. A live SMTP handshake connects to the receiving mail server to confirm the specific mailbox accepts mail, without sending anything. Catch-all detection identifies domains that accept every address sent to them. Disposable detection flags temporary inbox domains. Role-based detection identifies generic addresses like info@, sales@, and support@.

VeriMails returns clear verification results with fast response times, fast enough to sit inline in a webhook-triggered workflow. Catch-all domains are reported as a clear detection so your IF node logic can treat them deliberately, never as a vague score.

Pricing for n8n Users

A real-time verification workflow draws down VeriMails credits as new contacts arrive, so you pay only for the addresses you verify. Credit packs start at $0.0019 per email, and 10,000 credits cost $19. Larger credit packs scale up to 5 million addresses for $1,499 for high-volume workflows and agencies running n8n for clients.

If you prefer predictable billing for a steady contact flow, monthly subscriptions run from $15 per month to $299 per month. Every new account gets 100 free credits on signup with no credit card required, and credits never expire, so you can build and test your workflow before committing.

Workflow Visual

Use this flow to place VeriMails in the middle of an n8n workflow before contacts reach downstream apps.

n8n email verification API workflow from contact trigger to HTTP Request node IF routing and clean destination update
n8n verification path. Call VeriMails with the HTTP Request node, branch on the JSON result, and keep invalid contacts away from destination nodes.
n8n email verification node checkpoints for HTTP Request credentials IF routing and destination updates
n8n node checkpoints. Use the Email Verification API in an HTTP Request node, branch on the JSON status, and log contacts that should not reach the destination app.

Step-by-Step

Add the trigger that receives new contacts

Create a new workflow and add the trigger node, most often the Webhook node, which gives you a URL that external apps call when a contact is created or a form is submitted. You can also use a polling trigger on a database or spreadsheet. The trigger parses the incoming payload into JSON that downstream nodes can read.

Add an HTTP Request node to call VeriMails

Add the HTTP Request node, which is n8n's bridge for calling any external API. Configure it to request the VeriMails verification endpoint, use an expression to pass the email address from the trigger node, and store your VeriMails API key as an n8n credential referenced by the node. The JSON response is parsed for downstream nodes.

Add an IF node to branch on the result

Add an IF node after the HTTP Request node. Configure its condition to evaluate the VeriMails result, so deliverable contacts follow the true branch and undeliverable contacts follow the false branch. If you need to separate disposable and catch-all results too, use a Switch node for more than two outputs.

Route deliverable contacts to your destination

On the true branch, add the node that writes the contact into your email platform, CRM, or database. Only verified, deliverable addresses reach this node, so the lists and audiences in those systems stay clean automatically without any further cleanup.

Handle bad addresses and activate the workflow

On the false branch, add a node that logs undeliverable and disposable addresses to a database or sends a notification so you can review patterns. Execute the workflow with sample data to confirm each branch behaves correctly, then activate it so every new contact is verified the moment it arrives.

What to Do With Each Result

Use verification status as a workflow control field. A clean n8n workflow makes every non-deliverable outcome visible instead of letting it disappear into a generic false branch.

  • Deliverable: Continue to the CRM, data table, email platform, or database node and add a verified timestamp where possible.
  • Undeliverable: Stop before any sender or CRM write node and log the item to a suppression store.
  • Catch-all: Route to a review output or a low-volume sales path, not to broad campaign enrollment.
  • Disposable: Drop from nurture workflows and optionally respond to the source form with a durable-email requirement.
  • Role-based: Keep for operational use cases where shared inboxes are expected, but exclude from person-level sequences.
  • Unexpected status: Send to a diagnostic branch with the raw JSON, execution ID, and source payload for review.

Frequently Asked Questions

Use the HTTP Request node, which is n8n's bridge for calling any external API inside a workflow. Point it at the VeriMails verification endpoint, pass the email address from an earlier node using an expression, and add your VeriMails API key as a header credential. The JSON response is parsed and made available to downstream nodes.
Add an IF node after the HTTP Request node. The IF node evaluates the VeriMails result and sends deliverable contacts down the true branch and everything else down the false branch. For more than two outcomes, use a Switch node to route deliverable, undeliverable, disposable, and catch-all results separately.
Yes. VeriMails is a standard REST API, so the HTTP Request node works the same on self-hosted n8n and on n8n Cloud. Store your API key as an n8n credential and reference it in the node so the key never appears in plain text in the workflow.
Each address an HTTP Request node verifies uses one VeriMails credit. Credits start at $0.0019 per email, every account gets 100 free credits on signup with no card required, and credits never expire. A webhook-triggered workflow simply draws down credits as new contacts arrive.

Try VeriMails Free

100 free credits on signup. No credit card required. Put this guide into practice today.

Start Free
No credit card required. Credits never expire.