Geo & IP Lookup API

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

Updated 2026-04-12 14:32:00
Geo & IP Lookup API

Для заголовків автентифікації, API ключів і формату загальних помилок дивіться API General.

Кількість проксі

Публічні кінцеві точки — автентифікація не потрібна.

Отримати кількість проксі

GET /geo/counts

Повертає доступну кількість проксі IP за країною. Структура: counts[proxyTypeId][pool][service][countryCode] = count.

Параметри запиту

Ім'яТипОписОбов'язково
typestringфільтр за типом проксі (наприклад, residential-giga)Ні
poolstringфільтр за іменем пулу (наприклад, default)Ні
noservicebooleanзгорнути рівень сервісу, повернути кількість безпосередньо за країнамиНі

Відповідь

За замовчуванням (з рівнем сервісу):

{
  "counts": {
    "residential-giga": {
      "default": {
        "provider-api": {
          "US": 1200000,
          "GB": 350000
        }
      }
    }
  }
}

З ?noservice=true:

{
  "counts": {
    "residential-giga": {
      "default": { "US": 1200000, "GB": 350000 }
    }
  }
}

Отримати доступні країни

GET /geo/countries

Повертає коди країн, в яких доступні проксі для даного типу проксі.

Параметри запиту

Ім'яТипОписОбов'язково
typestringID типу проксіТак
poolstringім'я пулу (за замовчуванням: 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 } негайно — геодані не запитуються і не повертаються.

Параметри

Ім'яТипОписОбов'язково
ipstringIPv4 або IPv6 адреса для пошукуТак

Параметри запиту

Ім'яТипОписОбов'язково
with_sourcesbooleanвключити сирий об'єкт 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більшість голосів серед усіх провайдерів
countrymaxmind-city → ip2location-db11 → ipinfo → dbip → iplocate
region, city, lat/lng, timezone, postalCodemaxmind-city → ip2location-db11
asn, asnOrgmaxmind-asn → iplocate-asn → ipinfo
ispip2location-asn.isp → ip2location-proxy.isp → ipinfo.org
companyipinfo.asnOrg
asDomainipinfo.asDomain
prefixiplocate-asn.prefix → maxmind-asn.network
isProxyip2location-proxy.isProxy (завжди boolean, за замовчуванням false)
proxyTypeip2location-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 } без виконання запиту до провайдера.

Параметри

Ім'яТипОписОбов'язково
ipstringIPv4 або IPv6 адреса для пошукуТак
providerstringID провайдера — один із maxmind, ip2location, iplocate, dbip, ipinfo, rirТак

Параметри запиту

Ім'яТипОписОбов'язково
with_sourcesbooleanвключити сирий об'єкт sources у відповідьНі

Відповідь

{
  "ip": "8.8.8.8",
  "normalized": { "countryCode": "US", "...": "..." },
  "errors": {}
}