Recherche groupée

Classez jusqu'à 100 adresses IPv4 en une seule opération. Destiné aux pipelines de lutte contre la fraude, de gestion des risques et de modération de contenu traitant des pics de trafic.

API endpoint

PUBLICATION https://vpn-proxy-detection.whoisxmlapi.com/api/v1/ip/batch

L'API attend que les paramètres soient encodés au format JSON dans le corps de chaque requête.

Exemple de requête CURL

curl https://vpn-proxy-detection.whoisxmlapi.com/api/v1/ip/batch -X POST -H "Content-Type: application/json" -d '{"apiKey": "YOUR_API_KEY", "ips": ["8.8.8.8", "1.1.1.1", "185.220.101.1"]}'

Exemple de corps de requête POST

{
    "apiKey": "YOUR_API_KEY",
    "ips": [
        "8.8.8.8",
        "1.1.1.1",
        "185.220.101.1"
    ],
    "min_confidence": 0.5
}

L'activation de votre compte peut prendre jusqu'à une minute après votre inscription.

Paramètres d'entrée

apiKey

Obligatoire. Récupérez votre clé API personnelle sur la page « Mes produits ».

ips

Obligatoire. Tableau de chaînes de caractères.

Liste des adresses IPv4 à classer. 100 entrées maximum par requête.

min_confidence

Facultatif. Flottant.

Seules les attributions dont le niveau de confiance du signal est supérieur ou égal à cette valeur sont renvoyées.

Valeurs autorisées : [0, 1].

Valeur par défaut : 0.

Exemple de résultat

{
    "results": [
        {
            "ip": "1.1.1.1",
            "network": "1.1.1.0\/24",
            "classification": "cdn",
            "provider": "Cloudflare",
            "confidence": 0.97,
            "source": "asn_classification",
            "detection_method": "asn_classification",
            "first_seen": "2024-01-15T08:30:00Z",
            "last_seen": "2026-05-20T11:04:00Z",
            "observation_count": 412,
            "hits_days_pct": null,
            "providers_num": 0,
            "confidence_decay": 0.0,
            "freshness_class": "current",
            "is_vpn": false,
            "is_proxy": false,
            "is_tor": false,
            "is_relay": false,
            "is_hosting": false,
            "is_cdn": true,
            "is_residential_proxy": false,
            "is_residential_proxy_high_confidence": false,
            "is_residential_proxy_mobile": false,
            "is_open_proxy": false,
            "is_corporate_vpn": false,
            "risk_score": 97,
            "asn": 13335,
            "asn_org": "CLOUDFLARENET",
            "cdn_operator": "cloudflare",
            "asn_abuse": {
                "abuse_score": 4,
                "abuse_level": "low"
            },
            "metadata": {
                "raw_score": 97,
                "signals": null,
                "dns_enrichment": null,
                "tls_enrichment": null
            },
            "observed_location": null
        },
        {
            "ip": "185.220.101.1",
            "network": "185.220.101.0\/24",
            "classification": "tor",
            "provider": null,
            "confidence": 1.0,
            "source": "port_scan",
            "detection_method": "port_scan",
            "first_seen": "2024-01-15T08:30:00Z",
            "last_seen": "2026-05-21T08:59:09Z",
            "observation_count": 127,
            "hits_days_pct": 47.78,
            "providers_num": 0,
            "confidence_decay": 0.6650,
            "freshness_class": "current",
            "is_vpn": false,
            "is_proxy": false,
            "is_tor": true,
            "is_relay": false,
            "is_hosting": false,
            "is_cdn": false,
            "is_residential_proxy": false,
            "is_residential_proxy_high_confidence": false,
            "is_residential_proxy_mobile": false,
            "is_open_proxy": false,
            "is_corporate_vpn": false,
            "risk_score": 100,
            "asn": 60729,
            "asn_org": "ZWIEBELFREUNDE",
            "cdn_operator": null,
            "asn_abuse": {
                "abuse_score": 88,
                "abuse_level": "high"
            },
            "metadata": {
                "raw_score": 100,
                "signals": { "open_ports": [9001, 9030] },
                "dns_enrichment": null,
                "tls_enrichment": null
            },
            "observed_location": null
        }
    ],
    "count": 2
}

Code: 200 OK.

Paramètres de sortie

results

Tableau. Un objet de classification par adresse IP d'entrée, dans le même ordre que la requête.

Chaque élément a la même structure que la réponse « single-IP ». Consultez la section « Envoi de requêtes » pour obtenir des descriptions champ par champ.

count

Entier. Nombre de classifications renvoyées. Correspond à la longueur du tableau ips d'entrée en cas de réussite.

Accès gratuit

Une fois votre inscription effectuée, vous bénéficiez automatiquement d'un abonnement gratuit limité à 10 requêtes.

Limites d'utilisation et régulation des requêtes

Le nombre maximal de requêtes par seconde est de 30. Si cette limite est dépassée, vos requêtes suivantes seront rejetées jusqu'à la seconde suivante.

Cette API est également disponible avec un équilibreur de charge dédié et un point de terminaison premium afin de permettre des requêtes plus rapides dans le cadre de nos services API Premium et de nos offres API Entreprise.