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ámetro | En | Descripción |
|---|---|---|
ip | path | La 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ía | Significado |
|---|---|
reputation | Feeds de reputación de amenazas e historial de abuso |
anonymizers | Detección de VPN, proxies y nodos de salida de Tor |
detected_bots | Patrones de detección de bots por comportamiento en tráfico real |
known_bots | Firmas 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.
| Campo | Tipo | Descripción |
|---|---|---|
asn | integer | Número de sistema autónomo |
as | string | Nombre del sistema autónomo |
isp | string | El ISP que opera la dirección |
datacenter | boolean | Si el rango pertenece a un centro de datos |
org | string | La organización a la que está asignado el rango |
networkType | string | Unknown, Mobile o WiFi |
mcc / mnc | string | Có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.
| Campo | Tipo | Descripción |
|---|---|---|
country | string | Código de país ISO 3166-1 alfa-2 |
city | string | La ciudad más cercana |
latitude / longitude | number | Coordenadas de ese contexto de ciudad |
timezone | string | Nombre de zona horaria IANA |
continent | string | Código de continente de dos letras |
eu | boolean | Si 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.