IP-геолокация API: страна, город и провайдер по IP
Геолокация IPv4 и IPv6 по базам MaxMind GeoLite2: страна, регион, город, индекс, координаты, часовой пояс и автономная система. Формат ответа совместим с ipinfo.io.
| Эндпоинт | Что делает |
|---|---|
GET /v1/ipinfo/{ip} |
Геолокация указанного IP |
GET /v1/ipinfo |
Геолокация IP, с которого пришёл запрос |
POST /v1/ipinfo/batch |
Геолокация до 100 IP за один запрос |
Все запросы — с ключом в заголовке Authorization: Bearer <ключ> (см. Аутентификация).
Полная схема — в справочнике proxy.seyka.ru/api-docs.
Один IP
Заголовок раздела «Один IP»GET /v1/ipinfo/{ip} — IP-адрес в пути, IPv4 или IPv6.
curl "https://proxy.seyka.ru/v1/ipinfo/8.8.8.8" \ -H "Authorization: Bearer $SEYKA_API_KEY"const res = await fetch('https://proxy.seyka.ru/v1/ipinfo/8.8.8.8', { headers: { Authorization: `Bearer ${process.env.SEYKA_API_KEY}` },});const info = await res.json();console.log(info.country, info.city, info.org);import osimport httpx
r = httpx.get( "https://proxy.seyka.ru/v1/ipinfo/8.8.8.8", headers={"Authorization": f"Bearer {os.environ['SEYKA_API_KEY']}"},)print(r.json()){ "ip": "8.8.8.8", "city": "Mountain View", "region": "California", "country": "US", "loc": "37.4056,-122.0775", "org": "AS15169 Google LLC", "postal": "94043", "timezone": "America/Los_Angeles"}Поля ответа
Заголовок раздела «Поля ответа»| Поле | Что это |
|---|---|
ip |
Запрошенный адрес — единственное обязательное поле |
country |
Код страны ISO 3166-1 |
region |
Регион (субъект, штат) на английском |
city |
Город на английском |
postal |
Почтовый индекс |
loc |
Координаты широта,долгота |
timezone |
Часовой пояс IANA |
org |
Автономная система: AS<номер> <организация> |
Поля, которых нет в базе, в ответе отсутствуют. Для адресов, которые в базе не описаны (например, частных
10.x, 192.168.x), приходит только ip.
IP вызывающего
Заголовок раздела «IP вызывающего»GET /v1/ipinfo определяет адрес, с которого пришёл запрос, — удобно для проверки, через какой IP ходит
ваш сервер или прокси. Ответ — в том же формате.
curl "https://proxy.seyka.ru/v1/ipinfo" \ -H "Authorization: Bearer $SEYKA_API_KEY"Адрес берётся из первого значения X-Forwarded-For (или из X-Real-IP); если определить его не удалось,
приходит 400.
POST /v1/ipinfo/batch принимает до 100 адресов в поле ips и возвращает объект, где ключ — адрес.
curl -X POST "https://proxy.seyka.ru/v1/ipinfo/batch" \ -H "Authorization: Bearer $SEYKA_API_KEY" \ -H "Content-Type: application/json" \ -d '{"ips": ["8.8.8.8", "77.88.8.8", "not-an-ip"]}'{ "results": { "8.8.8.8": { "ip": "8.8.8.8", "country": "US", "city": "Mountain View", "org": "AS15169 Google LLC" }, "77.88.8.8": { "ip": "77.88.8.8", "country": "RU", "city": "Moscow", "org": "AS13238 YANDEX LLC" }, "not-an-ip": null }}- Адрес, который не удалось разобрать, или сбой чтения базы для него дают
null; адрес без данных в базе получает объект только сip. Остальные отвечают как обычно. - Повторяющиеся адреса схлопываются в один ключ.
- Пакет оплачивается как один вызов, независимо от числа адресов.
400— некорректный IP в пути, пустойips: []или больше 100 адресов;422— в теле нет поляips.404— сбой чтения базы для адреса (редко; адрес без данных отвечает200только сip).503— базы геолокации ещё загружаются; повторите позже.
Остальные коды — в разделе Ошибки.
Каждый вызов оплачивается отдельно, включая пакет. Ставки — на странице Цены.