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ètreTypeDescription
targetstringRequisAdresse IPv4, IPv6 ou nom de domaine à vérifier.
show_urlsbooleanOptionnelSi 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

ChampTypeDescription
targetstringLa cible analysée.
is_ipbooleantrue si la cible est une adresse IP, false si c'est un domaine.
sectionsarrayListe des sections de résultats (voir ci-dessous).
elapsed_msintegerDurée de l'analyse en millisecondes (absent si résultat en cache).
cachedbooleantrue si le résultat provient du cache Redis.
cached_atintegerTimestamp Unix de la dernière analyse réelle.
cache_ttlintegerSecondes restantes avant expiration du cache.
Champs d'un élément results[]
ChampTypeDescription
namestringNom de la blacklist.
listedbooleantrue si la cible est inscrite dans cette blacklist.
reasonstringMotif du listing (vide si non listé).
severityinteger 0–5Sévérité de la blacklist : 5 = critique, 0 = whitelist.
typestringCatégorie : spam, exploit, policy, bogon, reputation
response_timeintegerTemps de réponse DNS en millisecondes.
errorstring"" si OK, TIMEOUT, NO_NAMESERVER ou autre erreur DNS.
lookup_urlstringURL 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 HTTPCasChamp error
200Succès
400Paramètre manquant ou cible invalide"Paramètre \"target\" manquant." / "Cible invalide."
405Méthode HTTP autre que GET ou POST"Méthode non autorisée. Utilisez GET ou POST."
500Erreur interne (script Python, décodage JSON)"Erreur lors de l'analyse des résultats."
504Délai d'analyse dépassé (30 s)"Timeout dépassé (30s)."