Бесплатный API для поиска по IP

Передайте IP-адрес — получите его страну, город, оператора сети и признак принадлежности к дата-центру или VPN. Без API-ключа. Без регистрации. Бесплатно.

Попробовать

Это ваш собственный IP, полученный из API в момент загрузки этой страницы:

Загрузка...

Эндпоинты

GET https://www.unblockmaster.com/api/v1/ip

Ищет собственный IP-адрес вызывающего.

curl https://www.unblockmaster.com/api/v1/ip

GET https://www.unblockmaster.com/api/v1/ip/<ip>

Ищет любой адрес IPv4 или IPv6.

curl https://www.unblockmaster.com/api/v1/ip/8.8.8.8

Ответ

{
  "ip": "8.8.8.8",
  "is_vpn": true,
  "provider": "Google LLC",
  "country": "United States",
  "country_code": "US",
  "city": "Mountain View",
  "lat": 37.4056,
  "lon": -122.0775
}
ПолеТипЗначение
ipstringАдрес, по которому выполнялся поиск.
is_vpnbool | nulltrue, если адрес принадлежит известному диапазону дата-центра или VPN. null означает, что проверку выполнить не удалось, — это не false.
providerstringОператор сети, если известен.
countrystringНазвание страны на английском.
country_codestringДвухбуквенный код ISO 3166-1.
citystringНазвание города, если известно.
lat, lonfloat | nullПримерные координаты города, а не устройства.

Все поля присутствуют всегда. Если значения у нас нет, это пустая строка или null, но не отсутствующий ключ — так что читать ответ можно без проверки каждого поля.

Из JavaScript

const res = await fetch("https://www.unblockmaster.com/api/v1/ip");
const data = await res.json();

if (data.is_vpn === true) {
  console.log("Visitor is behind a VPN or proxy");
} else if (data.is_vpn === false) {
  console.log("Visitor is on a residential connection");
} else {
  console.log("Could not determine");  // upstream was unavailable
}

Из Python

import requests

r = requests.get("https://www.unblockmaster.com/api/v1/ip/1.1.1.1", timeout=5)
print(r.json()["country"])  # Australia

Лимиты и ошибки

Лимит — 60 запросов в минуту на клиента. Каждый успешный ответ содержит X-RateLimit-Limit и X-RateLimit-Remaining, поэтому снизить темп можно заранее, а не постфактум.

СтатусerrorКогда
400invalid_ipСегмент пути не является корректным адресом IPv4 или IPv6.
405method_not_allowedЛюбой метод, кроме GET, HEAD и OPTIONS.
429rate_limitedЛимит превышен. Соблюдайте заголовок Retry-After.

Разумное использование

Посмотреть API, на котором работает наш VPN-чекер Или просто встройте инструмент