Email Validation API
Build with confidence.
Real-time email verification with syntax checking, disposable detection, MX record validation, and deliverability scoring — all via a single REST endpoint.
Powerful Email Validation Features
A comprehensive validation suite built for production systems, with accuracy and speed at its core.
Syntax Validation
Catch malformed addresses and typos instantly before they enter your database.
Disposable Email Detection
Block temporary and throwaway inboxes from fake signups and trial abuse.
Domain & MX Checks
Verify mail infrastructure and domain authenticity with live DNS lookup.
Developer-Friendly API
Simple REST endpoint with predictable JSON. SDKs for every major language.
Real-Time Validation
Sub-100ms response times. Validate at signup without impacting user experience.
Quality Scoring
Get a deliverability score and risk classification on every email address.
Role-Based Detection
Identify role accounts like admin@, info@, support@ that hurt deliverability.
Bulk Validation
Validate thousands of email addresses in one API call. Clean lists at scale before every campaign.
API Documentation & Code Examples
A clean REST API with predictable JSON responses. No parsing quirks, no hidden fields — built for developers who value their time.
GET /api/v1/email/{email}?api_key={key}
curl "https://ip-api.io/api/v1/email/user@example.com?api_key=YOUR_API_KEY"
{
"email": "user@example.com",
"is_disposable": false,
"has_mx_records": true,
"mx_records": [
{
"priority": 10,
"hostname": "mail.example.com.",
"ttl": 3600
}
],
"syntax": {
"domain": "example.com",
"username": "user",
"is_valid": true,
"error_reasons": []
}
}
GET /api/v1/email/{email}?api_key={key}
const res = await fetch(
"https://ip-api.io/api/v1/email/user@example.com?api_key=YOUR_API_KEY"
);
const data = await res.json();
console.log(data.syntax.is_valid); // true
console.log(data.is_disposable); // false
{
"email": "user@example.com",
"is_disposable": false,
"has_mx_records": true,
"mx_records": [
{
"priority": 10,
"hostname": "mail.example.com.",
"ttl": 3600
}
],
"syntax": {
"domain": "example.com",
"username": "user",
"is_valid": true,
"error_reasons": []
}
}
GET /api/v1/email/{email}?api_key={key}
import requests
res = requests.get(
"https://ip-api.io/api/v1/email/user@example.com",
params={"api_key": "YOUR_API_KEY"}
)
data = res.json()
print(data["syntax"]["is_valid"]) # True
print(data["is_disposable"]) # False
{
"email": "user@example.com",
"is_disposable": false,
"has_mx_records": true,
"mx_records": [
{
"priority": 10,
"hostname": "mail.example.com.",
"ttl": 3600
}
],
"syntax": {
"domain": "example.com",
"username": "user",
"is_valid": true,
"error_reasons": []
}
}
GET /api/v1/email/{email}?api_key={key}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,
"https://ip-api.io/api/v1/email/user@example.com?api_key=YOUR_API_KEY");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch));
echo $data->syntax->is_valid; // true
echo $data->is_disposable; // false
{
"email": "user@example.com",
"is_disposable": false,
"has_mx_records": true,
"mx_records": [
{
"priority": 10,
"hostname": "mail.example.com.",
"ttl": 3600
}
],
"syntax": {
"domain": "example.com",
"username": "user",
"is_valid": true,
"error_reasons": []
}
}
GET /api/v1/email/{email}?api_key={key}
require 'net/http'
require 'json'
uri = URI('https://ip-api.io/api/v1/email/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['syntax']['is_valid'] # true
puts data['is_disposable'] # false
{
"email": "user@example.com",
"is_disposable": false,
"has_mx_records": true,
"mx_records": [
{
"priority": 10,
"hostname": "mail.example.com.",
"ttl": 3600
}
],
"syntax": {
"domain": "example.com",
"username": "user",
"is_valid": true,
"error_reasons": []
}
}
Built for real-world applications
From signups to campaigns — email validation that fits your workflow.
User Registration
Prevent fake signups and protect your user base. Validate in real-time during registration to ensure only genuine users enter your funnel.
Email Marketing
Protect sender reputation and improve deliverability rates. Clean your list before every campaign to reduce bounces and spam complaints.
Fraud Prevention
Detect throwaway emails, role accounts, and suspicious patterns that indicate fraud or abuse in checkout flows and payment systems.
Why Choose Our Email Validation?
Trusted by developers and marketing teams to keep lists clean and deliverability high.
Email Validation API FAQs
Common questions about ip-api.io's real-time email verification API.
What is an email validation API?
An email validation API checks whether an email address is safe to accept before you store or message it. At minimum it verifies syntax; a fuller check also queries the domain's MX records and checks for disposable or temporary email providers. ip-api.io returns all these signals in a single JSON response.
Does the API detect disposable email addresses?
Yes. The is_disposable field flags addresses from known temporary or throwaway email providers — a common signal for fake signups and fraudulent accounts. The list is updated continuously as new disposable domains emerge.
What is the difference between email validation and advanced email validation?
The standard email validation endpoint checks syntax, domain/MX records, and the disposable email provider list — all fast, non-SMTP checks. The advanced email validation endpoint additionally performs a live SMTP handshake to verify that the specific mailbox exists and can receive messages, returning an inbox reachability score.
Will email validation slow down my signup form?
The standard validation endpoint typically responds in under 100 ms since it does not make outbound SMTP connections. You can call it synchronously on form submit without a noticeable delay. Advanced validation (SMTP check) takes longer and is better suited for background processing or batch use cases.
How do I reduce email bounce rates with this API?
Validate email addresses at the point of collection — signup forms, lead capture, or checkout — rather than after the fact. Reject addresses with is_valid_syntax: false or is_disposable: true immediately. For marketing lists, run them through the batch API periodically to remove addresses whose domain or MX records have gone stale.
Can I validate emails in bulk?
Yes. The bulk validation endpoint accepts a list of email addresses and returns results for each one in a single API call. This is ideal for cleaning existing lists before a campaign send or onboarding a dataset of existing contacts.
Simple, transparent pricing
Start small, scale as you grow. No hidden fees.
Stop bad emails at the door
Syntax checking, disposable detection, MX validation, and deliverability scoring — all via a single REST endpoint.