Email Address API

Response Fields

domain string

The domain extracted from the input.

email string

The full email address if one was provided as input.

Only present when input is an email address.

filtered string

The email address normalized to its canonical form, with aliases and provider-specific variations removed. Helps detect duplicate accounts using different address formats.

[email protected] → [email protected]

suggested string | null

A corrected email address when a likely typo is detected in the domain. Catches common mistakes like @gmial.com before they enter your system.

[email protected] → [email protected]

If suggested is null, the field will not be displayed.

role boolean

Whether this is a role-based address (info@, support@, sales@) rather than a personal mailbox. Role addresses often have multiple recipients and higher bounce rates.

mx boolean

Whether MX records exist for the domain, confirming it can receive email.

deliverable boolean

Whether the specific mailbox exists and can receive mail (verified via SMTP). Use this to clean your lists and avoid hard bounces that damage sender reputation.

May be absent if connection to mail server fails.

catchall boolean

Whether the mail server accepts all addresses (wildcard) regardless of whether the mailbox exists. If true, deliverability cannot be reliably verified.

May be absent if connection to mail server fails.

provider string

The detected email service provider (e.g., Gmail, Outlook, ProtonMail).

disposable boolean

Whether the domain is a known disposable or temporary email service. Commonly used for fake signups and promo abuse.

privacy boolean

Whether the email uses a privacy service (forwarding, aliasing, or masked email like Apple's Hide My Email).

paid_service boolean

Whether the email or domain is using a paid email service. Paid accounts typically indicate higher-intent users and lower fraud risk.

Requires paid parameter.

mx_record object

Mail server (MX) records with mail server hostnames and their priority values. Keys are hostnames, values are priority numbers (lower = higher preference).

mx_ip array

IP addresses (IPv4 and IPv6) of all MX record hosts.

Requires mx_ip parameter.

mx_reverse object

Maps each MX hostname to its resolved IP addresses.

Requires mx_reverse parameter.

spf_record array

IP addresses and CIDR ranges authorized to send email via SPF.

Requires spf parameter.

List of all domains operated by the same disposable email provider.

Requires related parameter. Only returned when disposable: true.

mail_status string | null

Response message from the mail server during SMTP verification.

Example: "Recipient does not exist."

If mail_status is null, the field will not be displayed.

server_status string | null

Debugging or error messages from the real-time verification process.

Example: "Connection timeout after 10s"

If server_status is null, the field will not be displayed.

error_code int | null

A numeric code indicating the result of the email verification process.

  • 1xx — Mail server (DNS) lookup issues
  • 2xx — Connection failures
  • 3xx — Recipient/mailbox errors
  • 4xx — Catch-all check errors

If error_code is null, the field will not be displayed.

Error Codes

CodeReason
100No mail server found (no MX or A record)
200Mail server unreachable
201Could not establish connection
202Mail server refused communication
203Mail server rejected sender
204Connection timed out
300Recipient does not exist
301Recipient mailbox is full
302Recipient mail server temporarily unavailable
303Blocked by recipient's mail server security policy
304Unable to confirm if recipient can receive emails
400Catch-all validation failed
401Catch-all validation timed out
Response
{
  "domain": "icloud.com",
  "email": "[email protected]",
  "role": false,
  "mx": true,
  "deliverable": true,
  "catchall": false,
  "provider": "iCloud",
  "disposable": false,
  "privacy": false,
  "paid_service": false,
  "mx_record": {
    "mx01.mail.icloud.com": 10,
    "mx02.mail.icloud.com": 10
  },
  "spf_record": [
    "17.41.0.0/16",
    "17.58.0.0/16",
    "2a01:b747:3005:200::/56",
    "2a01:b747:3006:200::/56"
  ],
  "mx_ip": [
    "17.57.152.5",
    "17.42.251.62",
    "17.57.155.25"
  ],
  "mx_reverse": {
    "mx01.mail.icloud.com": "17.57.155.25",
    "mx02.mail.icloud.com": "17.42.251.62"
  }
}

Query Parameters

Use query parameters to include additional data. All parameters are optional flags (no value needed).

ParameterDescription
paidWhether the domain or email is utilizing a paid email service.
mx_ipInclude resolved IP addresses for all MX hostnames.
mx_reverseInclude mapping of each MX hostname to its IPs.
spfInclude SPF record data (authorized sending IPs).
relatedInclude related domains from same disposable provider. Only works when disposable: true.
mail_statusHuman-readable mail delivery result. Set to false to hide.
server_statusHuman-readable server connection result. Set to false to hide.
error_codeNumeric error code for email delivery verification result. Set to false to hide.

Example with all parameters

Example
https://api.nodedata.io/v1/email/[email protected]?key=API_KEY&paid&mx_ip&spf&mx_reverse&related

Full Email Intelligence

GET

Comprehensive email analysis including deliverability, provider detection, MX records, SPF records, and more.

Endpoint
https://api.nodedata.io/v1/email/{input}?key=API_KEY
Example
https://api.nodedata.io/v1/email/gmail.com?key=API_KEY
{
  "domain": "gmail.com",
  "mx": true,
  "provider": "Gmail",
  "disposable": false,
  "privacy": false,
  "mx_record": {
    "gmail-smtp-in.l.google.com": 5,
    "alt1.gmail-smtp-in.l.google.com": 10,
    "alt2.gmail-smtp-in.l.google.com": 20,
    "alt3.gmail-smtp-in.l.google.com": 30,
    "alt4.gmail-smtp-in.l.google.com": 40
  }
}

Endpoint

https://api.nodedata.io/v1/email/{input}?key=API_KEY
Response
{
  "domain": "gmail.com",
  "email": "[email protected]",
  "role": false,
  "mx": true,
  "deliverable": false,
  "catchall": false,
  "provider": "Gmail",
  "disposable": false,
  "privacy": false,
  "mx_record": {
    "gmail-smtp-in.l.google.com": 5,
    "alt1.gmail-smtp-in.l.google.com": 10
  },
  "mail_status": "Recipient does not exist."
}

Disposable Email Check

GET

Quickly determine if a domain is a disposable/temporary email service. Ideal for preventing signups from throwaway addresses.

Endpoint
https://api.nodedata.io/v1/disposable/{domain}?key=API_KEY
Example
https://api.nodedata.io/v1/disposable/tempmail.com?key=API_KEY
{
  "tempmail.com": true
}
Example
https://api.nodedata.io/v1/disposable/gmail.com?key=API_KEY
{
  "gmail.com": false
}

Endpoint

https://api.nodedata.io/v1/disposable/{domain}?key=API_KEY
Response
{
  "tempmail.com": true
}