n8n email verification.

Verify email addresses in your n8n workflows before creating CRM contacts, importing spreadsheet rows, or processing form submissions. Get a status, recommended action, and the signals behind each result.

Three operations

Email → Verify
Check an address and return its status, recommended action, risk signals, and any typo suggestion.
Domain → Check
Inspect a domain’s classification, risk, and mail routing.
Usage → Get
Read the connected project’s completed checks and remaining credits.
View the npm package

Install the n8n community node

The emailverifier.dev node is available on npm for self-hosted n8n. Its n8n verification review is pending. For n8n Cloud, use the HTTP Request setup below.

Installation requires an instance owner or admin with community packages enabled.

  1. 1. Install the package

    In n8n, open Settings → Community nodes → Install. Enter the package name below, review n8n's community-node notice, and select Install.

    @emailverifier/n8n-nodes-emailverifier
  2. 2. Connect your project API key

    Create an account, create or select a project, and copy its key from API keys. In n8n, add an emailverifier.dev node and create an emailverifier.dev API credential. Paste the key and save.

    The credential test reads project usage without spending a credit. n8n stores the key as a credential. Keys are shown only when created or rotated.

  3. 3. Verify an email address

    Select Email → Verify. Enter an address you control, or switch the Email field to an expression and map the email from the previous node:

    {{ $json.email }}

    Run the step and inspect status, action, and signals. Every incoming item makes one verification request and uses one credit.

Verify emails on n8n Cloud

The built-in HTTP Request node works on n8n Cloud and self-hosted instances. It calls the same email verification API and returns the same results.

Choose Generic Credential Type → Header Auth. Create a credential with the name X-API-Key and your project API key as its value. Keep the key in this credential.

Enable Send Body, choose JSON, then Using Fields Below. Add a field named email and map its value from your trigger.

Method
POST
URL
https://emailverifier.dev/api/v1/verify
Authentication
Generic Credential Type → Header Auth
Header name
X-API-Key
Body field
email
Field value
{{ $json.email }}

If your trigger nests form fields inside body, map {{ $json.body.email }} instead. Use the input panel to confirm the field path.

For a domain check, use GET with https://emailverifier.dev/api/v1/domains/example.com and turn off Send Body. Read usage with GET https://emailverifier.dev/api/v1/usage.

Full API reference · n8n HTTP Request documentation

Email verification workflow examples

Validate a Google Sheets list

Read rows, map the email column into verification, then update the same row with status, action, and signals. Keep the original row identifier for matching. Process only unchecked rows to avoid spending credits again.

Check form submissions

Connect a Form Trigger or Webhook to verification, then route the recommended action. Continue accepted submissions, request a correction for blocked addresses, and keep uncertain results for review.

Verify leads before CRM import

Place verification between your lead source and CRM node. Use the allow branch to create contacts and keep the review branch available for role addresses, catch-all domains, and inconclusive checks.

Route results with a Switch node

Add a Switch node after verification. Match {{ $json.action }} against allow, block, and review. Keep unmatched results on a review branch.

The status field reports deliverable, undeliverable, risky, or unknown. Even a deliverable address can need review, so use the recommended action when routing.

allow
Continue the workflow. The mailbox check accepted the address and no signals requiring review were found.
block
Stop this import or request a correction. Inspect signals for a confirmed failure or a disposable address.
review
Keep the address for review. This includes inconclusive checks, catch-all behavior, role addresses, or a possible typo. An unknown result is not a confirmed failure.

Checks cover syntax, mail-routing DNS, disposable providers, role addresses, and SMTP recipient acceptance when available. A timeout or policy block remains unknown. SMTP acceptance does not guarantee delivery or prove who owns an address.

Email verification credits

Get 1,000 non-expiring starter credits once per account, applied to your first project. Each authenticated email verification or domain check uses one credit, including unknown results. Reading usage is free.

Add 20,000 non-expiring credits for a one-time $10 payment. n8n hosting and execution charges are separate. See pricing.

Get 1,000 free credits

Troubleshoot failed requests

  • 401: Check the credential's API key. Rotating a project key invalidates its previous key.
  • 402: Add credits to the project connected to this credential.
  • 429: Slow down requests and wait until the API's rate limit resets. For lists, use smaller batches and a Wait node. Repeating completed checks spends additional credits.

Need help? Contact support or report a node issue with the operation and error message.