Pesquisa em lote

Classifique até 100 endereços IPv4 em uma única chamada. Destinado a fluxos de trabalho de combate à fraude, gestão de riscos e moderação de conteúdo que processam picos de tráfego.

Ponto de extremidade da API

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

A API espera que os parâmetros estejam codificados em JSON no corpo de cada solicitação.

Exemplo de solicitação 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"]}'

Exemplo de corpo de solicitação POST

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

A ativação da sua conta após o cadastro pode levar até um minuto.

Parâmetros de entrada

apiKey

Obrigatório. Obtenha sua chave de API pessoal na página “Meus produtos ”.

ips

Obrigatório. Matriz de strings.

Lista de endereços IPv4 a serem classificados. Máximo de 100 entradas por solicitação.

confiança_mínima

Opcional. Flutuante.

Somente as atribuições cuja confiança do sinal seja maior ou igual a esse valor são retornadas.

Valores permitidos: [0, 1].

Padrão: 0.

As chaves de API secundárias de uma conta pai-filho funcionam da mesma maneira: uma chamada com uma chave secundária retorna os campos do plano da assinatura principal.

Exemplo de saída

{
    "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": null,
                "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": null,
                "signals": null,
                "dns_enrichment": null,
                "tls_enrichment": null
            },
            "observed_location": null
        }
    ],
    "count": 2
}

Code: 200 OK.

Parâmetros de saída

resultados

Matriz. Um objeto de classificação por endereço IP de entrada, na mesma ordem da solicitação.

Cada item tem o mesmo formato da resposta de IP único. Consulte “Como fazer solicitações ” para obter descrições por campo.

contagem

Inteiro. O número de classificações retornadas. Corresponde ao comprimento da matriz `ips` de entrada, caso a operação seja bem-sucedida.

Acesso gratuito

Após o cadastro, você recebe automaticamente um plano de assinatura gratuito limitado a 1.000 consultas.

Limites de taxa

As solicitações de API têm um limite de frequência por chave de API em uma janela móvel de 60 segundos. O limite depende do seu plano de assinatura:

Introdução e consultas gratuitas após o cadastro

120 solicitações/min

Entrada

120 solicitações/min

Prós

150 solicitações/min

Escala

250 solicitações/min

Negócios

500 solicitações/min

Empresa

10.000 solicitações/min (o mesmo limite fixo para todas as chaves Enterprise)


Os créditos mensais para consultas são separados e exibidos na página de preços.

Se você ultrapassar seu limite, a API retorna um código de erro HTTP 429 com o envelope de erro padrão e os cabeçalhos Retry-After / X-RateLimit-Reset — aguarde Retry-After segundos antes de tentar novamente.

{"error": {"code": "rate_limited", ...}}

Essa API também está disponível com um balanceador de carga dedicado e um endpoint premium para permitir consultas mais rápidas como parte de nossos Serviços de API Premium e Pacotes de API Empresariais.