Consulta de IPv4

Ubicación, zona horaria y datos de red de una dirección IPv4. Omite la dirección para consultar la de quien llama.

GEThttps://api.mygeocode.com/v1/ipv4

Parámetros

ParámetroTipoDescripción
ipopcionalstringDirección IPv4 en notación decimal con puntos. Por defecto: la dirección desde la que llegó la solicitud.
ipsopcionalstringDirecciones separadas por comas, hasta 100, para un lote. Devuelve el array results en el mismo orden. Cada dirección cuenta como una solicitud.
langopcionalstringCódigo ISO 639-1 para los nombres de país, región y ciudad. Por defecto en.
keyopcionalstringClave de API, si no se envía como cabecera.

Ejemplo

$ curl -H "X-API-Key: YOUR_KEY" "https://api.mygeocode.com/v1/ipv4?ip=1.1.1.1"
// In a browser, with no ip parameter, this returns the visitor's own address
const geo = await (await fetch("https://api.mygeocode.com/v1/ipv4", { headers: { "X-API-Key": "YOUR_KEY" } })).json();
console.log(geo.country_code, geo.timezone);
import requests

geo = requests.get("https://api.mygeocode.com/v1/ipv4", params={"ip": "1.1.1.1"}, headers={"X-API-Key": "YOUR_KEY"}, timeout=5).json()
print(geo["country_code"], geo["org"], geo["is_datacenter"])
Respuesta
{
  "status": "ok",
  "ip": "1.0.164.165",
  "version": 4,
  "found": true,
  "prefix": "1.0.164.0/24",
  "country": "Thailand",
  "country_code": "TH",
  "continent": "Asia",
  "continent_code": "AS",
  "region": "Krung Thep Maha Nakhon",
  "region_code": null,
  "city": "Bangkok",
  "postcode": "10200",
  "lat": 13.749976,
  "lon": 100.516819,
  "timezone": "Asia/Bangkok",
  "utc_offset": "+07:00",
  "utc_offset_seconds": 25200,
  "is_eu": false,
  "asn": 23969,
  "as_name": "TOT Public Company Limited",
  "org": "TOT Public Company Limited",
  "usage_type": "Eyeball",
  "registry": "apnic",
  "allocated": "2008-10-22",
  "tags": ["dsl"],
  "is_anycast": false,
  "is_satellite": false,
  "is_datacenter": false,
  "is_proxy": false,
  "is_vpn_provider": false,
  "is_tor": false,
  "is_private": false,
  "abuse_email": "abuse@totisp.net",
  "threat": {
    "listed": true,
    "score": 90,
    "source_count": 2,
    "categories": ["abuse", "attacker"],
    "is_tor": false,
    "is_tor_exit": false,
    "is_bogon": false,
    "listings": [
      { "category": "abuse", "confidence": 100, "recency_days": 1 },
      { "category": "attacker", "confidence": null, "recency_days": null }
    ]
  },
  "updated_at": "2026-09-18 06:53:39"
}

Campos de la respuesta

CampoTipoDescripción
ip, versionstring, integerLa dirección consultada, en forma canónica, y 4 o 6.
foundbooleanFalse cuando ninguna red cubre la dirección; los campos de ubicación son entonces null.
prefixstringLa red más específica que contiene la dirección, en formato CIDR.
country, country_codestringNombre del país y código ISO 3166-1 alfa-2 en mayúsculas.
continent, continent_codestringNombre del continente y código de dos letras.
region, region_codestringDivisión de primer nivel y su código corto. El código se rellena para Estados Unidos, Canadá y Australia; en otros lugares solo aparece donde el conjunto de datos lo incluye.
city, postcodestringMejor estimación; null cuando se desconoce.
lat, lonnumberCentro de la zona conocida más específica.
elevation_mnumber o nullAltura sobre el nivel medio del mar en ese punto, en metros, de la misma cuadrícula de 15 segundos de arco que el endpoint de elevación. Negativa sobre el fondo marino.
timezone, utc_offset, utc_offset_secondsstring, string, numberZona IANA, el desfase vigente en este momento como +HH:MM y el mismo desfase en segundos. La zona se determina por las coordenadas y los límites de las zonas horarias, así que siempre concuerda con lat y lon.
is_eubooleanEl país pertenece a la Unión Europea.
asn, as_name, orginteger, stringNúmero de sistema autónomo, su nombre y la organización que hay detrás.
usage_typestringQué tipo de operador es: Eyeball (ISP residencial), Carrier, Content, Hosting, Enterprise, Education, NSP o unknown.
registry, allocatedstringRegistro regional que asignó el ASN y la fecha de asignación.
tagsarrayEtiquetas a nivel de operador como dsl, cdn, vpsh (hosting VPS), vpn, satnet. Describen al operador de la red, no a la dirección concreta.
is_anycast, is_satellitebooleanEl prefijo es anycast; el operador es una red por satélite.
is_datacenterbooleanRed de hosting o de contenidos. Considera la ciudad poco fiable y ten en cuenta que el tráfico puede ser automatizado.
is_proxy, is_torbooleanIndicios específicos de la dirección de que es un relé o nodo de salida de Tor, o de que figura como endpoint de proxy o VPN.
is_vpn_providerbooleanEl operador ofrece servicios de VPN o proxy en algún punto de su red (un indicio a nivel de operador, más débil que is_proxy).
is_privatebooleanDirección reservada, privada o no enrutable por otro motivo. Si es true, la respuesta solo incluye ip, version, is_private y reason.
abuse_emailstringContacto de abuso registrado para la red.
threatobjectReputación: listed, un score de 0 a 100 (el peso del peor informe, con descuento para los antiguos), source_count (cuántos informes independientes la incluyen), categories, indicadores de Tor y bogon, y las listings individuales con categoría, confianza y hace cuántos días se informó de cada una.
updated_atstringCuándo se actualizó por última vez el registro de esta red.

Cualquier versión en una sola llamada

GET /v1/ip acepta una dirección IPv4 o IPv6 (o ninguna, para la de quien llama) y devuelve el mismo registro que los endpoints específicos de cada versión. Úsalo cuando no sepas de antemano qué tipo de dirección vas a recibir.

Notas

La misma consulta en los formatos de otros proveedores

Si ya tienes código escrito para uno de estos proveedores, consérvalo: el host compatible acepta la misma ruta y los mismos parámetros y responde con la estructura de respuesta de ese proveedor, con este endpoint detrás. Consulta cómo funcionan los hosts compatibles.

ProveedorHostRuta
Geoapifygeoapify.mygeocode.com/v1/ipinfo?ip=...
ip-api.comipapi.mygeocode.com/json/{ip}
/json/
/batch (POST, JSON array)
ipinfo.ioipinfo.mygeocode.com/{ip}/json
/{ip}
/json
/{ip}/{field}
ipstackipstack.mygeocode.com/{ip}
/check
/{ip},{ip},{ip}

Errores

400 invalid_request cuando ip no es una dirección IPv4 válida, cuando se envía una dirección IPv6 a este endpoint (usa /v1/ipv6), o cuando ips tiene más de 100 entradas.