Advanced Email Validation API

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.

Try SMTP verification live
SMTP Check
● Verified
Catch-All Detection
● Not detected
Reachable
● Yes
API Response

          
        
Trusted by thousands of businesses
Fast JSON API responses
Real-time validation
Simple integration, SDKs & examples
Features

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.

Developer Experience

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.

SMTP-level accuracy — direct inbox reachability check
Catch-all & fraud signal detection built in
SDKs for JavaScript, Python, PHP, Ruby, Go
Consistent, versioned API structure
Read API Reference
Endpoint
GET /api/v1/email/advanced/{email}?api_key={key}
Example Request
curl "https://ip-api.io/api/v1/email/advanced/user@example.com?api_key=YOUR_API_KEY"
Example Response
200
{
  "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
}
Endpoint
GET /api/v1/email/advanced/{email}?api_key={key}
Example Request
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
Example Response
200
{
  "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
}
Endpoint
GET /api/v1/email/advanced/{email}?api_key={key}
Example Request
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
Example Response
200
{
  "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
}
Endpoint
GET /api/v1/email/advanced/{email}?api_key={key}
Example Request
$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
Example Response
200
{
  "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
}
Endpoint
GET /api/v1/email/advanced/{email}?api_key={key}
Example Request
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
Example Response
200
{
  "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
}
Use Cases

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.

SMTP Verify Deliverability Bounce Prevention

User Registration

Validate user authenticity during registration with Gravatar detection and real inbox verification. Stop fake accounts at the door.

Inbox Reachability Gravatar Fraud Signals

Lead Generation

Qualify and score leads with comprehensive SMTP analysis. Filter role accounts and catch-all domains to focus on genuine prospects.

Role Detection Catch-All Lead Scoring
Why Choose Us

Why Choose IP-API.io for Email Verification?

Enterprise-grade SMTP verification for marketing professionals and businesses that require the highest deliverability accuracy.

95%+
Inbox Accuracy
SMTP-level verification confirms the mailbox exists and can receive email.
99%
Fraud Detection Rate
Catch disposable emails, role accounts, and suspicious patterns before they enter your system.
Higher
User Quality
Filter fake registrations and disposable inboxes to build a genuine, engaged user base.
10+
Validation Signals
From SMTP status to Gravatar profiles — comprehensive signals for every email address.
FAQ

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.

Pricing

Simple, transparent pricing

Start small, scale as you grow. No hidden fees.

Small
€10 /month
100,000 geo IP requests / month
10,000 advanced email validation requests
Syntax & disposable check
Location, threat & time zone data
Email support
99.9% uptime SLA
Get started
Large
€49 /month
1,000,000 geo IP requests / month
100,000 advanced email validation requests
Full validation suite
Role & catch-all detection
SLA & uptime guarantee
All datasets
Custom integrations
Dedicated support
Get started

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.

> _
curl ip-api.io/api/v1/
email/advanced/user@ex.com
SMTP