Email Validation API

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.

Try it live
Syntax Check
● Valid
Disposable Detection
● Active
MX / Domain Check
● Verified
API Response
{
"email": "user@example.com",
"is_disposable": false,
"has_mx_records": true,
"mx_records": [
{
"priority": 10,
"hostname": "mail.example.com.",
"ttl": 3600
}
],
"syntax": {
"is_valid": true
}
}
Trusted by thousands of businesses
Fast JSON API responses
Real-time validation
Simple integration, SDKs & examples
Features

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.

Developer Experience

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.

Fast JSON responses, typically under 100ms
SDKs for JavaScript, Python, PHP, Ruby, Go
Copy buttons and reproducible examples
Consistent, versioned API structure
Read API Reference
Endpoint
GET /api/v1/email/{email}?api_key={key}
Example Request
curl "https://ip-api.io/api/v1/email/user@example.com?api_key=YOUR_API_KEY"
Example Response
200
{
  "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": []
  }
}
Endpoint
GET /api/v1/email/{email}?api_key={key}
Example Request
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
Example Response
200
{
  "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": []
  }
}
Endpoint
GET /api/v1/email/{email}?api_key={key}
Example Request
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
Example Response
200
{
  "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": []
  }
}
Endpoint
GET /api/v1/email/{email}?api_key={key}
Example Request
$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
Example Response
200
{
  "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": []
  }
}
Endpoint
GET /api/v1/email/{email}?api_key={key}
Example Request
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
Example Response
200
{
  "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": []
  }
}
Use Cases

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.

Syntax Disposable Deliverability

Email Marketing

Protect sender reputation and improve deliverability rates. Clean your list before every campaign to reduce bounces and spam complaints.

Bounce Prevention MX Check Quality Score

Fraud Prevention

Detect throwaway emails, role accounts, and suspicious patterns that indicate fraud or abuse in checkout flows and payment systems.

Disposable Role Detection Risk Score
Why Choose Us

Why Choose Our Email Validation?

Trusted by developers and marketing teams to keep lists clean and deliverability high.

95%
Bounce Rate Reduction
Eliminate invalid addresses before sending campaigns and improve deliverability.
30%
Lower Marketing Costs
Stop paying to send emails to addresses that will never convert.
Higher
User Quality
Filter out fake registrations and disposable emails to build a genuine user base.
Accurate
Better Analytics
Get reliable engagement metrics and insights with clean, validated email data.
FAQ

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.

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

Stop bad emails at the door

Syntax checking, disposable detection, MX validation, and deliverability scoring — all via a single REST endpoint.

> _
curl ip-api.io/api/v1/
email/user@example.com
Email