Documentación API

Accede a datos de geolocalización IP y ASN programáticamente con nuestra API REST gratuita.

Autenticación requerida

Todas las solicitudes API requieren una clave API válida.

Mediante header Authorization (recomendado)

Authorization: Bearer YOUR_API_KEY

Mediante parámetro de consulta

https://ipmeu.ro/api/lookup?key=YOUR_API_KEY&ip=8.8.8.8

Cree una cuenta gratuita para obtener su clave API: Crear cuenta

URL base

https://ipmeu.ro/api

Todos los endpoints son relativos a esta URL base. Se requiere HTTPS.

GET /api/lookup

Buscar información de geolocalización y red para cualquier dirección IP.

Parámetros

Parámetro Tipo Requerido Descripción
key string Requerido Tu clave API.
ip string Opcional Dirección IP a consultar.

Solicitud de ejemplo

curl -H "Authorization: Bearer YOUR_API_KEY" \
     "https://ipmeu.ro/api/lookup?ip=8.8.8.8"

Respuesta de ejemplo

{
  "status": "success",
  "data": {
    "ip":       "8.8.8.8",
    "version":  4,
    "hostname": "dns.google",

    "geo": {
      "country":        "United States",
      "country_code":   "US",
      "region":         "California",
      "region_code":    "CA",
      "city":           "Mountain View",
      "postal_code":    "94043",
      "latitude":       37.386,
      "longitude":      -122.0838,
      "timezone":       "America/Los_Angeles",
      "continent":      "North America",
      "continent_code": "NA"
    },

    "asn": {
      "number":       15169,
      "name":         "Google LLC",
      "description":  "Google LLC - AS15169",
      "country":      "United States",
      "country_code": "US",
      "registry":     "ARIN",
      "allocated":    "2000-03-30",
      "total_ips":    16777216
    },

    "whois": {
      "net_range":    "8.8.8.0/24",
      "net_name":     "GOGL",
      "org_name":     "Google LLC",
      "org_id":       "GOGL",
      "country":      "US",
      "abuse_email":  "network-abuse@google.com",
      "registered":   "2000-03-30",
      "updated":      "2014-12-01"
    },

    "security": {
      "vpn":           false,
      "proxy":         false,
      "tor":           false,
      "threat_score":  0
    }
  }
}

Campos de respuesta

Todos los campos y sus tipos devueltos por la API.

ip string La dirección IP consultada (IPv4 o IPv6).
version integer Versión IP: 4 para IPv4, 6 para IPv6.
hostname string Nombre de host DNS inverso. Cadena vacía si no existe registro PTR.

geo object

country string Nombre completo del país.
country_code string Código de país ISO 3166-1 alfa-2 (ej. "US", "RO").
region string Nombre de la región o estado.
region_code string Código de región ISO (ej. "CA", "AB").
city string Nombre de la ciudad.
postal_code string Código postal.
latitude float Coordenada de latitud (aproximada).
longitude float Coordenada de longitud (aproximada).
timezone string Identificador de zona horaria IANA (ej. "America/Los_Angeles").
continent string Nombre del continente.
continent_code string Código de continente de dos letras (ej. "EU", "NA").

asn object

number integer Número de sistema autónomo (entero).
name string Nombre de la organización ASN.
description string Cadena de descripción completa del ASN.
country string|null País donde está registrado el ASN. null si se desconoce.
country_code string|null Código de país ISO del ASN. null si se desconoce.
registry string|null Registro Regional de Internet: ARIN, RIPE NCC, APNIC, LACNIC o AFRINIC. null si se desconoce.
allocated string|null Fecha de la primera asignación del bloque de red (AAAA-MM-DD). Derivado de WHOIS cuando está disponible. null si se desconoce.
total_ips integer|null Número total de direcciones IP en el bloque de red. Calculado a partir del prefijo CIDR. null si se desconoce.

whois object

net_range string|null Rango de red o bloque CIDR (ej. "8.8.8.0/24" o "2a04::/32").
net_name string|null Nombre corto de red tal como está registrado en la base de datos RIR.
org_name string|null Nombre completo de la organización propietaria de la red.
org_id string|null ID de organización o identificador en la base de datos RIR.
country string|null Código de país ISO del registro WHOIS.
abuse_email string|null Dirección de correo electrónico de contacto de abuso. Úsela para reportar abusos de red.
registered string|null Fecha de registro de la red (formato ISO 8601).
updated string|null Fecha de la última actualización del registro WHOIS.

security object

vpn boolean true si la IP está asociada con un proveedor VPN o red de alojamiento conocido.
proxy boolean true si la IP se detecta como proxy abierto.
tor boolean true si la IP es un nodo de salida Tor conocido (solo IPv4).
threat_score integer Puntuación de amenaza de 0 (limpia) a 100 (alto riesgo). Combina señales de VPN, proxy y Tor.

Códigos de estado HTTP

200 OK Solicitud exitosa. Los datos están en el cuerpo de la respuesta.
400 Bad Request Formato de dirección IP no válido proporcionado.
401 Unauthorized Clave API requerida
403 Forbidden Clave API inválida
404 Not Found No se pudo resolver la dirección IP.
429 Too Many Requests Límite diario excedido
500 Internal Server Error Error interno del servidor. Por favor, inténtelo de nuevo más tarde.

Formato de respuesta de error

{
  "status": "error",
  "error":  "API key is required."
}

Límites de velocidad

La API gratuita tiene límite de solicitudes para uso equitativo.

30
solicitudes / minuto
1,000
solicitudes / día
Nivel gratuito
Regístrese para obtener una clave API gratuita

Los límites se restablecen a medianoche UTC. Superar el límite devuelve HTTP 429.

Ejemplos de código

$ cURL

curl -s -H "Authorization: Bearer YOUR_API_KEY" \
     "https://ipmeu.ro/api/lookup?ip=8.8.8.8" | python3 -m json.tool

P PHP

$response = file_get_contents('https://ipmeu.ro/api/lookup?ip=8.8.8.8&key=YOUR_API_KEY');
$data     = json_decode($response, true);

echo $data['data']['geo']['country'];   // "United States"
echo $data['data']['asn']['name'];      // "Google LLC"
echo $data['data']['security']['vpn'];   // false

Py Python

import requests

resp = requests.get(
    "https://ipmeu.ro/api/lookup",
    params={"ip": "8.8.8.8"},
    headers={"Authorization": "Bearer YOUR_API_KEY"}
)
data = resp.json()["data"]

print(data["geo"]["country"])     # United States
print(data["asn"]["registry"])   # ARIN
print(data["whois"]["abuse_email"]) # network-abuse@google.com

JS JavaScript (fetch)

const res  = await fetch(
  "https://ipmeu.ro/api/lookup?ip=8.8.8.8",
  { headers: { "Authorization": "Bearer YOUR_API_KEY" } }
);
const { data } = await res.json();

console.log(data.geo.country);          // "United States"
console.log(data.asn.registry);         // "ARIN"
console.log(data.whois.abuse_email);    // "network-abuse@google.com"
console.log(data.security.threat_score); // 0