Geo & IP Lookup API
Запитуйте кількість проксі IP за країною та отримуйте детальні дані про геолокацію IP від кількох провайдерів за допомогою Geo API від FonProxy.

Для заголовків автентифікації, API ключів і формату загальних помилок дивіться API General.
Кількість проксі
Публічні кінцеві точки — автентифікація не потрібна.
Отримати кількість проксі
GET /geo/counts
Повертає доступну кількість проксі IP за країною.
Структура: counts[proxyTypeId][pool][service][countryCode] = count.
Параметри запиту
| Ім'я | Тип | Опис | Обов'язково |
|---|---|---|---|
type | string | фільтр за типом проксі (наприклад, residential-giga) | Ні |
pool | string | фільтр за іменем пулу (наприклад, default) | Ні |
noservice | boolean | згорнути рівень сервісу, повернути кількість безпосередньо за країнами | Ні |
Відповідь
За замовчуванням (з рівнем сервісу):
{
"counts": {
"residential-giga": {
"default": {
"provider-api": {
"US": 1200000,
"GB": 350000
}
}
}
}
}З ?noservice=true:
{
"counts": {
"residential-giga": {
"default": { "US": 1200000, "GB": 350000 }
}
}
}Отримати доступні країни
GET /geo/countries
Повертає коди країн, в яких доступні проксі для даного типу проксі.
Параметри запиту
| Ім'я | Тип | Опис | Обов'язково |
|---|---|---|---|
type | string | ID типу проксі | Так |
pool | string | ім'я пулу (за замовчуванням: default) | Ні |
Відповідь
{
"countries": ["AE", "AU", "BR", "DE", "GB", "US"]
}Список провайдерів даних IP
GET /geo/providers
Перераховує всіх підтримуваних провайдерів даних IP із їхнім статусом завантаження. Автентифікація не потрібна.
Відповідь
{
"providers": [
{
"id": "maxmind",
"name": "MaxMind GeoLite2",
"type": "mmdb",
"description": "ASN, місто, регіон, країна, широта/довгота, часовий пояс від MaxMind GeoLite2 баз.",
"ready": true
},
...
]
}Пошук IP
Пошук IP — усі провайдери 10 req / 30m
GET /geo/ip/:ip
Запити до усіх увімкнених баз даних IP виконуються паралельно і повертають нормалізований об'єднаний результат та сирі дані від кожного провайдера. Автентифікація є необов'язковою — автентифіковані запити мають вищий ліміт частоти.
Ліміти частоти: неавтентифіковані — 10 запитів / 30 хв (за IP клієнта). Автентифіковані (JWT або API ключ) — 30 запитів / хв. Дивіться API General для варіантів автентифікації та API Keys для управління ключами.
Bogon / приватні IP: якщо запитуваний IP — це приватна, петлева, локальна або іншим чином зарезервована адреса, API повертає
{ "ip": "...", "bogon": true }негайно — геодані не запитуються і не повертаються.
Параметри
| Ім'я | Тип | Опис | Обов'язково |
|---|---|---|---|
ip | string | IPv4 або IPv6 адреса для пошуку | Так |
Параметри запиту
| Ім'я | Тип | Опис | Обов'язково |
|---|---|---|---|
with_sources | boolean | включити сирий об'єкт sources у відповідь | Ні |
Відповідь
{
"ip": "8.8.8.8",
"normalized": {
"countryCode": "US",
"country": "Сполучені Штати",
"continent": "Північна Америка",
"region": "Каліфорнія",
"city": "Маунтін-В'ю",
"latitude": 37.386,
"longitude": -122.0838,
"timezone": "America/Los_Angeles",
"postalCode": "94043",
"asn": 15169,
"asnOrg": "GOOGLE",
"isp": "Google LLC",
"company": "Google LLC",
"asDomain": "google.com",
"prefix": "8.8.8.0/24",
"isProxy": false,
"proxyType": null,
"rir": "arin",
"rirSource": "delegation-stats"
},
"errors": {}
}Bogon / відповідь на приватний IP — коли IP є зарезервованою адресою (наприклад, 192.168.1.1, 127.0.0.1, ::1):
{
"ip": "192.168.1.1",
"bogon": true
}З ?with_sources=1 відповідь включає ключ sources з сирими даними провайдерів:
{
"ip": "8.8.8.8",
"sources": {
"maxmind": {
"asn": { "autonomousSystemNumber": 15169, "autonomousSystemOrganization": "GOOGLE", "network": "8.8.8.0/24" },
"city": { "countryCode": "US", "region": "Каліфорнія", "city": "Маунтін-В'ю", "latitude": 37.386, "longitude": -122.0838, "timezone": "America/Los_Angeles" },
"country": { "countryCode": "US", "inEu": false }
},
"ip2location": {
"db11": { "countryCode": "US", "region": "Каліфорнія", "city": "Маунтін-В'ю", "latitude": 37.3861, "longitude": -122.0839 },
"asn": { "asn": "AS15169", "isp": "Google LLC" },
"proxy": { "isProxy": false, "proxyType": "-", "usageType": "DCH", "proxyScore": 0 }
},
"rir": { "rir": "arin", "countryCode": "US", "source": "delegation-stats" }
},
"normalized": { "...": "..." },
"errors": {}
}Пріоритет поля normalized
| Поле | Пріоритет джерела |
|---|---|
countryCode | більшість голосів серед усіх провайдерів |
country | maxmind-city → ip2location-db11 → ipinfo → dbip → iplocate |
region, city, lat/lng, timezone, postalCode | maxmind-city → ip2location-db11 |
asn, asnOrg | maxmind-asn → iplocate-asn → ipinfo |
isp | ip2location-asn.isp → ip2location-proxy.isp → ipinfo.org |
company | ipinfo.asnOrg |
asDomain | ipinfo.asDomain |
prefix | iplocate-asn.prefix → maxmind-asn.network |
isProxy | ip2location-proxy.isProxy (завжди boolean, за замовчуванням false) |
proxyType | ip2location-proxy.proxyType у нижньому регістрі, null, якщо це не прокс |
rir, rirSource | провайдер rir |
errors— це мапаproviderName → errorMessageдля будь-якого провайдера, який не вдалося підключити під час пошуку.
Пошук IP — один провайдер Auth required
GET /geo/ip/:ip/:provider
Запитує тільки одного провайдера. Потрібні JWT або API ключ. Дивіться API General для автентифікації.
Bogon / приватні IP: така ж поведінка, як у кінцевої точки всіх провайдерів — повертає
{ "ip": "...", "bogon": true }без виконання запиту до провайдера.
Параметри
| Ім'я | Тип | Опис | Обов'язково |
|---|---|---|---|
ip | string | IPv4 або IPv6 адреса для пошуку | Так |
provider | string | ID провайдера — один із maxmind, ip2location, iplocate, dbip, ipinfo, rir | Так |
Параметри запиту
| Ім'я | Тип | Опис | Обов'язково |
|---|---|---|---|
with_sources | boolean | включити сирий об'єкт sources у відповідь | Ні |
Відповідь
{
"ip": "8.8.8.8",
"normalized": { "countryCode": "US", "...": "..." },
"errors": {}
}