Бесплатный API для поиска по IP
Передайте IP-адрес — получите его страну, город, оператора сети и признак принадлежности к дата-центру или VPN. Без API-ключа. Без регистрации. Бесплатно.
- Без ключа — вызывайте прямо сейчас, откуда угодно
- CORS — работает из браузерного JavaScript
- 60/min — на клиента, квоту покупать не нужно
- JSON — стабильный набор полей, ключи не пропадают
Попробовать
Это ваш собственный 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
}
| Поле | Тип | Значение |
|---|---|---|
ip | string | Адрес, по которому выполнялся поиск. |
is_vpn | bool | null | true, если адрес принадлежит известному диапазону дата-центра или VPN. null означает, что проверку выполнить не удалось, — это не false. |
provider | string | Оператор сети, если известен. |
country | string | Название страны на английском. |
country_code | string | Двухбуквенный код ISO 3166-1. |
city | string | Название города, если известно. |
lat, lon | float | 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 | Когда |
|---|---|---|
| 400 | invalid_ip | Сегмент пути не является корректным адресом IPv4 или IPv6. |
| 405 | method_not_allowed | Любой метод, кроме GET, HEAD и OPTIONS. |
| 429 | rate_limited | Лимит превышен. Соблюдайте заголовок Retry-After. |
Разумное использование
- Бесплатно для личного и коммерческого использования. Указание источника не требуется, но ссылке мы всегда рады.
- Где можно, кэшируйте результаты у себя. Геолокация не меняется каждую минуту.
- Мы кэшируем каждый адрес на час, поэтому повторные запросы одного и того же IP дёшевы для обеих сторон.
- Мы не ведём никаких записей о запрашиваемых вами адресах, кроме обычных журналов доступа веб-сервера.
- Это бесплатный сервис без гарантий доступности. Не стройте на нём ничего критичного для безопасности.
Посмотреть API, на котором работает наш VPN-чекер Или просто встройте инструмент