Appearance
Privacy forwarding
Permanent privacy aliases such as DuckDuckGo Email Protection are not disposable mailboxes. Forwarding detection does not change their disposable verdict or confidence score. Plus-addressing alone is not forwarding evidence.
Paid plans include forwarding and blocked on valid-format single checks automatically. Bulk checks use the same classification and policy. The default allows privacy relays. Free and anonymous checks include disposable detection, without forwarding metadata or relay controls.
Configure your integrations
- Settings → Validation: set the account default.
- API Keys: open a key's Settings to inherit the account default, allow relays, or reject them.
- Playground: try a setting without changing saved defaults.
Precedence: request option → key override → account default → allow. Keys inherit unless explicitly changed. A downgrade suspends paid settings; saved preferences remain for a later upgrade.
Request override
Send block_privacy_relays with a single or bulk email/domain request:
| Value | Behavior |
|---|---|
| Omitted | Use saved defaults. |
true or 1 | Reject known privacy relays. |
false or 0 | Allow privacy relays; detection stays on. |
Use a query parameter, JSON boolean, or form field. Invalid values return 422; an explicit option without paid access returns 403. An unavailable rejection policy is never silently ignored.
bash
curl --fail-with-body --max-time 10 \
-H "X-Api-Key: $DISIFY_API_KEY" \
https://disify.com/api/email \
--data-urlencode 'email=example@duck.com' \
--data-urlencode 'block_privacy_relays=true'Keep API keys on your backend. See Quick Start for complete timeout and HTTP error handling.
A completed single check returns HTTP 200, including when blocked: true. Your integration must enforce that decision.
Interpret the result
Illustrative partial response with relay rejection enabled:
json
{
"format": true,
"domain": "duck.com",
"disposable": false,
"forwarding": {
"detected": true,
"type": "privacy_alias",
"provider": "duckduckgo",
"matched_by": "domain"
},
"blocked": true
}forwarding.detected is true for a known match, false for no known match, or null when detection is inconclusive. The other forwarding fields identify the provider and match method; see Response Fields.
| Input and setting | disposable | forwarding.detected | blocked |
|---|---|---|---|
| Known permanent relay, allowed | false | true | false |
| Known permanent relay, rejected | false | true | true |
| No disposable evidence; relay check inconclusive, rejection enabled | false | null | null |
| Disposable evidence, any relay setting | true | Depends on the forwarding check | true |
Check HTTP status, format, and dns alongside blocked. When enforcing relay rejection, require blocked === false; missing or null is not an allow decision. A positive disposable result still blocks if forwarding is inconclusive.
A negative forwarding result means no known match, not proof that the address never forwards. These checks do not establish mailbox existence, deliverability, or the destination behind an alias.
Provider coverage
| Provider ID | Reviewed address domains | Dedicated MX detection for custom domains |
|---|---|---|
duckduckgo | duck.com | No |
simplelogin | simplelogin.com, slmail.me, aleeas.com and its subdomains | mx1.simplelogin.co, mx2.simplelogin.co |
proton_pass | passmail.net | Custom domains on SimpleLogin infrastructure report simplelogin |
addy | anonaddy.com, anonaddy.me and their subdomains | mail.anonaddy.me, mail2.anonaddy.me |
firefox_relay | mozmail.com and its subdomains; relay.firefox.com | No; shared mail infrastructure is insufficient evidence |
apple | privaterelay.appleid.com | No |
thirty_three_mail (33mail) | Customer subdomains of 33mail.com; excludes the root | domains.33mail.com, smtpv2.ec2.33mail.com |
manyme (ManyMe) | manyme.com | No |
cloaked (Cloaked) | cloak.id | No |
paced_email (Paced Email) | daily.paced.email, weekly.paced.email, monthly.paced.email | No |
alias_email (Alias Email) | bumpmail.io | No |
Subdomains are matched only where listed. Custom-domain MX detection requires all returned MX hosts to belong to the same reviewed provider. A custom domain can still have independent disposable evidence; forwarding MX does not erase that evidence.
Masked addresses can share icloud.com and Fastmail domains with ordinary addresses. These domains, general business forwarding, and shared mail infrastructure alone are not privacy-alias evidence.
The classification follows provider documentation: DuckDuckGo alias lifetime, SimpleLogin's distinction from disposable mail, Proton aliases, addy.io custom domains, Firefox Relay, and Apple private relay.
Bulk and analytics
Bulk jobs keep the settings and paid access captured at submission, even if the account or key changes later. Valid-result lists exclude relay rejections and inconclusive policy results.
Analytics reports recorded paid forwarding checks separately from disposable detections. The two classifications can overlap on custom domains.