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.
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.
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.
In n8n, open Settings → Community nodes → Install. Enter the package name below, review n8n's community-node notice, and select Install.
@emailverifier/n8n-nodes-emailverifierCreate 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.
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.
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.
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.
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.
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.
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.
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.
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.
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 creditsNeed help? Contact support or report a node issue with the operation and error message.