A real-time email verification API: send up to 100 addresses in one request and get back a 0-10 score, a classifier and the reason for each.
200 free validations · No credit card · Credits never expire
{ "emails": ["john@gmai.com"] }
Selected response fields for an address whose domain has no MX records.
Validate an email with one request
Copy and paste one of these examples to validate your first email address.
curl -X POST https://api.campaignkit.cc/v1/email/validate \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"emails": ["test@example.com"]}'const response = await fetch('https://api.campaignkit.cc/v1/email/validate', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ emails: ['test@example.com'] })
});
const data = await response.json();
console.log(`Classifier: ${data.results[0].result.classifier}`);
console.log(`Score: ${data.results[0].result.score}/10`);import requests
response = requests.post(
'https://api.campaignkit.cc/v1/email/validate',
headers={'Authorization': 'Bearer YOUR_API_KEY'},
json={'emails': ['test@example.com']}
)
data = response.json()
result = data['results'][0]['result']
print(f"Classifier: {result['classifier']}")
print(f"Score: {result['score']}/10")Each request to the email address validation API returns the same result object per address: syntax, MX and mailbox checks, a score from 0 to 10, a classifier, description flags and the SMTP response. The response also tells you how many credits the call used.
{
"creditsUsed": 1,
"results": [
{
"email": "john@gmai.com",
"contextId": "",
"result": {
"syntax": "pass",
"mx": "fail",
"mailbox": "",
"score": 0,
"description": ["domain", "didYouMean"],
"classifier": "invalid",
"smtpResponse": "",
"didYouMean": "john@gmail.com",
"didYouMeanDomain": "gmail.com"
}
}
]
}Example built from the documented response format: an address whose domain has no MX records. The domain check fails, so the score is 0, and because the domain looks like gmail.com, the result suggests a correction you can show to the user. The mailbox field stays empty because validation stopped at the domain check.
Flags you can see in description: syntax, domain, mailbox, verifyRejected, catchAll, role, disposable, blacklist and didYouMean. A passed mailbox check on a catch-all domain doesn't prove the address exists. See how the score is calculated.
One API key works for all of them. Want to try a single address first, without a key? Use the free email verifier.
POST /v1/email/validate
Up to 100 addresses per request, with results in the response. Use it in signup and checkout forms.
Email validation docs →POST /v1/email/validate/job
Upload a file or paste a list, poll the job, then read the results or download a CSV. The bulk email validation API for lists too big for one request.
Validation jobs docs →validation.job.completed
Get a POST when a job finishes, signed with HMAC-SHA256 in the X-Webhook-Signature header.
Webhooks docs →POST /v1/mcp/sse
Five tools that let AI assistants such as Claude validate emails and run jobs with your API key.
MCP server docs →Each address that passes the syntax check uses one credit, and credits never expire. See pricing.
Integrate in 3 Simple Steps
From signup to your first response in a few requests.
Sign up for free and generate your API key from the dashboard in seconds. No credit card required to start.
Use our REST API to validate emails with a simple POST request. Get instant results with detailed validation data.
Add validation to your forms, CRM, or workflows. Process single emails or batch validate up to 100 at once.
An email verification API built for developers
Everything you need for a smooth integration experience.
When to Use Email Validation API
Common scenarios where email validation adds value to your applications.
Validate email addresses in real-time as users submit forms to prevent invalid data from entering your system.
Bulk validate your existing email lists to improve deliverability and reduce bounce rates.
Automatically validate new contacts as they're added to your CRM or customer database.
Catch typos and undeliverable addresses at checkout so order confirmations arrive.
Common questions about integrating the API. Can't find what you need? Check our full documentation or contact support.