Dokumentacja dla deweloperów
Czarna lista e-mail
Kompleksowe API walidacji poczty wykrywające jednorazowe i tymczasowe adresy, adresy funkcyjne, bezpłatnych dostawców oraz reputację domeny. Baza zawiera ponad 80 000 jednorazowych domen z oceną pewności.
Czarna lista e-mail
Kompleksowe API walidacji poczty wykrywające jednorazowe i tymczasowe adresy, adresy funkcyjne, bezpłatnych dostawców oraz reputację domeny. Baza zawiera ponad 80 000 jednorazowych domen z oceną pewności.
GET
/v1/email/check
Parametry zapytania
| Parametr | Typ | Opis |
|---|---|---|
| email wymagane | string | Adres e-mail do sprawdzenia, np. "[email protected]" |
| checks opcjonalne | string | Kontrole oddzielone przecinkami: disposable, role, free, mx, dnsbl. Domyślnie: wszystkie |
Dostępne kontrole
| Sprawdź | Opis | Punkty ryzyka |
|---|---|---|
disposable | Sprawdza domenę względem bazy ponad 80 tys. jednorazowych domen | +80 |
role | Wykrywa adresy funkcyjne (admin@, support@ itp.) | +20 |
free | Rozpoznaje bezpłatnych dostawców poczty (gmail, yahoo itp.) | +10 |
mx | Sprawdza, czy dla domeny istnieją rekordy MX | +50 (jeśli brak) |
dnsbl | Sprawdza domenę na czarnych listach DNS (Spamhaus itp.) | +15-60 |
Poziomy ryzyka
- Niskie (0-39):: Bezpieczne do zaakceptowania
- Średnie (40-69):: Zalecany przegląd
- Wysokie (70-100):: Prawdopodobnie oszukańcze lub tymczasowe
Przykład Request
# Full check (all validations)
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/email/[email protected]"
# Quick disposable check only
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/email/[email protected]&checks=disposable"
import requests
domscan = requests.Session()
domscan.headers.update({"X-API-Key": "your-api-key"})
response = domscan.get(
"https://domscan.net/v1/email/check",
params={"email": "[email protected]"}
)
data = response.json()
if data['risk_level'] == 'high':
print(f"Reject: {data['flags']}")
elif data['checks']['disposable']['is_disposable']:
print("Disposable email detected")
Example Odpowiedź
{
"email": "[email protected]",
"domain": "tempmail.com",
"local_part": "user",
"valid_syntax": true,
"checks": {
"disposable": {
"is_disposable": true,
"confidence": "high"
},
"role": {
"is_role": false,
"role_type": null
},
"free": {
"is_free": false,
"provider": null
},
"mx": {
"has_mx": true,
"records": ["mx.tempmail.com"]
},
"dnsbl": {
"listed": false,
"threat_level": "none"
}
},
"risk_score": 80,
"risk_level": "high",
"flags": ["DISPOSABLE_DOMAIN"],
"checked_at": "2025-01-15T12:00:00Z"
}
Odpowiedź Fields
| Pole | Typ |
|---|---|
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 |
POST
/v1/email/check/bulk
Treść żądania
| Parametr | Typ | Opis |
|---|---|---|
| emails wymagane | string[] | Tablica adresów e-mail do sprawdzenia (maksymalnie 100 w jednym żądaniu) |
| checks opcjonalne | string[] | Kontrole do wykonania: ["disposable", "role", "free", "mx", "dnsbl"] |
Przypadki użycia
- Czyść listy adresów e-mail przed kampaniami marketingowymi
- Weryfikuj rejestracje użytkowników w czasie rzeczywistym
- Oceniaj potencjalnych klientów na podstawie jakości adresu e-mail
- Wykrywaj wzorce oszustw przy rejestracji
Przykład Request
curl -H "X-API-Key: your-api-key" -X POST "https://domscan.net/v1/email/check/bulk" \
-H "Content-Type: application/json" \
-d '{
"emails": [
"[email protected]",
"[email protected]",
"[email protected]"
],
"checks": ["disposable", "role"]
}'
Example Odpowiedź
{
"results": [
{
"email": "[email protected]",
"risk_level": "low",
"risk_score": 10,
"flags": ["FREE_PROVIDER"]
},
{
"email": "[email protected]",
"risk_level": "high",
"risk_score": 80,
"flags": ["DISPOSABLE_DOMAIN"]
},
{
"email": "[email protected]",
"risk_level": "medium",
"risk_score": 20,
"flags": ["ROLE_ADDRESS"]
}
],
"summary": {
"total": 3,
"disposable": 1,
"role_based": 1,
"free_provider": 1,
"high_risk": 1,
"medium_risk": 1,
"low_risk": 1
},
"checked_at": "2025-01-15T12:00:00Z"
}
Odpowiedź Fields
| Pole | Typ |
|---|---|
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 |
GET
/v1/email/blacklist
Parametry zapytania
| Parametr | Typ | Opis |
|---|---|---|
| limit opcjonalne | number | Liczba domen do zwrócenia (domyślnie: 1000, maksymalnie: 10000) |
| offset opcjonalne | number | Przesunięcie paginacji (domyślnie: 0) |
| format opcjonalne | string | json (domyślnie) lub txt dla listy zwykłego tekstu |
Opis
Pobierz naszą czarną listę jednorazowych domen e-mail. Jest bezpłatna dla wszystkich użytkowników. Użyj /v1/email/blacklist/download, aby pobrać pełną listę jako plik.
Przykład Request
# Get first 1000 domains as JSON
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/email/blacklist"
# Get as plain text for firewall rules
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/email/blacklist?format=txt&limit=5000"
# Download complete blacklist
curl -H "X-API-Key: your-api-key" "https://domscan.net/v1/email/blacklist/download" -o disposable.json
Example Odpowiedź
{
"domains": [
"tempmail.com",
"guerrillamail.com",
"10minutemail.com",
"mailinator.com",
"..."
],
"total": 85432,
"offset": 0,
"limit": 1000,
"metadata": {
"last_updated": "2025-01-15T00:00:00Z",
"total_domains": 85432,
"high_confidence_count": 12500,
"wildcard_count": 234,
"sources": [
"disposable-email-domains",
"ivolo/disposable-email-domains"
]
}
}
Odpowiedź Fields
| Pole | Typ |
|---|---|
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 |
GET
/v1/email/blacklist/download
Parametry zapytania
| Parametr | Typ | wymagane |
|---|---|---|
| format |
string
Dozwolone wartości
jsontxt
Domyślnie
json
|
opcjonalne |
Odpowiedź Fields
| Pole | Typ |
|---|---|
domains[] |
string[] |
wildcards[] |
string[] |
metadata |
object |
Przykład Request
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/email/blacklist/download?format=example.com"
Example Odpowiedź
{
"domains": [
"example.com"
],
"wildcards": [
"string"
],
"metadata": {}
}