Appearance
Response Fields
Successful single email/domain checks return a JSON object. Fields depend on input validity, requested features, and available data.
Core fields
| Field | Type | Description |
|---|---|---|
format | bool | Whether the email has a valid format (syntax check). |
alias | bool | Whether the email contains a + alias (e.g. [email protected]). Only present when true. Plus-aliases on Gmail/Outlook/Hotmail/Live/MSN/iCloud are additionally checked against known temp-mail base accounts — see Plus-Alias Detection. |
domain | string | The extracted domain from the email address. |
disposable | bool | Whether the email or domain is detected as disposable, including individual plus-alias checks in email mode. This is the final verdict. |
dns | bool | Whether usable mail DNS was found. If signals includes dns_indeterminate, a false value is inconclusive and should be retried. |
whitelist | bool | true when the domain is on the trusted-provider whitelist. May be false or omitted; treat an absent value as false. |
role | bool | Whether the email uses a role-based prefix (e.g. info@, support@, admin@). Always false for domain-only checks. |
free | bool | Whether the domain is a known free email provider (e.g. Gmail, Yahoo, Outlook). |
confidence | int | Confidence score (0–100) of the disposable detection. See Confidence Scoring. |
signals | array | Detection and availability signals, which can appear with either disposable verdict. Omitted when empty. See Detection Signals. |
typo_suggestion | string | Typo correction for common domain misspellings (e.g. gmial.com → gmail.com). Only present when a typo is detected. Email mode only. |
domain_info | object | Domain metadata: tld (string), is_subdomain (bool), parent_domain (string | null). |
mx_info | array | The domain's MX hostnames. Omitted when the domain has no MX records, or when it was flagged by a mail-server (MX) blacklist match. |
requires_upgrade | array | Requested premium features your current plan doesn't include. Only present when one or more features are denied. |
upgrade_url | string | Link to the pricing page. Present alongside requires_upgrade. |
upgrade_message | string | Human-readable note explaining the denied features need a paid plan. Present alongside requires_upgrade. |
unsupported_features | array | Requested features that don't exist on any plan yet (smtp, catch_all). Only present when you request one of them. |
unsupported_message | string | Note explaining that unsupported_features aren't available on any plan. Present alongside unsupported_features. |
temporarily_unavailable_features | array | Requested features that could not be calculated temporarily. Core validation still completes; retry these features later. |
Absent fields
Fields like alias, whitelist, signals, and typo_suggestion are only included when relevant; their absence means false or no associated detail. Check HTTP status and format before interpreting the remaining fields. A format: false result may omit other checks, while missing decision fields in a valid-format result are unexpected and must not be treated as a safe address. The auth/age/provider premium fields (email_auth, domain_age, inbox_provider, deliverability_score) depend on your tier, requested features, and available data. A requested field may instead appear in temporarily_unavailable_features; retry it later. spam_trap runs automatically for any tier that includes it, without being requested.
Premium fields
Available on Pro when requested, except spam_trap, which runs automatically. These are domain-configuration and reputation signals, not verification of a sent message. See Premium Features.
| Field | Type | Description |
|---|---|---|
email_auth.spf | string | SPF all-policy summary: pass, neutral, softfail, hardfail, or none. This does not evaluate a sending IP. |
email_auth.spf_record | string | null | The raw SPF record, or null when none is found. |
email_auth.dmarc | object | Always has policy (reject, quarantine, none, or absent when no record) and record (string | null). Adds subdomain_policy, pct, rua, ruf, adkim, aspf only when those tags are present in the record. |
email_auth.dkim_configured | bool | Whether DKIM records were found at the selectors DISIFY probes. Other selectors may exist. |
email_auth.dkim_selectors_found | array | The DKIM selectors discovered. |
domain_age | object | registered (date), age_days (int), fresh (bool). |
inbox_provider | string | Mailbox provider name (e.g. Google Workspace, Microsoft 365). |
deliverability_score | int | Score 0–100 from available authentication, MX, and domain-age inputs. It is not a delivery probability. |
spam_trap | object | is_trap (bool), type (string | null), reason (string | null). Automatically included on Pro. |
Bulk fields
Bulk requests return a different shape — see Bulk Validation.