Skip to main content

Endpoint

GET /email/{email}
Validates an email address and returns comprehensive information including disposability status, MX records, domain reputation, and more.

Parameters

email
string
required
The email address to validate (e.g., [email protected])

Request Example

curl -X GET "https://api.fraudiant.com/email/[email protected]" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response Fields

status
integer
HTTP status code indicating the result of the request
  • 200: Success
  • 400: Invalid input
  • 429: Rate limit exceeded
email
string
The email address that was checked. This is the normalized form of the input email.
normalized_email
string
The standardized, canonical form of the email address
domain
string
The domain portion extracted from the email address
domain_age_in_days
integer | null
The number of days since the domain was registered. Returns null if the age is unknown.
mx
boolean
Indicates whether the domain has valid MX (Mail Exchange) records configured
mx_records
array
List of MX records for the domain. Empty array if mx is false.
disposable
boolean
Key Field: Indicates whether the email uses a temporary or disposable email domain
disposable_provider
string | null
The provider domain name if the email is disposable, otherwise null
public_domain
boolean
Indicates whether the email uses a public email service like Gmail, Yahoo Mail, or Outlook
relay_domain
boolean
Indicates whether the email uses a domain that provides email forwarding services
alias
boolean
Deprecated: Use normalized_email field instead for alias detection
role_account
boolean
Indicates whether the email is a role-based account (e.g., support@, admin@, info@) rather than a personal account
did_you_mean
string | null
Suggested correction if there’s a likely typo in the email address (e.g., gmial.comgmail.com)
blocklisted
boolean
Indicates whether the email’s domain is on your account’s custom blocklist (Pro feature)
spam
boolean
Indicates whether the domain is associated with spam or other abusive activities

Response Examples

Success Response (Valid Email)

{
  "status": 200,
  "email": "[email protected]",
  "normalized_email": "[email protected]",
  "domain": "example.com",
  "domain_age_in_days": 1234,
  "mx": true,
  "mx_records": ["mail.example.com"],
  "disposable": false,
  "disposable_provider": null,
  "public_domain": false,
  "relay_domain": false,
  "alias": false,
  "role_account": false,
  "did_you_mean": null,
  "blocklisted": false,
  "spam": false
}

Disposable Email Detected

{
  "status": 200,
  "email": "[email protected]",
  "normalized_email": "[email protected]",
  "domain": "tempmail.com",
  "domain_age_in_days": 456,
  "mx": true,
  "mx_records": ["mx1.tempmail.com"],
  "disposable": true,
  "disposable_provider": "tempmail.com",
  "public_domain": false,
  "relay_domain": false,
  "alias": false,
  "role_account": false,
  "did_you_mean": null,
  "blocklisted": false,
  "spam": true
}
When disposable: true, you should typically block or flag this email to prevent fraud.

Typo Suggestion

{
  "status": 200,
  "email": "[email protected]",
  "normalized_email": "[email protected]",
  "domain": "gmial.com",
  "domain_age_in_days": null,
  "mx": false,
  "mx_records": [],
  "disposable": false,
  "disposable_provider": null,
  "public_domain": false,
  "relay_domain": false,
  "alias": false,
  "role_account": false,
  "did_you_mean": "[email protected]",
  "blocklisted": false,
  "spam": false
}
The did_you_mean field suggests gmail.com instead of gmial.com, helping you catch user typos.

Error Responses

Invalid Email (400)

{
  "status": 400,
  "error": "The email address is invalid."
}

Rate Limit Exceeded (429)

{
  "status": 429,
  "error": "Too many requests"
}

Learn About Rate Limits

View rate limit details and best practices

Common Use Cases

const response = await fetch(`https://api.fraudiant.com/email/${userEmail}`, {
  headers: { 'Authorization': 'Bearer YOUR_API_KEY' }
});

const data = await response.json();

if (data.disposable) {
  return { error: 'Disposable email addresses are not allowed' };
}

// Proceed with registration
if (data.role_account) {
  console.log('This is a role-based email (e.g., support@, info@)');
  // Handle accordingly
}
if (data.did_you_mean) {
  return {
    message: `Did you mean ${data.did_you_mean}?`,
    suggestion: data.did_you_mean
  };
}
if (!data.mx || data.mx_records.length === 0) {
  console.warn('Email domain has no valid MX records');
  // Email may not be deliverable
}

Best Practices

Cache Results

Cache validation results to reduce API calls for the same email address

Handle Errors Gracefully

Always handle rate limits and validation errors in your application

Use Normalized Email

Store the normalized_email field in your database for consistency

Combine Multiple Signals

Use multiple fields (disposable, spam, mx) for better fraud detection