API Documentation
Check email domain blacklists, DNS authentication records, and deliverability scores programmatically. No API key required for public checks.
Base URL
https://ismyemailblacklisted.comRate Limits
The public API is rate-limited to 3 requests per minute per IP address. For higher limits and additional features (SMTP checks, 60+ blacklists), upgrade to a paid plan.
Endpoints
/api/check-publicCheck a domain's email deliverability — blacklists, SPF, DKIM, DMARC, and MX records. Returns a score from 0–100.
Request Body
{
"domain": "example.com"
}| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | The domain to check (e.g., "example.com"). URLs and subdomains are accepted — the API strips protocols and paths automatically. |
Response 200 OK
{
"domain": "example.com",
"score": 85,
"summary": {
"blacklists": {
"checked": 30,
"listed": 0,
"listedOn": [],
"ip": "93.184.216.34"
},
"spf": {
"found": true,
"valid": true,
"record": "v=spf1 -all",
"issues": [],
"mechanisms": ["-all"],
"lookupCount": 0
},
"dkim": {
"found": true,
"valid": true,
"record": "v=DKIM1; k=rsa; p=MIG...",
"issues": [],
"selectors": ["default", "google"]
},
"dmarc": {
"found": true,
"valid": true,
"record": "v=DMARC1; p=reject; rua=mailto:...",
"policy": "reject",
"issues": [],
"tags": { "p": "reject", "rua": "mailto:..." }
},
"mx": {
"found": true,
"records": [
{ "priority": 10, "exchange": "mail.example.com" }
],
"issues": []
}
}
}Response Fields
scoreOverall deliverability score (0–100). 90+ is excellent, 70–89 is good, below 70 needs attention.summary.blacklistsResults from all 60 public DNSBLs — same coverage on free and paid plans.summary.spfSPF record validation including mechanisms and DNS lookup count.summary.dkimDKIM record check across common selectors (default, google, selector1, etc.).summary.dmarcDMARC policy and tag parsing. Policy values: none, quarantine, reject.summary.mxMX records sorted by priority.Error Responses
Examples
cURL
curl -X POST https://ismyemailblacklisted.com/api/check-public \
-H "Content-Type: application/json" \
-d '{"domain": "example.com"}'JavaScript (fetch)
const response = await fetch(
"https://ismyemailblacklisted.com/api/check-public",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ domain: "example.com" }),
}
);
const data = await response.json();
console.log(`Score: ${data.score}/100`);
console.log(`Blacklisted on: ${data.summary.blacklists.listed} lists`);Python (requests)
import requests
resp = requests.post(
"https://ismyemailblacklisted.com/api/check-public",
json={"domain": "example.com"}
)
data = resp.json()
print(f"Score: {data['score']}/100")
print(f"SPF: {'✓' if data['summary']['spf']['valid'] else '✗'}")
print(f"DMARC policy: {data['summary']['dmarc']['policy']}")Need More? Upgrade for Full API Access
Paid plans unlock additional API capabilities through the authenticated dashboard:
- ✓SMTP connectivity checks — verify mail server responsiveness
- ✓Automated monitoring — scheduled checks every 15 minutes
- ✓Alerts — get notified via email, Slack, or webhook when issues arise
- ✓Historical data — track deliverability score trends over time
FAQ
Do I need an API key?
No. The public check endpoint requires no authentication. Just send a POST request with a domain.
What blacklists do you check?
The free API checks all 60 major DNSBLs including Spamhaus, Barracuda, and SpamCop. Paid plans check all 60 blacklists including enterprise and regional lists.
How is the score calculated?
The 0–100 score is based on blacklist status, SPF/DKIM/DMARC configuration, and MX record health. Each category contributes to the overall score with blacklist status having the highest weight.
Can I use this in production?
The free tier is rate-limited to 3 requests/minute. For production workloads, sign up for a paid plan to get higher limits and automated monitoring.