API de Geolocalização Gratuita

API para desenvolvedores para informações de geolocalização e endereços IP.

Carregando...

Rotas

https://geo.cmds.media/ip?ip={ip}

Útil para informações gerais.

30 solicitações por 60 segundos
api/ip

Exemplos de Código

import requests

response = requests.get("https://geo.cmds.media/ip?ip=8.8.8.8")
data = response.json()
print(data)
curl "https://geo.cmds.media/ip?ip=8.8.8.8"
const response = await fetch("https://geo.cmds.media/ip?ip=8.8.8.8");
const data = await response.json();
console.log(data);

Exemplo de Resposta

{
  "accuracy": 1000,
  "asn": 15169,
  "asn_org": "GOOGLE",
  "city": null,
  "continent": "North America",
  "continent_code": "NA",
  "country": "United States",
  "country_iso": "US",
  "currency": "usd",
  "currency_symbol": "$",
  "ip": "8.8.8.8",
  "latitude": 37.751,
  "longitude": -97.822,
  "postal": null,
  "region": null,
  "region_iso": null,
  "success": true,
  "timezone": "America/Chicago",
  "tz_offset": -4.0
}
https://geo.cmds.media/currency?ip={ip}

Útil para lojas online com moeda localizada.

90 solicitações por 60 segundos
api/currency

Exemplos de Código

import requests

response = requests.get("https://geo.cmds.media/currency?ip=8.8.8.8")
data = response.json()
print(data)
curl "https://geo.cmds.media/currency?ip=8.8.8.8"
const response = await fetch("https://geo.cmds.media/currency?ip=8.8.8.8");
const data = await response.json();
console.log(data);

Exemplo de Resposta

{
  "country": "United States",
  "country_iso": "US",
  "currency": "usd",
  "currency_symbol": "$",
  "ip": "8.8.8.8",
  "success": true
}
https://geo.cmds.media/client?ip={ip}&ua={user_agent}

Retorna geolocalização mais informações sobre dispositivo, navegador e SO. Recebe o cabeçalho User-Agent.

30 solicitações por 60 segundos
api/client

Exemplos de Código

import requests

headers = {
    "User-Agent": "Mozilla/5.0"
}

response = requests.get(
    "https://geo.cmds.media/client?ip=8.8.8.8",
    headers=headers
)

data = response.json()
print(data)
curl "https://geo.cmds.media/client?ip=8.8.8.8" \
-H "User-Agent: Mozilla/5.0"
const response = await fetch("https://geo.cmds.media/client?ip=8.8.8.8", {
    headers: {
        "User-Agent": navigator.userAgent
    }
});

const data = await response.json();
console.log(data);

Exemplo de Resposta

{
  "asn": 15169,
  "asn_org": "GOOGLE",
  "browser": {
    "name": "Chrome",
    "version": "145.0.0"
  },
  "city": "Mountain View",
  "continent": "North America",
  "continent_code": "NA",
  "country": "United States",
  "country_iso": "US",
  "device": {
    "brand": null,
    "model": null
  },
  "device_type": "desktop",
  "ip": "8.8.8.8",
  "latitude": 37.4056,
  "longitude": -122.0775,
  "os": {
    "name": "Windows",
    "version": "10"
  },
  "postal": "94043",
  "region": "California",
  "region_iso": "CA",
  "success": true,
  "timezone": "America/Los_Angeles",
  "accuracy": 1000
}
https://geo.cmds.media/geo?ip={ip}

Informações detalhadas de geolocalização incluindo coordenadas e ASN.

40 solicitações por 60 segundos
api/geo

Exemplos de Código

import requests

response = requests.get("https://geo.cmds.media/geo?ip=8.8.8.8")
data = response.json()
print(data)
curl "https://geo.cmds.media/geo?ip=8.8.8.8"
const response = await fetch("https://geo.cmds.media/geo?ip=8.8.8.8");
const data = await response.json();
console.log(data);

Exemplo de Resposta

{
  "accuracy": 1000,
  "asn": 15169,
  "asn_org": "GOOGLE",
  "city": "Mountain View",
  "continent": "North America",
  "continent_code": "NA",
  "country": "United States",
  "country_iso": "US",
  "ip": "8.8.8.8",
  "latitude": 37.4056,
  "longitude": -122.0775,
  "postal": "94043",
  "region": "California",
  "region_iso": "CA",
  "success": true,
  "timezone": "America/Los_Angeles",
  "tz_offset": -7.0
}
https://geo.cmds.media/country?ip={ip}

Consulta mínima ao nível do país, projetada para verificações de conformidade e restrições geográficas.

120 solicitações por 60 segundos
api/country

Exemplos de Código

import requests

response = requests.get("https://geo.cmds.media/country?ip=8.8.8.8")
data = response.json()
print(data)
curl "https://geo.cmds.media/country?ip=8.8.8.8"
const response = await fetch("https://geo.cmds.media/country?ip=8.8.8.8");
const data = await response.json();
console.log(data);

Exemplo de Resposta

{
  "country": "United States",
  "country_iso": "US",
  "continent": "NA",
  "in_eu": false,
  "ip": "8.8.8.8",
  "success": true
}

Como funciona o limite de taxa?

Nossa API utiliza um algoritmo token-bucket para limitar a taxa. Cada endpoint tem um certo número de tokens que são reabastecidos a uma taxa fixa por período. Quando você faz uma solicitação, ela consome um token do bucket relevante. Se não houver tokens restantes, você receberá uma resposta 429 Too Many Requests com um cabeçalho Retry-After indicando quando você pode tentar novamente.

Como os erros são tratados?

Se uma solicitação falhar, retornaremos uma resposta JSON com o campo "success" definido como false e o campo "error" contendo uma mensagem descrevendo o problema. Sempre verifique o campo "success" antes de processar os dados da resposta.

Se um campo não se aplicar a um endereço IP específico (por exemplo, "city" para um IP que só resolve para um país), ele será retornado como null.

FAQ

Esta API é realmente gratuita?

Claro! Nossa API é totalmente gratuita com limites generosos. Não exigimos chave de API nem qualquer forma de autenticação.

De onde vêm os seus dados de geolocalização?

Usamos uma combinação de fontes de dados públicas e privadas, incluindo os bancos de dados GeoIP2 da MaxMind, para fornecer a maior cobertura possível.

Posso usar esta API para fins comerciais?

Sim, você pode usar nossa API para projetos pessoais e comerciais sem qualquer restrição.

O que devo fazer se encontrar um erro?

Se você encontrar algum problema ou tiver dúvidas, entre em contato conosco através do nosso formulário de suporte.

Vocês têm um plano pago ou limites maiores?

Atualmente, não oferecemos um plano pago. Podemos considerar no futuro se houver demanda suficiente, mas por enquanto queremos manter esta API gratuita para todos. Quanto ao aumento de limites, você pode nos contatar com detalhes sobre o seu uso via nosso formulário de suporte.

Tenho uma sugestão para um novo recurso ou endpoint. Como posso compartilhá-la?

Acolhemos comentários e sugestões. Por favor, compartilhe suas ideias através do nosso formulário de feedback.

Com que frequência seus dados de geolocalização são atualizados?

Atualizamos nossos dados de geolocalização sempre que novos dados se tornam disponíveis.

Posso usar qualquer linguagem de programação além das listadas?

Sim, você pode usar qualquer linguagem de programação que possa fazer requisições HTTP para interagir com nossa API. Os exemplos fornecidos são apenas algumas linguagens comuns para ajudá-lo a começar.

Tenho outra pergunta que não está listada aqui.

Se você tiver outras perguntas, sinta-se à vontade para entrar em contato conosco através do nosso formulário de suporte. Estamos aqui para ajudar.