IP Detection

API de consulta de IP

El veredicto completo de una IP, rango o hostname en una sola llamada.

Consultar una IP

POST/v1/ip/lookup
Clave de API

Parámetros

  • targetstringObligatorio

    IPv4, IPv6, rango CIDR o hostname.

Campos de la respuesta

  • target.kindstring

    ipv4, ipv6, cidr o hostname.

  • target.ipstring

    Dirección comprobada. Para un hostname, la dirección a la que resolvió.

  • reserved.reservedboolean

    True para rangos privados, reservados y de documentación.

  • verdict.classificationstring

    residential_clean, mobile, hosting, datacenter, vpn, residential_proxy, tor, relay o unknown.

  • verdict.anonymizedboolean

    True cuando la red oculta a la persona que hay detrás. El hosting cuenta, salvo la infraestructura conocida.

  • verdict.confidencenumber

    Confianza de 0 a 1.

  • verdict.methodstring

    Qué señal decidió el veredicto.

  • verdict.evidencestring[]

    Opcional. En qué se basa la clase, por ejemplo vpn_server_list, relay_range o known_infra.

  • purityobject | null

    Desglose de la puntuación: score, grade, verdict y deductions. Desde Starter, null en Free.

  • purity.scoreinteger

    Puntuación de limpieza de 0 a 100. Desde Starter, null en Free.

  • purity.gradestring

    S+, S, A, B o C. Desde Starter, null en Free.

  • purity.verdictstring

    clean, suspect o dirty. Desde Starter, null en Free.

  • purity.deductionsarray

    Puntos restados a la puntuación, cada uno con su motivo. Desde Starter, null en Free.

  • networkClassstring

    residential_clean, mobile, hosting, datacenter, vpn, residential_proxy, tor, relay o unknown.

  • isVpnboolean

    True solo para vpn, residential_proxy y tor, nunca para hosting o relay.

  • isProxyboolean

    True para proxies, incluidos los residenciales.

  • isTorboolean

    True para nodos de salida de Tor.

  • providerstring | null

    Propietario de la red, si se conoce. Desde Starter, null en Free.

  • vpnProviderstring | null

    Servicio VPN de una dirección vpn (NordVPN, Mullvad...), si se conoce. Desde Starter, null en Free.

  • riskScoreinteger

    Riesgo de 0 a 100.

  • geoobject

    Misma forma que la respuesta de geolocalización.

  • asnobject

    Misma forma que la respuesta de consulta ASN.

  • whoisobject

    Registro WHOIS, para destinos hostname.

  • degradedstring[]

    Partes de la consulta que fallaron y se omitieron.

  • atstring

    Cuándo se hizo la consulta.

  • lockedstring[]

    Rutas con puntos de los campos enviados como null en este plan. Ausente desde Starter.

  • planRequiredstring

    Plan que incluye los campos bloqueados. Ausente desde Starter.

curl -X POST https://ipscanner.io/v1/ip/lookup \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target":"8.8.8.8"}'
Respuesta
{
  "target": {
    "raw": "8.8.8.8",
    "kind": "ipv4",
    "ip": "8.8.8.8"
  },
  "reserved": {
    "reserved": false
  },
  "verdict": {
    "classification": "hosting",
    "anonymized": false,
    "confidence": 0.9,
    "method": "org:hosting",
    "evidence": [
      "known_infra",
      "datacenter_range"
    ]
  },
  "purity": {
    "score": 86,
    "grade": "S",
    "verdict": "clean",
    "deductions": [
      {
        "factor": "network_origin",
        "points": 14,
        "detail": "hosting at high confidence"
      }
    ]
  },
  "networkClass": "hosting",
  "isVpn": false,
  "isProxy": false,
  "isTor": false,
  "provider": "GOOGLE",
  "vpnProvider": null,
  "riskScore": 25,
  "geo": {
    "ip": "8.8.8.8",
    "country": "United States",
    "countryCode": "US",
    "city": "",
    "region": "",
    "postalCode": "",
    "latitude": 37.751,
    "longitude": -97.822,
    "timezone": "America/Chicago",
    "accuracyRadius": 1000
  },
  "asn": {
    "ip": "8.8.8.8",
    "asn": "AS15169",
    "name": "GOOGLE",
    "type": "unknown",
    "country": "US"
  },
  "at": "2026-10-06T17:55:29.44292148Z"
}

Pruébalo sin clave

GET/v1/demo/{ip}
Sin claveUnas 100 al día por IP

Parámetros

  • ipstringrutaObligatorio

    Dirección IPv4 o IPv6.

Campos de la respuesta

  • target.kindstring

    ipv4, ipv6, cidr o hostname.

  • target.ipstring

    Dirección comprobada. Para un hostname, la dirección a la que resolvió.

  • reserved.reservedboolean

    True para rangos privados, reservados y de documentación.

  • verdict.classificationstring

    residential_clean, mobile, hosting, datacenter, vpn, residential_proxy, tor, relay o unknown.

  • verdict.anonymizedboolean

    True cuando la red oculta a la persona que hay detrás. El hosting cuenta, salvo la infraestructura conocida.

  • verdict.confidencenumber

    Confianza de 0 a 1.

  • verdict.methodstring

    Qué señal decidió el veredicto.

  • verdict.evidencestring[]

    Opcional. En qué se basa la clase, por ejemplo vpn_server_list, relay_range o known_infra.

  • purityobject | null

    Desglose de la puntuación: score, grade, verdict y deductions. Desde Starter, null en Free.

  • purity.scoreinteger

    Puntuación de limpieza de 0 a 100. Desde Starter, null en Free.

  • purity.gradestring

    S+, S, A, B o C. Desde Starter, null en Free.

  • purity.verdictstring

    clean, suspect o dirty. Desde Starter, null en Free.

  • purity.deductionsarray

    Puntos restados a la puntuación, cada uno con su motivo. Desde Starter, null en Free.

  • networkClassstring

    residential_clean, mobile, hosting, datacenter, vpn, residential_proxy, tor, relay o unknown.

  • isVpnboolean

    True solo para vpn, residential_proxy y tor, nunca para hosting o relay.

  • isProxyboolean

    True para proxies, incluidos los residenciales.

  • isTorboolean

    True para nodos de salida de Tor.

  • providerstring | null

    Propietario de la red, si se conoce. Desde Starter, null en Free.

  • vpnProviderstring | null

    Servicio VPN de una dirección vpn (NordVPN, Mullvad...), si se conoce. Desde Starter, null en Free.

  • riskScoreinteger

    Riesgo de 0 a 100.

  • geoobject

    Misma forma que la respuesta de geolocalización.

  • asnobject

    Misma forma que la respuesta de consulta ASN.

  • whoisobject

    Registro WHOIS, para destinos hostname.

  • degradedstring[]

    Partes de la consulta que fallaron y se omitieron.

  • atstring

    Cuándo se hizo la consulta.

  • lockedstring[]

    Rutas con puntos de los campos enviados como null en este plan. Ausente desde Starter.

  • planRequiredstring

    Plan que incluye los campos bloqueados. Ausente desde Starter.

curl https://ipscanner.io/v1/demo/185.220.101.1
Respuesta
{
  "target": {
    "raw": "185.220.101.1",
    "kind": "ipv4",
    "ip": "185.220.101.1"
  },
  "reserved": {
    "reserved": false
  },
  "verdict": {
    "classification": "tor",
    "anonymized": true,
    "confidence": 0.95,
    "method": "tor_set",
    "evidence": [
      "tor_exit_list"
    ]
  },
  "networkClass": "tor",
  "isVpn": true,
  "isProxy": true,
  "isTor": true,
  "riskScore": 100,
  "asn": {
    "ip": "185.220.101.1",
    "asn": "AS60729",
    "name": "Stiftung Erneuerbare Freiheit",
    "type": "unknown",
    "country": "DE"
  },
  "at": "2026-10-08T21:55:08.590700162Z",
  "purity": null,
  "provider": null,
  "vpnProvider": null,
  "geo": {
    "ip": "185.220.101.1",
    "country": "Germany",
    "countryCode": "DE",
    "city": "Brandenburg",
    "region": "Brandenburg",
    "timezone": "Europe/Berlin",
    "latitude": null,
    "longitude": null,
    "postalCode": null,
    "accuracyRadius": null
  },
  "locked": [
    "purity",
    "provider",
    "vpnProvider",
    "geo.latitude",
    "geo.longitude",
    "geo.postalCode",
    "geo.accuracyRadius"
  ],
  "planRequired": "Starter"
}

Tu propia IP

GET/v1/myip
Sin clave

Campos de la respuesta

  • ipv4string

    Tu dirección IPv4, si te conectaste por IPv4.

  • ipv6string

    Tu dirección IPv6, si te conectaste por IPv6.

  • countrystring

    Nombre del país.

  • countryCodestring

    Código ISO de país de dos letras.

  • citystring

    Nombre de la ciudad.

  • regionstring

    Región o estado.

  • latitudenumber

    Latitud.

  • longitudenumber

    Longitud.

  • timezonestring

    Zona horaria IANA.

  • asnstring

    Número de sistema autónomo, como AS15169.

  • asnNamestring

    Nombre de la organización que opera la red.

  • asnTypestring

    hosting, isp, vpn, education, government, mobile o unknown.

curl https://ipscanner.io/v1/myip
Respuesta
{
  "ipv4": "203.0.113.42",
  "country": "Canada",
  "countryCode": "CA",
  "city": "Montreal",
  "region": "Quebec",
  "postalCode": "H1K",
  "latitude": 45.6085,
  "longitude": -73.5493,
  "timezone": "America/Toronto",
  "accuracyRadius": 5,
  "asn": "AS5769",
  "asnName": "VIDEOTRON",
  "asnType": "isp",
  "asnCountry": "CA"
}