API de Reputación IP — REST API v1
Puntuación de abuso, listas negras, tipo VPN/proxy/Tor/hosting, ASN y ubicación de cualquier IPv4/IPv6 en una respuesta JSON; denuncie IP maliciosas y lleve la blocklist completa a su cortafuegos. Autenticación por clave, 1.000 solicitudes al día gratis.
curl -H "Key: YOUR_API_KEY" https://ip-db.com/api/v1/check/8.8.8.8
- Sin tarjeta
- IPv4 e IPv6
- Autenticación por clave
Qué devuelve la API
Reputación IP y puntuación de abuso
Puntuación de 0 a 100 con desglose: 46 feeds de amenazas, denuncias, DNSBL, historial y vecindario /24.
API de listas negras y blocklists
Cada lista coincidente por nombre; el conjunto completo como JSON paginado o texto plano para cortafuegos (EDL, Threat Feed).
Detección de proxy, VPN y Tor
networkType: residential, datacenter, vpn, tor, para controles de fraude en registros y pagos.
Plan gratuito
1.000 solicitudes al día, 10.000 con correo verificado. Sin tarjeta.
OpenAPI 3.1
/openapi.json, para Postman, generadores de código y agentes de IA como GPT Actions.
MCP
Servidor MCP remoto para Claude, ChatGPT y otros clientes MCP: https://ip-db.com/mcp
Autenticación
Genere una clave de API en su panel y envíela en cada solicitud mediante el encabezado Key (o el parámetro ?key=). Solo verá la clave al crearla — guárdela en un lugar seguro.
Si la clave falta o no es válida, todos los endpoints devuelven 401.
Límites
El límite es por cuenta, no por clave: todas sus claves comparten la misma cuota. Las cuentas sin verificar tienen 1.000 solicitudes diarias y las verificadas 10.000; /check y /report se cuentan por separado.
Las cuotas diarias se reinician cada día a las 00:00 (hora de Turquía, UTC+3), el mismo día que el contador «hoy» del panel. Los reportes (POST /report) tienen su propio contador y no consumen la cuota de consultas.
| Endpoint | Limit |
|---|---|
| GET /api/v1/check/<ip> | 1.000 – 10.000 / día |
| POST /api/v1/report | 1.000 – 10.000 / día (contador aparte) |
| GET /api/v1/blacklist | 60 /hora |
| GET /api/v1/feed.txt | 60 /hora |
Atribución (opcional)
IP-DB es gratuito y lo seguirá siendo. Si muestra nuestros datos en un producto, panel o proyecto de código abierto, un enlace a ip-db.com en su documentación ayuda a sostener el servicio y a que llegue a más gente. Si su integración es pública, escríbanos y la incluiremos con gusto en la página de integraciones.
Consultar IP
GET/api/v1/check/<ip>Devuelve el informe completo para la IP indicada: puntuación de confianza, ubicación, ASN, coincidencias en listas negras, resultados DNSBL y reportes de la comunidad.
| Field | Type | Description |
|---|---|---|
| ipAddress | string | The queried IP address |
| ipVersion | integer | 4or6 |
| isPrivate | boolean | true for private/reserved ranges — other fields are not computed in that case |
| abuseConfidenceScore | integer | 0–100confidence score |
| scoreLabel | string | clean · low · suspicious · critical |
| scoreBreakdown | object | Which evidence the score rests on: feeds, reports, dnsbl (live lookup), liftedListing (residual of a listing since lifted) and neighbourhood (state of the surrounding /24). Their sum is capped at 100. |
| liftedListing | object | null | Present when the address left the lists within the last 60 days: delistedAt, priorScore, cycles, daysSince. null once the address is listed again — live matches govern then. |
| prefixNeighbourhood | object | null | How much of the surrounding /24 is listed; null for IPv6. A small share contributes nothing to the score. |
| countryCode / countryName / city | string | null | Geolocation; null when it cannot be resolved |
| asn / asnOrg / isp | integer/string | null | Autonomous system and network owner |
| abuseContact | object | null | The network's abuse mailbox from its RDAP record (email, name, handle). null when the record names no contact in the "abuse" role. |
| totalReports / distinctReporters | integer | Community report counts |
| lastReportedAt | string | null | ISO 8601 UTC |
| blacklistSources | string[] | Names of the automated threat feeds that matched |
| reportUrl | string | El informe público de IP-DB de esta dirección (en el idioma del titular de la clave). Enlazado en alertas o paneles, lleva a su equipo a la evidencia con un clic. |
| dnsbl | object[] | Only the DNSBL zones that returned a listing (zone, label, listed) |
Reportar IP
POST/api/v1/reportReporta una dirección IP por abuso. Los reportes repetidos de la misma cuenta contribuyen más a la puntuación de confianza.
Reporte automáticamente las IP que bloquea
Si usa un WAF, fail2ban o un SIEM, puede reportar cada dirección que bloquea con una sola línea. Los reportes no consumen su cuota de consultas y mejoran la puntuación para todos los que ven al mismo atacante. Acción de ejemplo para fail2ban:
Después, añada ipdb junto a %(action_)s en la action del jail. Se aceptan igual campos de formulario y JSON.
| Field | Required | Description |
|---|---|---|
| ip | Yes | A public, non-private IPv4/IPv6 address |
| categories | Yes | Array or comma-separated string; at least one valid category key(↓) |
| comment | No | Free text — log excerpt, timestamps, etc. |
Claves de categoría válidas:brute_force, port_scan, web_attack, ssh_abuse, spam, ddos, malware, fraud, phishing, exploit, vuln_scan, credential_stuffing, iot_abuse, web_spam, ransomware, cryptomining_abuse, bad_bot, open_proxy
Grupo de Lista Negra
GET/api/v1/blacklistDevuelve el grupo de lista negra actual, agregado desde nuestras fuentes automáticas, de forma paginada.
| Param | Default | Description |
|---|---|---|
| page | 1 | 1-indexed page number |
| limit | 100 | Rows per page (max 1000) |
| category | — | Filter to a single category (optional) |
Valores válidos de category:hijacked_network, botnet_c2, malware_c2, malicious_activity, attack_source, aggregated_high_confidence, aggregated_medium_confidence, compromised_host, tor_exit
Feed de Texto Plano
GET/api/v1/feed.txtPara dispositivos que esperan texto plano en lugar de JSON: una IP por línea. Las direcciones de mayor puntuación, redistribuibles y confirmadas por al menos dos fuentes; limitado por cuenta (más gratis a petición) y cuenta para su uso diario. La lista completa en bloque en /datasets. Se puede pegar directamente en el campo de URL de origen de Palo Alto External Dynamic Lists, FortiGate Threat Feed y similares. Autenticación mediante ?key= en la URL, ya que esas interfaces no permiten encabezados personalizados.
Admite category, min_score y limit. Vea Integraciones para los pasos de configuración de Palo Alto y FortiGate.
OpenAPI & MCP
Toda la API está descrita como OpenAPI 3.1 en /openapi.json: impórtela en Postman, genere código cliente o añádala como GPT Action. Para Claude, ChatGPT, Cursor y otros clientes MCP hay un servidor MCP remoto sin clave en https://ip-db.com/mcp, con las herramientas check_ip, check_blacklists y domain_whois para dominios.
Preguntas frecuentes
¿La API de reputación IP es gratuita?
Sí. Con una clave gratuita, 1.000 solicitudes al día, y 10.000 tras verificar su correo. Sin tarjeta de crédito.
¿Qué devuelve la API?
Una puntuación de abuso de 0 a 100 con su desglose, las fuentes de listas negras que coinciden, entradas DNSBL, el tipo de red (residencial, hosting, VPN, Tor), ASN, ISP, geolocalización, el contacto de abuso de RDAP y el número de denuncias de la comunidad.
¿Sirve para detectar fraude?
Sí. networkType y abuseConfidenceScore bastan para decidir permitir, verificar o bloquear en registros, inicios de sesión y pagos; los umbrales se explican en la página de puntuación de fraude IP.
¿Cómo bloqueo IP en mi cortafuegos con ella?
/api/v1/feed.txt devuelve una blocklist en texto plano con una IP por línea; Palo Alto EDL, FortiGate Threat Feed, pfSense, OPNsense y MikroTik leen la URL directamente.
¿De dónde salen los datos?
De 46 fuentes abiertas de inteligencia de amenazas (cada una con su licencia en Fuentes de datos), denuncias de la comunidad y consultas DNSBL en directo. El conjunto se renueva cada 30 minutos.
¿Hay especificación OpenAPI y la pueden usar agentes de IA?
Sí. La especificación legible por máquina está en /openapi.json. Los agentes basados en ChatGPT, Claude o Gemini pueden llamar a la API con ella, y para clientes compatibles con MCP hay un servidor MCP en /mcp.
Códigos de Error
| Status | Meaning | Response body |
|---|---|---|
| 400 | Invalid IP, category, or missing field | {"error": "Invalid IP address."} |
| 401 | Key missing, invalid, or revoked | {"error": "Invalid or revoked API key."} |
| 429 | Daily/hourly limit exceeded | {"error": "ratelimit exceeded", "limit": "1000 per 1 day", "resetsAt": "…"} |