
Automate Email Verification
in Your n8n Workflows
Add a real-time email check to any n8n workflow by calling the Valid Email Checker API from the built-in HTTP Request node — no community node to install. Verify an incoming lead, then use an IF node to branch valid addresses from invalid ones.
Verify-email workflow
n8nWebhook / Trigger
Incoming lead
Verify Email
Valid Email Checker
Add to CRM
Skip / tag
What You Need to Get Started
A Valid Email Checker API Key
Generate one on the Developer page. 150 free credits on signup.
An n8n Instance
Self-hosted or n8n Cloud — both include the HTTP Request node.
A Few Minutes
Or just import the template below and paste in your key.
How to Build It in n8n
No community node required. You only need the built-in HTTP Request node — or skip ahead and import the template.
Add an HTTP Request node
Add an HTTP Request node to your workflow. Set Method to POST and the URL to the verify-single endpoint below.
https://app.validemailchecker.com/api/verify-single
Shortcut: click Import cURL at the top of the node and paste the cURL snippet from your API Access page — it fills the method, URL, header, and body in one step.
Set up authentication
Set Authentication to Generic Credential Type, then choose Header Auth with Name = Authorization and Value = Bearer YOUR_API_KEY. (Alternatively, use the dedicated Bearer Auth credential — there you paste just the token, no "Bearer" prefix.)
Name: Authorization Value: Bearer YOUR_API_KEY
Get your key: generate it on the API Access page in your dashboard.
Send the email as a JSON body
Turn Send Body on, set Body Content Type to JSON, and use an expression to pull the email from the incoming item.
={ "email": "{{ $json.email }}" }Branch with an IF node
Connect an IF node after the HTTP Request and branch on {{ $json.status }} equals safe (or on is_valid). The true output handles clean leads; the false output handles the rest.
Inbound events: front the workflow with a Webhook trigger node so an external event — a form submission, a new lead — kicks off verify → IF automatically.
Ready-Made Workflow Template
Copy this JSON, then in n8n use Import from Clipboard (workflow menu → Import) to drop in a complete Webhook → HTTP Request → IF workflow. Add your API key to the Valid Email Checker API credential it references and you are live.
{
"name": "Valid Email Checker — Verify & Branch",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "verify-email",
"responseMode": "onReceived",
"options": {}
},
"id": "b1a1d2e3-0001-4a00-9000-000000000001",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
240,
300
],
"webhookId": "verify-email"
},
{
"parameters": {
"method": "POST",
"url": "https://app.validemailchecker.com/api/verify-single",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"contentType": "json",
"specifyBody": "json",
"jsonBody": "={ \"email\": \"{{ $json.email }}\" }",
"options": {}
},
"id": "b1a1d2e3-0002-4a00-9000-000000000002",
"name": "Verify Email",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
520,
300
],
"credentials": {
"httpHeaderAuth": {
"id": "1",
"name": "Valid Email Checker API"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"id": "c0000000-0000-0000-0000-000000000001",
"leftValue": "={{ $json.status }}",
"rightValue": "safe",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"id": "b1a1d2e3-0003-4a00-9000-000000000003",
"name": "IF Valid",
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
800,
300
]
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Verify Email",
"type": "main",
"index": 0
}
]
]
},
"Verify Email": {
"main": [
[
{
"node": "IF Valid",
"type": "main",
"index": 0
}
]
]
}
},
"settings": {
"executionOrder": "v1"
}
}After importing, open the Verify Email node and attach a Header Auth (or Bearer Auth) credential holding your API key.
Single vs. Bulk — Which Endpoint?
Verify one address at a time as records flow through, or clean a whole list in one task. Both cost 1 credit per email.
Verify one at a time
DefaultPOST /api/verify-singleAs each item flows through your workflow — a form submission, a new CRM contact, a new row — verify that one email in real time before the IF node branches.
The default for n8n workflows. It is what the step-by-step and the importable template above use.
Clean a whole list
BatchPOST /api/verify-bulkGET /api/get-results/{task_id}Periodically cleaning an existing list? Submit many emails as one task and poll for results — far more efficient than looping single HTTP Request calls.
Submitting as one task avoids the 60 requests/minute limit; the daily cap is 10,000 verifications.
What the API Returns
Every verification responds with a structured JSON object the IF node and later nodes can read.
statusVerdict: safe, invalid, risky, or unknown.
is_validBoolean — safe to send to.
is_disposableFlags throwaway / temporary domains.
is_role_accountFlags addresses like info@ or admin@.
is_catch_allDomain accepts mail for any address.
mx_foundWhether valid MX records exist.
risk_scoreNumeric risk indicator for the address.
credits_usedCredits charged for this request.
Why Verify Inside n8n
Protect Your Sender Reputation
Catch invalid and disposable addresses before they reach your CRM or sending tool.
Real-Time, Not Batch
Verify the moment a lead arrives — at signup, on a form submit, or as a webhook fires.
Branch on the Result
Use an IF node to keep clean leads and route questionable ones elsewhere.
Credits & Billing
1 Credit = 1 Email
Same rate as bulk, dashboard, and API.
Unknown = Refunded
Credits returned for unverifiable emails.
150 Free Credits
Included on every new account.
60/min · 10k/day
Generous API rate limits.
Frequently Asked Questions
No. There is no community node to install. You call Valid Email Checker through n8n's built-in HTTP Request node, which is available on self-hosted n8n and n8n Cloud alike. Any plan that lets you add an HTTP Request node works.
1 credit per email — the same rate as bulk upload, the dashboard, and every other method. If a result comes back as "Unknown" because we could not reach a definitive answer, that credit is automatically refunded to your account.
API keys are generated on the Developer page inside your Valid Email Checker dashboard. Create a key, then store it in an n8n Header Auth credential (Name: Authorization, Value: Bearer YOUR_API_KEY) or a Bearer Auth credential (just the token). You can revoke and regenerate keys at any time.
Yes. For large lists, point the HTTP Request node at /api/verify-bulk with an array of emails, capture the returned task_id, then add a second HTTP Request node to poll GET /api/get-results/{task_id}. The single-email endpoint is best for real-time, one-at-a-time flows.
Up to 60 requests per minute and 10,000 requests per day. For high-volume workflows, add a Wait node between requests or use the bulk endpoint to stay within these limits.
Ready to Verify Emails in n8n?
Sign up, grab your API key from the Developer page, and import the template above. 150 free credits included — no credit card required.
Get Started Free150 free credits · No credit card · Built-in HTTP Request node