Advanced Email Validation API
Real-time SMTP Verification.
Deep email verification with real-time SMTP checks, deliverability assessment, and comprehensive fraud detection. Verify inbox reachability with 95%+ accuracy for marketing campaigns and user registration.
Email Verification Features
Comprehensive email analysis with real-time SMTP verification and deliverability assessment.
Real-time SMTP Verification
Connect to mail servers in real-time to verify inbox reachability and deliverability with 95%+ accuracy.
Deliverability Assessment
Advanced analysis to determine if emails can actually be delivered to the recipient's inbox.
Catch-All Detection
Identify domains that accept all emails regardless of the local part, preventing false positives.
Gravatar Detection
Check if the email address has an associated Gravatar profile, indicating real user engagement.
Role Account Detection
Identify role-based emails (admin@, support@, noreply@) for better targeting and compliance.
MX Record Validation
Verify DNS mail exchange records to ensure the domain is configured to receive emails.
Domain Suggestions
Smart typo correction suggestions for common domain misspellings to improve user experience.
Fraud Signal Detection
Comprehensive checks for disposable emails, temporary services, and suspicious patterns.
API Documentation & Code Examples
Integrate real-time SMTP verification into your application with a clean REST API. Predictable JSON responses built for developers who value accuracy.
GET /api/v1/email/advanced/{email}?api_key={key}
curl "https://ip-api.io/api/v1/email/advanced/user@example.com?api_key=YOUR_API_KEY"
{
"email": "user@example.com",
"reachable": "yes",
"smtp": {
"deliverable": true,
"host_exists": true,
"catch_all": false,
"full_inbox": false,
"disabled": false
},
"role_account": false,
"has_mx_records": true,
"gravatar": {
"has_gravatar": true
},
"suggestion": null
}
GET /api/v1/email/advanced/{email}?api_key={key}
const res = await fetch(
"https://ip-api.io/api/v1/email/advanced/user@example.com?api_key=YOUR_API_KEY"
);
const data = await res.json();
console.log(data.reachable); // "yes"
console.log(data.smtp.deliverable); // true
{
"email": "user@example.com",
"reachable": "yes",
"smtp": {
"deliverable": true,
"host_exists": true,
"catch_all": false,
"full_inbox": false,
"disabled": false
},
"role_account": false,
"has_mx_records": true,
"gravatar": {
"has_gravatar": true
},
"suggestion": null
}
GET /api/v1/email/advanced/{email}?api_key={key}
import requests
res = requests.get(
"https://ip-api.io/api/v1/email/advanced/user@example.com",
params={"api_key": "YOUR_API_KEY"}
)
data = res.json()
print(data["reachable"]) # "yes"
print(data["smtp"]["deliverable"]) # True
{
"email": "user@example.com",
"reachable": "yes",
"smtp": {
"deliverable": true,
"host_exists": true,
"catch_all": false,
"full_inbox": false,
"disabled": false
},
"role_account": false,
"has_mx_records": true,
"gravatar": {
"has_gravatar": true
},
"suggestion": null
}
GET /api/v1/email/advanced/{email}?api_key={key}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://ip-api.io/api/v1/email/advanced/user@example.com?api_key=YOUR_API_KEY");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch));
echo $data->reachable; // "yes"
echo $data->smtp->deliverable; // true
{
"email": "user@example.com",
"reachable": "yes",
"smtp": {
"deliverable": true,
"host_exists": true,
"catch_all": false,
"full_inbox": false,
"disabled": false
},
"role_account": false,
"has_mx_records": true,
"gravatar": {
"has_gravatar": true
},
"suggestion": null
}
GET /api/v1/email/advanced/{email}?api_key={key}
require 'net/http'
require 'json'
uri = URI('https://ip-api.io/api/v1/email/advanced/user@example.com')
uri.query = URI.encode_www_form(api_key: 'YOUR_API_KEY')
res = Net::HTTP.start(uri.hostname, use_ssl: true) { |h| h.get(uri) }
data = JSON.parse(res.body)
puts data['reachable'] # "yes"
puts data['smtp']['deliverable'] # true
{
"email": "user@example.com",
"reachable": "yes",
"smtp": {
"deliverable": true,
"host_exists": true,
"catch_all": false,
"full_inbox": false,
"disabled": false
},
"role_account": false,
"has_mx_records": true,
"gravatar": {
"has_gravatar": true
},
"suggestion": null
}
Built for real-world applications
From campaigns to signups — advanced SMTP verification that fits your workflow.
Marketing Campaigns
Achieve higher deliverability rates with real-time SMTP verification. Ensure emails reach actual inboxes, not spam folders, before every send.
User Registration
Validate user authenticity during registration with Gravatar detection and real inbox verification. Stop fake accounts at the door.
Lead Generation
Qualify and score leads with comprehensive SMTP analysis. Filter role accounts and catch-all domains to focus on genuine prospects.
Why Choose IP-API.io for Email Verification?
Enterprise-grade SMTP verification for marketing professionals and businesses that require the highest deliverability accuracy.
Advanced Email Validation FAQs
Everything you need to know about SMTP email verification.
What is the difference between basic and advanced email validation?
Basic email validation checks syntax and MX records to confirm the domain is configured to receive mail. Advanced email validation goes further — it connects to the mail server via SMTP in real time to confirm the specific inbox exists and can actually receive email, giving you a definitive deliverability result rather than a best guess.
How does SMTP email verification work?
The API performs an SMTP handshake with the recipient's mail server without sending an actual email. It connects to the server, announces a test sender, and checks whether the server accepts or rejects the recipient address. This confirms whether the inbox exists and can receive mail, with 95%+ accuracy.
What does catch-all email detection mean?
Some domains are configured to accept every incoming email regardless of whether the individual mailbox exists — known as catch-all or accept-all domains. The API detects these and sets smtp.catch_all: true, so you know the SMTP check may not reflect a real inbox and prevents false positives in your validation.
How long does the email verification API take to respond?
Responses typically take 500ms–2s because the API makes a live connection to the recipient's mail server. For use cases where speed matters more than SMTP-level accuracy, the standard email validation endpoint responds in under 100ms.
Can I use this API for bulk email list cleaning?
Yes. The API supports both individual real-time lookups and bulk validation via the batch endpoint. For large lists, the email list cleaning batch endpoint provides better throughput and avoids rate limits from sequential individual requests.
What does reachable: "unknown" mean in the API response?
A reachable value of "unknown" means the mail server responded ambiguously — typically because the domain uses catch-all configuration, the server uses greylisting, or it did not give a definitive accept or reject. You can treat unknown addresses conservatively (exclude from sends) or permissively (include with lower confidence) depending on your use case.
Simple, transparent pricing
Start small, scale as you grow. No hidden fees.
Verify every inbox before it costs you
Real-time SMTP checks, deliverability scoring, and disposable email detection — with 95%+ accuracy in a single API call.