Documentación API
API REST pública para geolocalización IP, herramientas de red y verificación de seguridad.
Base URL : https://mon-ip.dev
Autenticación
Clave API
La API es accesible públicamente sin autenticación. Para límites más altos, cree una cuenta y genere una clave API desde su panel. Uso.
Transmita su clave mediante el header Authorization: Authorization
Límites
Rate limiting
Las solicitudes están limitadas según su nivel de acceso. Al superar el límite, la API devuelve un error 429 Too Many Requests. 429 Too Many Requests
Cada respuesta incluye headers para seguir su consumo:
X-RateLimit-Limit Número máximo de solicitudes permitidas por horaX-RateLimit-Remaining Solicitudes restantes en la ventana actualX-RateLimit-Reset Timestamp UNIX de reinicio del contadorErrores
Códigos de error
En caso de error, la respuesta contiene un campo error con un mensaje descriptivo. error
400 Parámetro faltante o inválido401 Clave API inválida o revocada429 Límite de solicitudes superado (rate limit)502 Error de conexión al servicio interno500 Error interno del servidor{
"error": "Rate limit exceeded",
"limit": 100,
"reset": 1709913600
}IP y Geolocalización
/api/v1/json Devuelve información de geolocalización, ISP y seguridad de la IP del cliente.
ip string Dirección IPv4ipv6 string Dirección IPv6 (si disponible)hostname string Reverse DNStype string Tipo de IP (Residential, Business, etc.)class string Clase de IP (A, B, C)location object country, countryCode, city, continent, latitude, longitude, timezone, postalCodenetwork object provider, asnsecurity object Indicadores de seguridad (proxy, VPN, Tor, etc.){
"ip": "203.0.113.42",
"hostname": "42.113.0.203.example.net",
"type": "Residential",
"class": "C",
"location": {
"country": "France",
"countryCode": "FR",
"city": "Paris",
"latitude": 48.8566,
"longitude": 2.3522,
"timezone": "Europe/Paris"
},
"network": { "provider": "Orange SA", "asn": "AS3215" },
"security": { "proxy": false, "vpn": false, "tor": false }
}/api/v1/ipv6 Detecta si el cliente se conecta por IPv4 o IPv6.
ip string Dirección IP del clienteis_ipv4 boolean true si IPv4is_ipv6 boolean true si IPv6 nativoprotocol string "IPv4" o "IPv6"timestamp string Marca de tiempo ISO 8601{
"ip": "203.0.113.42",
"is_ipv4": true,
"is_ipv6": false,
"protocol": "IPv4",
"timestamp": "2026-03-09T14:30:00Z"
}DNS y Dominios
/api/v1/dns Realiza una resolución DNS para un tipo de registro dado.
host requerido Nombre de dominio (ej: google.com)record_type requerido Tipo: A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, SRVhost string Dominio consultadorecords array Lista de registros: record_type, value, ttl{
"host": "google.com",
"records": [
{ "record_type": "MX", "value": "10 smtp.google.com", "ttl": 300 }
]
}/api/v1/whois Devuelve la información WHOIS de un dominio o una IP.
target requerido Dominio o IP (ej: google.com)target string Objetivo consultadoraw string Respuesta WHOIS sin procesarparsed object domain_name, registrar, creation_date, expiration_date, name_servers, status, dnsseccached boolean true si el resultado proviene del caché{
"target": "google.com",
"parsed": {
"domain_name": "google.com",
"registrar": "MarkMonitor Inc.",
"creation_date": "1997-09-15",
"expiration_date": "2028-09-14",
"name_servers": ["ns1.google.com", "ns2.google.com"],
"dnssec": "unsigned"
},
"cached": false
}/api/v1/ssl Verifica el certificado SSL/TLS de un dominio conectándose al puerto 443.
host requerido Nombre de dominio (ej: google.com)host string Dominio probadovalid boolean true si el certificado es válidodays_remaining number Días hasta la expiraciónsubject string Sujeto (CN)issuer string Emisor (CN)issuer_org string Organización del emisorvalid_from string Fecha de inicio (ISO 8601)valid_to string Fecha de expiración (ISO 8601)serial string Número de seriefingerprint string Huella SHA-256protocol string Protocolo TLS (ej: TLSv1.3)bits number | null Tamaño de clave en bitsalt_names string[] Nombres alternativos (SAN){
"host": "google.com",
"valid": true,
"days_remaining": 62,
"subject": "*.google.com",
"issuer": "GTS CA 1C3",
"protocol": "TLSv1.3",
"alt_names": ["*.google.com", "google.com"]
}Seguridad
/api/v1/blacklist Verifica si una dirección IPv4 está listada en 8 listas negras DNS.
ip requerido Dirección IPv4 (ej: 8.8.8.8)ip string IP probadatotal number Número de listas probadaslisted number Número de listas donde aparece la IPclean boolean true si la IP no está en ninguna listaresults array Detalle por lista: name, zone, listed{
"ip": "8.8.8.8",
"total": 8,
"listed": 0,
"clean": true,
"results": [
{ "name": "Spamhaus ZEN", "zone": "zen.spamhaus.org", "listed": false }
]
}Red
/api/v1/ping SSEEnvía paquetes ICMP y devuelve los resultados en tiempo real vía Server-Sent Events.
host requerido Host o IP (ej: 8.8.8.8)count opcional Número de paquetes (por defecto: 4)start host, resolved_ipreply seq, ip, time_ms, ttltimeout seqdone alive, packets_sent, packets_received, packet_loss, min_ms, avg_ms, max_mserror messagedata: {"type":"start","host":"8.8.8.8","resolved_ip":"8.8.8.8"}
data: {"type":"reply","seq":1,"ip":"8.8.8.8","time_ms":12.4,"ttl":118}
data: {"type":"reply","seq":2,"ip":"8.8.8.8","time_ms":11.8,"ttl":118}
data: {"type":"done","alive":true,"packets_sent":4,"packets_received":4,"packet_loss":0,"min_ms":11.2,"avg_ms":12.0,"max_ms":12.8}/api/v1/traceroute SSETraza la ruta de red hacia un host en tiempo real vía Server-Sent Events.
host requerido Host o IP (ej: google.com)start host, resolved_iphop hop, ip, hostname, rtt_msdone total_hops, reachederror messagedata: {"type":"start","host":"google.com","resolved_ip":"142.250.179.110"}
data: {"type":"hop","hop":1,"ip":"192.168.1.1","hostname":"gateway","rtt_ms":1.2}
data: {"type":"hop","hop":2,"ip":"10.0.0.1","hostname":"isp-router","rtt_ms":5.4}
data: {"type":"done","total_hops":12,"reached":true}Notas
Todos los endpoints aceptan solicitudes cross-origin (CORS).
Los endpoints ping y traceroute usan Server-Sent Events. EventSource / curl -N
Su clave API se muestra solo una vez al crearla. Guárdela con cuidado.
Las claves API están cifradas con AES-256-GCM en reposo.
