Skip to main content
POST
/
v1
/
people
/
email-validation
Email Validation
curl --request POST \
  --url https://api.leadmagic.io/v1/people/email-validation \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "email": "jesse@leadmagic.io"
}
'
{
  "email": "jesse@leadmagic.io",
  "email_status": "valid",
  "credits_consumed": 0.05,
  "message": "Email is valid.",
  "mx_record": "aspmx.l.google.com",
  "mx_provider": "Google Workspace",
  "mx_security_gateway": false,
  "company_name": "Leadmagic",
  "company_industry": "",
  "company_size": "11-50",
  "company_founded": 2022,
  "company_location": {
    "name": "boston, massachusetts, united states",
    "locality": "boston",
    "region": "massachusetts",
    "metro": "boston, massachusetts",
    "country": "united states",
    "continent": "north america",
    "street_address": "1 seaport lane",
    "address_line_2": null,
    "postal_code": "02210",
    "geo": "42.35,-71.06"
  },
  "company_profile_url": "leadmagichq",
  "company_profile_id": "75153174",
  "company_facebook_url": "",
  "company_twitter_url": "",
  "company_type": "private"
}

Validate Email

Verify email addresses with industry-leading accuracy. Our validation system combines SMTP verification with engagement data for the most reliable results.

Endpoint Details

MetricValue
Cost0.05 credits per validation
Calculation20 validations = 1 credit
Free Resultscatch_all and unknown results are free
RFC ValidationNon-compliant emails → invalid (charged)
You only pay for definitive results (valid, invalid, valid_catch_all). Inconclusive results are always free.
RFC 5321/5322 Compliance: Emails that fail RFC syntax validation are automatically marked invalid and charged 0.05 credits. This includes malformed addresses, invalid characters, and improper formatting.

Quick Example

curl -X POST 'https://api.leadmagic.io/v1/people/email-validation' \
  -H 'X-API-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"email": "john@company.com"}'

Request Parameters

email
string
required
The email address to validate. Must be a properly formatted email address.

Response

email
string
required
The validated email address (normalized)
email_status
string
required
Validation result: valid, invalid, catch_all, valid_catch_all, or unknown
credits_consumed
number
required
Credits used for this request (0.05 for definitive results, 0 for inconclusive)
message
string
required
Human-readable status message
mx_record
string
Primary MX record for the domain
mx_provider
string
Email provider (Google Workspace, Microsoft 365, etc.)
mx_security_gateway
boolean
Whether a security gateway is present

Example Response

{
  "email": "john@company.com",
  "email_status": "valid",
  "credits_consumed": 0.05,
  "message": "Email is valid.",
  "mx_record": "aspmx.l.google.com",
  "mx_provider": "Google Workspace",
  "mx_security_gateway": false,
  "company_name": "Company Inc",
  "company_industry": "Technology",
  "company_size": "51-200",
  "company_profile_url": "https://www.linkedin.com/company/company-inc"
}

Status Codes

valid

Safe to email - Bounce rate <1%Email verified by mail server. Costs 0.05 credits.

valid_catch_all

Safe to email - Bounce rate <5%Catch-all domain with engagement data. Costs 0.05 credits.

invalid

Do NOT email - Will bounceMail server confirmed non-existent OR failed RFC validation. Costs 0.05 credits.

catch_all

Risky - UnverifiableDomain accepts all emails. FREE (no charge).

unknown

Risky - Server didn’t respondCouldn’t reach mail server. FREE (no charge).

RFC Compliance

Emails that don’t comply with RFC 5321/5322 standards are automatically marked invalid and charged:
RFC ViolationExampleResult
Missing @ symboljohncompany.cominvalid (0.05 credits)
Invalid charactersjohn@comp any.cominvalid (0.05 credits)
Missing domainjohn@invalid (0.05 credits)
Double dotsjohn..doe@company.cominvalid (0.05 credits)
Invalid TLDjohn@companyinvalid (0.05 credits)
RFC validation happens instantly before SMTP verification. This protects you from wasting time on obviously invalid addresses while still charging for the definitive “invalid” result.

Success Messages

MessageStatusCost
Email is valid.valid0.05
Email is valid (catch-all domain with engagement data).valid_catch_all0.05
Email is invalid.invalid0.05
Email is invalid (RFC non-compliant format).invalid0.05
Email is invalid (malformed address).invalid0.05
Domain accepts all emails (catch-all). Unable to verify specific address.catch_allFREE
Unable to determine email validity.unknownFREE

Best Practices

Run basic regex validation before API calls to catch obvious RFC violations. This saves credits on clearly malformed addresses.
// Basic RFC-compliant check before API call
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailRegex.test(email)) {
  // Skip API call - obviously invalid
  return { email_status: 'invalid', reason: 'malformed' };
}
Note: Our API catches all RFC violations, but client-side pre-validation can reduce unnecessary API calls.
Always validate your email list before sending to maintain high deliverability and protect your sender reputation. Invalid emails hurt your domain reputation.
For catch_all results, consider using Email Finder to verify the specific address exists before adding to campaigns.
For large lists, batch your requests to stay within rate limits. Use the response headers to monitor your remaining quota.
const remaining = response.headers.get('RateLimit-Remaining');
if (remaining < 100) {
  await sleep(1000); // Slow down if approaching limit
}
Every response includes X-Credits-Remaining so you can track spending without extra API calls.

Use Cases

List Cleaning

Validate email lists before campaigns to reduce bounces and protect sender reputation.

Form Validation

Validate emails at point of capture to ensure data quality from the start.

CRM Hygiene

Regularly validate CRM contacts to maintain deliverability rates.

Lead Scoring

Use validation status as a lead quality signal in your scoring models.

Authorizations

X-API-Key
string
header
required

Your LeadMagic API key. Header name is case-insensitive (X-API-Key, X-API-KEY, x-api-key all work).

Body

application/json
email
string<email>
required

Email address to validate

Example:

"jesse@leadmagic.io"

Response

Successful validation

email
string
Example:

"jesse@leadmagic.io"

email_status
string
Example:

"valid"

credits_consumed
number
Example:

0.05

message
string
Example:

"Email is valid."

mx_record
string
Example:

"aspmx.l.google.com"

mx_provider
string
Example:

"Google Workspace"

mx_security_gateway
boolean
Example:

false

company_name
string
Example:

"Leadmagic"

company_industry
string
Example:

""

company_size
string
Example:

"11-50"

company_founded
integer
Example:

2022

company_location
object
company_profile_url
string
Example:

"leadmagichq"

company_profile_id
string
Example:

"75153174"

company_facebook_url
string
Example:

""

company_twitter_url
string
Example:

""

company_type
string
Example:

"private"