API para desarrolladores

Una llamada REST, autenticación con token crudo. GET /ip/{ip} recibe una dirección y responde con las categorías de riesgo en que está marcada y la inteligencia de red que las respalda — la misma lectura que el panel dibuja como un pasaporte.

El endpoint de consulta

curl 'https://api.ipraccoon.com/ip/203.0.113.7' \
  -H "Authorization: $IP_RACCOON_TOKEN" \
  -H 'Accept: application/json'
ParámetroEnDescripción
ippathLa dirección a puntuar — solo se admiten direcciones IPv4

Cada llamada descuenta un crédito de tu saldo. GET /account/me devuelve el saldo vivo en apiCredits, junto al histórico de uso, el consumo medio diario y — con la recarga automática activa — el umbral y el importe de recarga.

La respuesta

{
  "ip": "203.0.113.7",
  "risks": {
    "reputation": "blocklist",
    "detected_bots": "behavioural"
  },
  "network": {
    "asn": 29465,
    "as": "MTN-NIGERIA-AS",
    "isp": "MTN Nigeria",
    "datacenter": false,
    "org": null,
    "networkType": "Mobile",
    "mcc": "621",
    "mnc": "30"
  },
  "location": {
    "country": "NG",
    "city": "Lagos",
    "latitude": 6.52,
    "longitude": 3.38,
    "timezone": "Africa/Lagos",
    "continent": "AF",
    "eu": false
  }
}

risks — las marcas

Un objeto con una clave por cada categoría en que la dirección está marcada ahora mismo, y como valor la detection que la levantó — un nombre libre de la fuente o heurística concreta, así que muéstralo como detalle en lugar de comparar contra él. Un objeto vacío es un hallazgo: la dirección se comprobó y salió limpia. Cada categoría la respalda un dataset al que también puedes suscribirte directamente — mira el Repositorio de activos de inteligencia.

CategoríaSignificado
reputationFeeds de reputación de amenazas e historial de abuso
anonymizersDetección de VPN, proxies y nodos de salida de Tor
detected_botsPatrones de detección de bots por comportamiento en tráfico real
known_botsFirmas de bots verificadas y registros de crawlers conocidos

network — el operador

null cuando la dirección está fuera de cobertura. Cada campo interior es a su vez nullable: el registro es un formulario, y un campo que las fuentes no pueden rellenar queda vacío en lugar de adivinarse.

CampoTipoDescripción
asnintegerNúmero de sistema autónomo
asstringNombre del sistema autónomo
ispstringEl ISP que opera la dirección
datacenterbooleanSi el rango pertenece a un centro de datos
orgstringLa organización a la que está asignado el rango
networkTypestringUnknown, Mobile o WiFi
mcc / mncstringCódigo móvil de país / red, en rangos móviles

location — la geografía

null cuando la dirección está fuera de cobertura — el panel lee una respuesta con network y location ambos null como Sin datos. La misma regla que la red: todo campo nullable, nada adivinado.

CampoTipoDescripción
countrystringCódigo de país ISO 3166-1 alfa-2
citystringLa ciudad más cercana
latitude / longitudenumberCoordenadas de ese contexto de ciudad
timezonestringNombre de zona horaria IANA
continentstringCódigo de continente de dos letras
eubooleanSi el país pertenece a la UE

La geolocalización tiene precisión de ciudad como mucho — trata las coordenadas como contexto de continente y ciudad, nunca como una dirección postal.

Límites y errores

  • 429 Too many requests — espera y reintenta; el endpoint de demo se limita mucho más agresivamente que el autenticado.
  • Los cuerpos de error son texto plano, no JSON.

El endpoint público de demo

GET /demo/ip/{ip} es la misma consulta sin autenticación y sin gasto de créditos, con un límite de peticiones estricto. Alimenta la demo en vivo de la página de inicio y está pensado solo para evaluación.