Skip to content
View Markdown

Single Email Check

Validates a single email address. Checks format, DNS/MX records, and whether the domain is a known disposable email provider.

GET request

GET/api/email/{email}
bash
curl https://disify.com/api/email/[email protected]

You can append premium feature suffixes to the path, e.g. /api/email/{email}/spf/dkim.

POST request

POST/api/email

Send the email address as a form parameter:

bash
curl -X POST https://disify.com/api/email \
     --data-urlencode "[email protected]"
python
import requests

response = requests.post("https://disify.com/api/email", data={
    "email": "[email protected]"
})
print(response.json())
javascript
const response = await fetch("https://disify.com/api/email", {
  method: "POST",
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
  body: new URLSearchParams({ email: "[email protected]" })
});
const data = await response.json();
php
$ch = curl_init("https://disify.com/api/email");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['email' => '[email protected]']));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);

These snippets illustrate request encoding. Use the Quick Start for HTTP status, timeout, and response checks before making a validation decision. Form encoding must preserve literal + characters in addresses.

POST parameters

ParameterTypeDescription
emailstringThe email address to validate

Responses

Disposable detected

json
{
  "format": true,
  "domain": "disposable-inbox.test",
  "disposable": true,
  "dns": false,
  "confidence": 100,
  "signals": ["keyword_match", "no_mx_records"],
  "domain_info": { "tld": "test", "is_subdomain": false, "parent_domain": null },
  "role": false,
  "free": false
}

The verdict comes from the signals, not DNS. This example domain has no mail servers, so dns is false and mx_info is omitted — the keyword_match signal alone flags it. An absent whitelist means false.

Non-disposable email

json
{
  "format": true,
  "domain": "gmail.com",
  "disposable": false,
  "dns": true,
  "whitelist": true,
  "confidence": 0,
  "domain_info": { "tld": "com", "is_subdomain": false, "parent_domain": null },
  "mx_info": [
    "gmail-smtp-in.l.google.com",
    "alt1.gmail-smtp-in.l.google.com",
    "alt2.gmail-smtp-in.l.google.com",
    "alt3.gmail-smtp-in.l.google.com",
    "alt4.gmail-smtp-in.l.google.com"
  ],
  "role": false,
  "free": true
}

See Response Fields for every field, and Detection Signals for the signals array.

Free disposable email detection API · Terms · Privacy