
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 — just the built-in HTTP Request node. The fastest way is to import a cURL command; a manual path is below if you prefer a reusable credential.
Have a Valid Email Checker account? Skip the manual setup.
Open Integrations → Automation & Workflows in your dashboard — the guided wizard generates an API key, shows these exact fields, and lets you run a live test, all in one place.
Path A — Import cURL (fastest)
Add an HTTP Request node
Drop an HTTP Request node into your workflow and open it.
Click “Import cURL”
On the node's Parameters tab, click the Import cURL button (top-right, just above the Method field).
Paste this cURL command
In the Import cURL command dialog, paste the command below, then replace YOUR_API_KEY with your key.
curl -X POST https://app.validemailchecker.com/api/verify-single \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com"}'Get your key: generate it on the API Access page in your dashboard.
Click Import
n8n auto-fills the method, URL, both headers, and the JSON body:
Method
URL
Name
Value
Name
Value
Click Execute step to test
Hit Execute step (top-right). The verification result — status, is_valid, credits_used — appears in the OUTPUT panel.
Path B — Manual (reusable credential)
Set method & URL
Method
URL
Authenticate with a Header Auth credential
Set Authentication to Generic Credential Type → Header Auth, then create a credential with these values:
Authentication
Generic Auth Type
Name
Value
Send the email as a JSON body
Turn Send Body on, set the body type to JSON, and use an expression to pull the email from the incoming item.
Send Body
={ "email": "{{ $json.email }}" }Click Execute step to test
Run Execute step and confirm the JSON response shows up in the OUTPUT panel.
Get your key: generate it on the API Access page in your dashboard.
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.
Value 1 (expression)
Operation
Value 2
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