Présentation
L'API Blacklist Checker permet de vérifier si une adresse IP ou un domaine apparaît dans des listes noires DNS (DNSBL/RBL). Pour un domaine, l'API vérifie également les enregistrements MX et les IPs associées.
Gratuit et sans authentification
Résultats mis en cache 60 min
Timeout : 30 s
Endpoint
POST
https://www.blackcheck.eu/api/check-dnsbl
GET
https://www.blackcheck.eu/api/check-dnsbl?target=ip_or_domain
CORS activé — l'API est appelable depuis n'importe quel domaine.
Requête
En POST : Content-Type: application/json, paramètres dans le corps JSON.
En GET : paramètres dans la query string (ex. ?target=8.8.8.8&show_urls=true).
| Paramètre | Type | Description | |
|---|---|---|---|
| target | string | Requis | Adresse IPv4, IPv6 ou nom de domaine à vérifier. |
| show_urls | boolean | Optionnel | Si true, inclut les URLs de délistage dans chaque résultat. Défaut : false. |
Exemples de requête
# GET — Vérifier une IP (query string)
curl "https://www.blackcheck.eu/api/check-dnsbl?target=203.0.113.42"
# GET — Vérifier un domaine avec liens de délistage
curl "https://www.blackcheck.eu/api/check-dnsbl?target=example.com&show_urls=true"
# POST — Vérifier une IP
curl -X POST https://www.blackcheck.eu/api/check-dnsbl \
-H "Content-Type: application/json" \
-d '{"target": "203.0.113.42"}'
# POST — Vérifier un domaine avec liens de délistage
curl -X POST https://www.blackcheck.eu/api/check-dnsbl \
-H "Content-Type: application/json" \
-d '{"target": "example.com", "show_urls": true}'
import requests
response = requests.post(
"https://www.blackcheck.eu/api/check-dnsbl",
json={"target": "203.0.113.42", "show_urls": True}
)
data = response.json()
print(f"Listé dans {data['sections'][0]['data']['listed_count']} blacklists")
const response = await fetch("https://www.blackcheck.eu/api/check-dnsbl", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ target: "203.0.113.42", show_urls: true })
});
const data = await response.json();
console.log(data);
$response = file_get_contents("https://www.blackcheck.eu/api/check-dnsbl", false,
stream_context_create([
"http" => [
"method" => "POST",
"header" => "Content-Type: application/json",
"content" => json_encode(["target" => "203.0.113.42"])
]
])
);
$data = json_decode($response, true);
Structure de la réponse
| Champ | Type | Description |
|---|---|---|
| target | string | La cible analysée. |
| is_ip | boolean | true si la cible est une adresse IP, false si c'est un domaine. |
| sections | array | Liste des sections de résultats (voir ci-dessous). |
| elapsed_ms | integer | Durée de l'analyse en millisecondes (absent si résultat en cache). |
| cached | boolean | true si le résultat provient du cache Redis. |
| cached_at | integer | Timestamp Unix de la dernière analyse réelle. |
| cache_ttl | integer | Secondes restantes avant expiration du cache. |
Champs d'un élément results[]
| Champ | Type | Description |
|---|---|---|
| name | string | Nom de la blacklist. |
| listed | boolean | true si la cible est inscrite dans cette blacklist. |
| reason | string | Motif du listing (vide si non listé). |
| severity | integer 0–5 | Sévérité de la blacklist : 5 = critique, 0 = whitelist. |
| type | string | Catégorie : spam, exploit, policy, bogon, reputation… |
| response_time | integer | Temps de réponse DNS en millisecondes. |
| error | string | "" si OK, TIMEOUT, NO_NAMESERVER ou autre erreur DNS. |
| lookup_url | string | URL de consultation / délistage (si show_urls: true). |
Exemple de réponse
Réponse — IP (200 OK)
{
"target": "203.0.113.42",
"is_ip": true,
"sections": [
{
"title": "IP 203.0.113.42",
"type": "ip",
"data": {
"ip": "203.0.113.42",
"ip_version": "ipv4",
"total_checked": 52,
"listed_count": 1,
"timeout_count": 2,
"results": [
{
"name": "Spamhaus ZEN",
"listed": true,
"reason": "203.0.113.42 was listed (response: 127.0.0.2)",
"severity": 5,
"type": "composite",
"response_time": 18,
"error": "",
"url": "https://www.spamhaus.org/zen/",
"lookup_url": "https://check.spamhaus.org/"
}
]
}
}
],
"elapsed_ms": 4210,
"cached": false,
"cached_at": 1708254000,
"cache_ttl": 3600
}
Codes de retour
| Code HTTP | Cas | Champ error |
|---|---|---|
| 200 | Succès | — |
| 400 | Paramètre manquant ou cible invalide | "Paramètre \"target\" manquant." / "Cible invalide." |
| 405 | Méthode HTTP autre que GET ou POST | "Méthode non autorisée. Utilisez GET ou POST." |
| 500 | Erreur interne (script Python, décodage JSON) | "Erreur lors de l'analyse des résultats." |
| 504 | Délai d'analyse dépassé (30 s) | "Timeout dépassé (30s)." |