Бесплатный 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);
Пример ответа
{
"region": "California",
"region_iso": "CA",
"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. Примеры приведены лишь для старта.
Что делать, если я столкнулся с ошибкой?
Если у вас возникли проблемы или есть вопросы, свяжитесь с нами через нашу форму поддержки.
У меня есть предложение по новой функции или эндпоинту. Как поделиться?
Мы приветствуем отзывы и предложения. Пожалуйста, поделитесь своими идеями через нашу форму обратной связи.
У меня есть другой вопрос, которого здесь нет.
Если у вас есть другие вопросы, пожалуйста, свяжитесь с нами через нашу форму поддержки. Мы готовы помочь.