Appearance
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
| Parameter | Type | Description |
|---|---|---|
email | string | The 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.