Consulta de IPv4

Localização, fuso horário e detalhes de rede de um endereço IPv4. Omita o endereço para consultar quem faz a chamada.

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

Parâmetros

ParâmetroTipoDescrição
ipopcionalstringEndereço IPv4 em notação decimal com pontos. Padrão: o endereço de onde veio a requisição.
ipsopcionalstringEndereços separados por vírgula, até 100, para um lote. Retorna um array results na mesma ordem. Cada endereço conta como uma requisição.
langopcionalstringCódigo ISO 639-1 para nomes de países, regiões e cidades. Padrão en.
keyopcionalstringChave de API, se não for enviada como cabeçalho.

Exemplo

$ 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"])
Resposta
{
  "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 da resposta

CampoTipoDescrição
ip, versionstring, inteiroO endereço consultado, na forma canônica, e 4 ou 6.
foundbooleanoFalse quando nenhuma rede cobre o endereço; os campos de localização ficam então null.
prefixstringA rede mais específica que contém o endereço, em notação CIDR.
country, country_codestringNome do país e código ISO 3166-1 alfa-2 em maiúsculas.
continent, continent_codestringNome do continente e código de duas letras.
region, region_codestringDivisão de primeiro nível e o seu código curto. O código é preenchido para Estados Unidos, Canadá e Austrália; nos demais países, só aparece quando o conjunto de dados o traz.
city, postcodestringMelhor estimativa; null quando desconhecido.
lat, lonnúmeroCentro da área conhecida mais específica.
elevation_mnúmero ou nullAltura acima do nível médio do mar nesse ponto, em metros, da mesma grade de 15 segundos de arco do endpoint de altitude. Negativa sobre o fundo do mar.
timezone, utc_offset, utc_offset_secondsstring, string, númeroZona IANA, o deslocamento em vigor agora no formato +HH:MM e o mesmo deslocamento em segundos. A zona é definida pelas coordenadas e pelos limites dos fusos horários, então sempre concorda com lat e lon.
is_eubooleanoO país faz parte da União Europeia.
asn, as_name, orginteiro, stringNúmero do sistema autônomo, o seu nome e a organização por trás dele.
usage_typestringO que o operador é: Eyeball (provedor de internet residencial), Carrier, Content, Hosting, Enterprise, Education, NSP ou unknown.
registry, allocatedstringRegistro regional que alocou o ASN e a data da alocação.
tagsarrayMarcadores em nível de operador, como dsl, cdn, vpsh (hospedagem VPS), vpn, satnet. Eles descrevem o operador da rede, não o endereço individual.
is_anycast, is_satellitebooleanoO prefixo é anycast; o operador é uma rede via satélite.
is_datacenterbooleanoRede de hospedagem ou de conteúdo. Considere a cidade pouco confiável e leve em conta que o tráfego pode ser automatizado.
is_proxy, is_torbooleanoEvidência, por endereço, de que ele é um relay ou nó de saída do Tor, ou de que está listado como endpoint de proxy ou VPN.
is_vpn_providerbooleanoO operador oferece serviços de VPN ou proxy em algum ponto da sua rede (um indício em nível de operador, mais fraco que is_proxy).
is_privatebooleanoEndereço reservado, privado ou não roteável por outro motivo. Quando true, a resposta traz apenas ip, version, is_private e reason.
abuse_emailstringContato de abuso registrado para a rede.
threatobjetoReputação: listed, um score de 0 a 100 (o peso da pior denúncia, com desconto para as antigas), source_count (quantas denúncias independentes o listam), categories, indicadores de Tor e bogon, e as listings individuais com categoria, confiança e há quantos dias cada uma foi feita.
updated_atstringQuando o registro desta rede foi atualizado pela última vez.

Qualquer versão numa única chamada

GET /v1/ip aceita um endereço IPv4 ou IPv6 (ou nenhum, para quem faz a chamada) e retorna o mesmo registro que os endpoints específicos de cada versão. Use-o quando você não souber de antemão que tipo de endereço vai receber.

Observações

A mesma consulta nos formatos de outros provedores

Se você já tem código escrito para um desses provedores, mantenha-o: o host compatível aceita o mesmo caminho e os mesmos parâmetros e responde no formato de resposta desse provedor, com este endpoint por trás. Veja como funcionam os hosts compatíveis.

ProvedorHostCaminho
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}

Erros

400 invalid_request quando ip não é um endereço IPv4 válido, quando um endereço IPv6 é enviado a este endpoint (use /v1/ipv6) ou quando ips tem mais de 100 entradas.