Бесплатный API геолокации
API для разработчиков для получения информации о геолокации и IP-адресах.
Загрузка...
Маршруты
https://geo.cmds.media/ip?ip={ip}
Полезно для общей информации.
Примеры кода
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);
Пример ответа
{
"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}
Полезно для интернет-магазинов с локализованной валютой.
Примеры кода
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);
Пример ответа
{
"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}
Возвращает геолокацию, а также информацию об устройстве, браузере и ОС. Использует заголовок User-Agent.
Примеры кода
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);
Пример ответа
{
"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}
Подробная информация о геолокации, включая координаты и ASN.
Примеры кода
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);
Пример ответа
{
"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}
Минимальный поиск на уровне страны для проверок соответствия и гео-ограничений.
Примеры кода
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);
Пример ответа
{
"country": "United States",
"country_iso": "US",
"continent": "NA",
"in_eu": false,
"ip": "8.8.8.8",
"success": true
}
Как работает ограничение запросов?
Наш API использует алгоритм token-bucket для ограничения запросов. У каждого эндпоинта есть определённое количество токенов, которые пополняются с фиксированной скоростью за период. При выполнении запроса используется один токен из соответствующего бакета. Если токены закончились, вы получите ответ 429 Too Many Requests с заголовком Retry-After, указывающим, когда можно повторить запрос.
Как обрабатываются ошибки?
Если запрос не удался, мы возвращаем JSON-ответ с полем "success", установленным в false, и полем "error", содержащим сообщение с описанием проблемы. Всегда проверяйте поле "success" перед обработкой данных ответа.
Если поле не применимо к конкретному IP-адресу (например, "city" для IP, который определяется только до страны), оно будет возвращено как null.
FAQ
Этот API действительно бесплатный?
Конечно! Наш API полностью бесплатен с щедрыми лимитами запросов. Мы не требуем API-ключ или какую-либо аутентификацию.
Откуда вы берёте данные геолокации?
Мы используем сочетание публичных и частных источников данных, включая базы данных GeoIP2 от MaxMind, чтобы обеспечить максимально широкий охват.
Можно ли использовать этот API в коммерческих целях?
Да, вы можете использовать наш API как для личных, так и для коммерческих проектов без ограничений.
Что делать, если я столкнулся с ошибкой?
Если у вас возникли проблемы или есть вопросы, свяжитесь с нами через нашу форму поддержки.
Есть ли платный тариф или более высокие лимиты?
В настоящее время у нас нет платного тарифа. Возможно, мы рассмотрим его в будущем при достаточном спросе, но сейчас хотим сохранить API бесплатным для всех. Для увеличения лимитов вы можете связаться с нами и описать ваш сценарий использования через нашу форму поддержки.
У меня есть предложение по новой функции или эндпоинту. Как поделиться?
Мы приветствуем отзывы и предложения. Пожалуйста, поделитесь своими идеями через нашу форму обратной связи.
Как часто обновляются данные геолокации?
Мы обновляем данные геолокации по мере появления новых данных.
Можно ли использовать другие языки программирования, кроме указанных?
Да, вы можете использовать любой язык программирования, который умеет выполнять HTTP-запросы для взаимодействия с нашим API. Примеры приведены лишь для старта.
У меня есть другой вопрос, которого здесь нет.
Если у вас есть другие вопросы, пожалуйста, свяжитесь с нами через нашу форму поддержки. Мы готовы помочь.