Appearance
Premium Features
Premium checks add DNS configuration, domain-age, and reputation signals. They are available on Pro; see Authentication and pricing.
Requesting features
For a single email or domain check, send comma-separated names in features. Keep the API key on the backend. Form-encoded POST is recommended; query parameters and GET path suffixes are also supported.
bash
curl --fail-with-body --max-time 10 \
-H "X-Api-Key: $DISIFY_API_KEY" \
https://disify.com/api/email \
--data-urlencode '[email protected]' \
--data-urlencode 'features=spf,dkim,dmarc'bash
curl --fail-with-body --max-time 10 -H "X-Api-Key: $DISIFY_API_KEY" \
"https://disify.com/api/email/[email protected]?features=spf,dkim,dmarc"Set DISIFY_API_KEY in your server environment before running these examples. The features parameter is ignored for bulk requests; automatic tier features such as spam-trap detection still run.
Available features
| Feature | Response key | Meaning |
|---|---|---|
spf | email_auth.spf | Summary of the SPF record's all policy: pass, neutral, softfail, hardfail, or none. |
dkim | email_auth.dkim_configured | Whether DKIM records were found at the selectors DISIFY probes. |
dmarc | email_auth.dmarc | Published DMARC policy and record. |
domain_age | domain_age | Registration date, age in days, and whether the domain is fresh. |
inbox_provider | inbox_provider | Provider inferred from MX records and available SPF data. |
deliverability | deliverability_score | A 0–100 score based on the available authentication, MX, and domain-age fields. |
spam_trap is included automatically on Pro. It reports known trap-domain or address-pattern matches; is_trap: false does not prove an address is safe to contact.
Interpreting premium results
These checks inspect domain configuration, not a sent message. SPF hardfail describes a restrictive record policy, not a failed API request. dkim_configured: false means no record was found at the probed selectors; other selectors may exist.
The deliverability score is not a delivery probability or mailbox-existence check. To include all supported scoring inputs, request spf,dkim,dmarc,domain_age,deliverability together. A fresh domain adds the fresh_domain signal and can change the final disposable verdict; domain_age.fresh reports its freshness.
Pro response example
Illustrative premium fields for a domain with usable MX records. Core fields are omitted here; actual records and age vary by domain.
json
{
"spam_trap": {
"is_trap": false,
"type": null,
"reason": null
},
"email_auth": {
"spf": "softfail",
"spf_record": "v=spf1 include:_spf.google.com ~all",
"dmarc": {
"policy": "reject",
"record": "v=DMARC1; p=reject; sp=quarantine; pct=100; rua=mailto:[email protected]",
"subdomain_policy": "quarantine",
"pct": 100,
"rua": "mailto:[email protected]"
},
"dkim_configured": true,
"dkim_selectors_found": ["google", "selector1"]
},
"domain_age": {
"registered": "2015-06-01",
"age_days": 3848,
"fresh": false
},
"inbox_provider": "Google Workspace",
"deliverability_score": 95
}Missing or unavailable features
Check HTTP status first. A successful core response can contain:
requires_upgrade— the requested feature is not included in your plan.unsupported_features—smtporcatch_all, which are not offered on any plan.temporarily_unavailable_features— a requested check could not finish; retry later.
Domain age and inbox provider can also be omitted when no result is available. A missing field is not a successful negative check. Example of denied features, with other fields omitted:
json
{
"requires_upgrade": ["spf", "dkim"],
"upgrade_url": "https://disify.com/pricing",
"upgrade_message": "These features require a paid plan. See https://disify.com/pricing"
}See Response Fields for the complete field reference.