Email address intelligence, in one lookup.
Hand it an address and get one record back: the parts it breaks into, the operator its live MX records say is handling the mail, SPF and DMARC posture, registration dates, a Gravatar check, and flags for free, disposable, forwarding and role-based addresses. Obvious domain typos come back corrected.
Try a real request
// Fires a real request against the demo API key.
// Click the button below to run it. The response opens in the Explorer panel.
const response = await fetch(
'https://api.restcountries.com/email-intelligence/v1/[email protected]',
{ headers: { 'Authorization': 'Bearer rc_live_demo' } }
);
const result = await response.json();
Inside one record
Every block on every address
One record under data.objects, always the same shape. Anything the data can't name for a given address comes back null. There are no optional keys.
{
"email": "[email protected]",
"did_you_mean": null,
"parts": { "local": "someone+newsletter", "username": "someone", "tag": "newsletter", "domain": "gmail.com" },
"tld": { "name": "com", "country": { "name": null, "emoji": null } },
"domain": {
"provider": { "name": "Google", "type": "mailbox", "url": "https://workspace.google.com" },
"category": "free",
"mx": [
{ "exchange": "gmail-smtp-in.l.google.com", "priority": 5 },
{ "exchange": "alt1.gmail-smtp-in.l.google.com", "priority": 10 },
{ "exchange": "alt2.gmail-smtp-in.l.google.com", "priority": 20 }
],
"registration": {
"registered_on": "1995-08-13",
"updated_on": "2026-07-11",
"expires_on": "2027-08-12",
"age_days": 11316
},
"authentication": {
"spf": { "present": true, "policy": "softfail", "record": "v=spf1 redirect=_spf.google.com" },
"dmarc": { "present": true, "policy": "none", "subdomain_policy": "quarantine", "percentage": 100 }
}
},
"gravatar": { "exists": false, "avatar_url": null, "profile_url": null },
"attributes": {
"is_valid_syntax": true,
"is_free": true,
"is_disposable": false,
"is_forwarder": false,
"is_likely_role_based": false,
"has_plus_addressing": true
}
}
// trimmed: the full record carries every mail exchanger the domain publishes,
// plus the complete SPF and DMARC records
Common questions
Before you wire it in
Does this tell me the address is deliverable?
No, and it doesn't claim to. is_valid_syntax says the string is well formed; the mailbox may still not exist. No mailbox probing happens, which is why the field is named for syntax rather than validity.
Why does a company domain report Google as its provider?
Because domain.provider is read from MX records, and a domain on Google Workspace genuinely is operated by Google. is_free matches on the domain itself instead, so that same address correctly comes back paid.
Can I skip the lookups I don't want?
Yes. ?response_fields_omit=gravatar or domain.registration skips the outbound call entirely rather than hiding its result, which matters for the Gravatar check in particular. See the full reference →
Start reading addresses today.
Free tier covers most prototypes. Point at /email-intelligence/v1/process and go.