Email Blacklist API
Check if a domain or IP is listed on email blacklists. Use this reference to choose an operation and integrate its documented response contract.
Operations
GET /v1/email/check
GET
/v1/email/check
Query Parameters
| Parameter | Type | required |
|---|---|---|
| string | required | |
| checks | string | optional |
Response Fields
| Field | Type |
|---|---|
email |
string |
domain |
string |
local_part |
string |
valid_syntax |
boolean |
checks |
object |
checks.disposable |
object |
checks.disposable.is_disposable |
boolean |
checks.disposable.confidence |
string | null |
checks.role |
object |
checks.role.is_role |
boolean |
checks.role.role_type |
string | null |
checks.free |
object |
checks.free.is_free |
boolean |
checks.free.provider |
string | null |
checks.mx |
object |
checks.mx.has_mx |
boolean |
checks.mx.records[] |
string[] |
checks.dnsbl |
object |
checks.dnsbl.listed |
boolean |
checks.dnsbl.threat_level |
string |
risk_score |
integer |
risk_level |
string |
flags[] |
string[] |
checked_at |
string |
Example Request
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/email/check?email=user%40example.com&checks=disposable%2Crole%2Cfree%2Cmx%2Cdnsbl"
Example Response
{
"email": "[email protected]",
"domain": "tempmail.org",
"local_part": "user",
"valid_syntax": true,
"checks": {
"disposable": {
"is_disposable": true,
"confidence": "high"
},
"role": {
"is_role": false,
"role_type": "string"
},
"free": {
"is_free": false,
"provider": "string"
},
"mx": {
"has_mx": true,
"records": [
"mx1.tempmail.org"
]
},
"dnsbl": {
"listed": false,
"threat_level": "none"
}
},
"risk_score": 80,
"risk_level": "high",
"flags": [
"DISPOSABLE_DOMAIN"
],
"checked_at": "2026-04-15T12:00:00Z"
}
POST /v1/email/check/bulk
POST
/v1/email/check/bulk
Body Parameters
| Parameter | Type | required |
|---|---|---|
| emails | string[] | required |
| checks |
string[]
Allowed values
disposablerolefreemxdnsbl
|
optional |
Response Fields
| Field | Type |
|---|---|
results[] |
object[] |
results[] |
object |
summary |
object |
summary.total |
integer |
summary.disposable |
integer |
summary.role_based |
integer |
summary.free_provider |
integer |
summary.no_mx |
integer |
summary.dnsbl_listed |
integer |
summary.high_risk |
integer |
summary.medium_risk |
integer |
summary.low_risk |
integer |
checked_at |
string |
Example Request
curl -X POST "https://domscan.net/v1/email/check/bulk" \
-H "Content-Type: application/json" \
-H "X-API-Key: $DOMSCAN_API_KEY" \
-d '{
"emails": [
"[email protected]",
"[email protected]"
],
"checks": [
"disposable",
"role",
"free"
]
}'
Example Response
{
"results": [
{}
],
"summary": {
"total": 10,
"disposable": 3,
"role_based": 1,
"free_provider": 2,
"no_mx": 0,
"dnsbl_listed": 0,
"high_risk": 3,
"medium_risk": 1,
"low_risk": 6
},
"checked_at": "2026-04-15T12:00:00Z"
}
GET /v1/email/blacklist
GET
/v1/email/blacklist
Query Parameters
| Parameter | Type | required |
|---|---|---|
| limit |
integer
Default
1000
|
optional |
| offset |
integer
Default
0
|
optional |
| format |
string
Allowed values
jsontxt
Default
json
|
optional |
Response Fields
| Field | Type |
|---|---|
domains[] |
string[] |
total |
integer |
offset |
integer |
limit |
integer |
metadata |
object |
metadata.last_updated |
string |
metadata.total_domains |
integer |
metadata.high_confidence_count |
integer |
metadata.wildcard_count |
integer |
metadata.sources[] |
string[] |
metadata.source_count |
integer |
metadata.successful_source_count |
integer |
metadata.failed_source_count |
integer |
metadata.refresh_cadence_hours |
integer |
metadata.refresh_status |
string |
metadata.next_refresh_due |
string |
metadata.dataset_status |
string |
metadata.quality_policy_version |
integer | null |
metadata.quarantined_domain_count |
integer |
metadata.rejected_domain_count |
integer |
Example Request
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/email/blacklist?limit=25&offset=0&format=example.com"
Example Response
{
"domains": [
"10minutemail.com",
"guerrillamail.com"
],
"total": 198362,
"offset": 0,
"limit": 1000,
"metadata": {
"last_updated": "2026-04-15T12:00:00Z",
"total_domains": "example.com",
"high_confidence_count": 1,
"wildcard_count": 1,
"sources": [
"string"
],
"source_count": 1,
"successful_source_count": 1,
"failed_source_count": 1,
"refresh_cadence_hours": 24,
"refresh_status": "fresh",
"next_refresh_due": "2026-04-15T12:00:00Z",
"dataset_status": "complete",
"quality_policy_version": 1,
"quarantined_domain_count": "example.com",
"rejected_domain_count": "example.com"
}
}
GET /v1/email/blacklist/download
GET
/v1/email/blacklist/download
Query Parameters
| Parameter | Type | required |
|---|---|---|
| format |
string
Allowed values
jsontxt
Default
json
|
optional |
Response Fields
| Field | Type |
|---|---|
domains[] |
string[] |
wildcards[] |
string[] |
metadata |
object |
Example Request
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/email/blacklist/download?format=example.com"
Example Response
{
"domains": [
"example.com"
],
"wildcards": [
"string"
],
"metadata": {}
}