Перейти к основному содержанию
GET
/
v1
API геолокации IP
curl --request GET \
  --url https://ipgeolocation.cleariflow.com/v1
{
    "ip_address": "80.255.13.30",
    "city": null,
    "city_geoname_id": null,
    "region": null,
    "region_iso_code": null,
    "region_geoname_id": null,
    "postal_code": null,
    "country": "Germany",
    "country_code": "DE",
    "country_geoname_id": 2921044,
    "country_is_eu": true,
    "continent": "Europe",
    "continent_code": "EU",
    "continent_geoname_id": 6255148,
    "longitude": 9.491,
    "latitude": 51.2993,
    "security": {
        "is_vpn": true,
        "is_proxy": false,
        "vpn_provider": "NordVPN"
    },
    "timezone": {
        "name": "Europe/Berlin",
        "abbreviation": "CEST",
        "gmt_offset": 2,
        "current_time": "21:21:22",
        "is_dst": true
    },
    "flag": {
        "emoji": "🇩🇪",
        "unicode": "U+1F1E9 U+1F1EA",
        "png": "https://static.cleariflow.com/country-flags/DE_flag.png",
        "svg": "https://static.cleariflow.com/country-flags/DE_flag.svg"
    },
    "currency": {
        "currency_name": "Euros",
        "currency_code": "EUR"
    },
    "connection": {
        "autonomous_system_number": 201011,
        "autonomous_system_organization": "Core-Backbone GmbH",
        "connection_type": null,
        "isp_name": null,
        "organization_name": null
    }
}
API работает предельно просто: передайте API-ключ и IP-адрес — вы получите полные данные о местоположении: почтовые индексы, города, регионы, страны и точные координаты широты/долготы.

Начало работы

REST-архитектура

Как и все API Cleariflow, API геолокации IP следует принципам REST: предсказуемые URL, ориентированные на ресурсы, и HTTP-коды статуса для ошибок.

Безопасность HTTPS

Все соединения с API геолокации IP должны быть защищены TLS 1.2 или выше.

Версионирование API

Все API Cleariflow версионируются. API геолокации IP сейчас на версии 1.

Аутентификация с API-ключом

API-ключ — уникальные учётные данные для доступа к API геолокации IP Cleariflow. У каждого API Cleariflow свой ключ, поэтому для IP Geolocation и Email Validation нужны разные ключи. Для аутентификации добавьте ключ к базовому URL.

Базовый URL

https://ipgeolocation.cleariflow.com/v1/

Эндпоинт геолокации

API геолокации IP Cleariflow требует только ваш уникальный API-ключ и автоматически определяет IP-адрес клиента, с которого пришёл запрос. Альтернативно можно передать параметр «ip_address» для анализа конкретного IP:
https://ipgeolocation.cleariflow.com/v1/
? api_key = YOUR_UNIQUE_API_KEY
& ip_address = 94.198.41.118 (optional)
Успешный запрос — ниже IP-адрес и связанные данные:
{
    "ip_address": "80.255.13.30",
    "city": null,
    "city_geoname_id": null,
    "region": null,
    "region_iso_code": null,
    "region_geoname_id": null,
    "postal_code": null,
    "country": "Germany",
    "country_code": "DE",
    "country_geoname_id": 2921044,
    "country_is_eu": true,
    "continent": "Europe",
    "continent_code": "EU",
    "continent_geoname_id": 6255148,
    "longitude": 9.491,
    "latitude": 51.2993,
    "security": {
        "is_vpn": true,
        "is_proxy": false,
        "vpn_provider": "NordVPN"
    },
    "timezone": {
        "name": "Europe/Berlin",
        "abbreviation": "CEST",
        "gmt_offset": 2,
        "current_time": "21:21:22",
        "is_dst": true
    },
    "flag": {
        "emoji": "🇩🇪",
        "unicode": "U+1F1E9 U+1F1EA",
        "png": "https://static.cleariflow.com/country-flags/DE_flag.png",
        "svg": "https://static.cleariflow.com/country-flags/DE_flag.svg"
    },
    "currency": {
        "currency_name": "Euros",
        "currency_code": "EUR"
    },
    "connection": {
        "autonomous_system_number": 201011,
        "autonomous_system_organization": "Core-Backbone GmbH",
        "connection_type": null,
        "isp_name": null,
        "organization_name": null
    }
}

Параметры запроса

api_key
String
обязательно
Ваш уникальный API-ключ. У каждого пользователя уникальные ключи для каждого API Cleariflow, поэтому ключ IP Geolocation не будет работать, например, с API проверки email.
ip_address
String
IP-адрес для геолокации. Поддерживаются IPv4 и IPv6. Если параметр не указан, сервис геолокализирует IP-адрес, с которого был сделан запрос.
fields
String
Список верхнеуровневых ключей для возврата через запятую (например, ?fields=country,security). Для флагов VPN/прокси используйте security — возвращается весь объект (is_vpn, is_proxy и vpn_provider при наличии). Вложенные ключи вроде только is_vpn не поддерживаются.

Параметры ответа

Ответ API возвращается в универсальном лёгком формате JSON.
ip_address
String
IP-адрес, переданный для геолокации.
city
String
Название города.
city_geoname_id
String
Geoname ID города.
region
String
Штат или провинция, в которой находится город.
region_iso_code
Char[2]
ISO 3166-2 код штата или провинции.
region_geoname_id
String
Geoname ID штата или провинции.
postal_code
String
Почтовый индекс.
country
String
Название страны.
country_code
Char[2]
ISO 3166-1 alpha-2 код страны.
country_geoname_id
String
Geoname ID страны.
country_is_eu
Boolean
true, если страна в ЕС, иначе false.
continent
String
Название континента.
continent_code
Char[2]
2-буквенный код континента: AF, AS, EU, NA, OC, SA, AN.
continent_geoname_id
String
Geoname ID континента.
longitude
Float
Долгота в десятичном формате.
latitude
Float
Широта в десятичном формате.
security.is_vpn
Boolean
true, когда IP совпадает с перечисленной базой VPN exit-node (IP-to-VPN MMDB).
security.is_proxy
Boolean
true, когда IP совпадает с базой прокси (IP-to-VPN MMDB).
security.vpn_provider
String
Название VPN-сервиса из MMDB (например, NordVPN). Опускается, когда is_vpn равен false.
timezone.name
String
Название часового пояса из базы IANA Time Zone Database.
timezone.abbreviation
String
Аббревиатура часового пояса из базы IANA Time Zone Database.
timezone.gmt_offset
String
Смещение часового пояса относительно GMT.
timezone.current_time
String
Текущее время в локальном часовом поясе.
timezone.is_dst
Boolean
true, если в данный момент действует летнее время (DST).
flag.svg
String
Ссылка на размещённый флаг страны в формате SVG.
flag.png
String
Ссылка на размещённый флаг страны в формате PNG.
flag.emoji
String
Флаг страны в виде эмодзи.
flag.unicode
String
Флаг страны в unicode.
currency.currency_name
String
Название валюты.
currency.currency_code
String
Код валюты в формате ISO 4217.
connection.connection_type
String
Выводится из названия организации ASN (например, Cellular, Cable/DSL, Corporate, Cloud, Hosting). VPN и прокси указываются в security, а не здесь.
connection.autonomous_system_number
Uint32
Номер автономной системы.
connection.autonomous_system_organization
String
Название организации автономной системы.
connection.isp_name
String
Название интернет-провайдера (ISP).
connection.organization_name
String
Название организации.

Ограничение полей ответа

Можно получать только выбранные поля из JSON-ответа. Для этого передайте в query-параметрах fields со списком верхнеуровневых ключей через запятую. Например, запрос только страны и города IP выглядит так:
https://ipgeolocation.cleariflow.com/v1/
    ? api_key = YOUR_API_KEY
    & ip_address = 94.198.41.122
    & fields = country,city
Ответ будет таким:
{
    "city": "Vienna",
    "country": "Austria"
}

Сценарии использования

Геолокация посетителя сайта

Для запроса геолокации по IP-адресу включите ваш уникальный API-ключ в шаблон ниже. Обратите внимание: знать IP посетителя для запроса не обязательно.
$.getJSON("https://ipgeolocation.cleariflow.com/v1/?api_key=YOUR_UNIQUE_API_KEY", function(data) {
   console.log(data.ip_address);
   console.log(data.country);
})
Этого достаточно для получения геолокации и других данных о посетителе! Единственный обязательный параметр — ваш уникальный API-ключ.

Коды ответов и ошибок

При неудачном запросе ошибка также возвращается в JSON с кодом и описанием — подробности ниже.
CodeTypeDetails
200OKВсё прошло как ожидалось.
204OKНет данных о местоположении для переданного IP.
400Bad requestНекорректный запрос.
401UnauthorizedЗапрос не принят. Обычно из-за отсутствующего или неверного API-ключа.
422Quota reachedЗапрос прерван из-за недостатка API-кредитов. (Бесплатные тарифы)
429Too many requestsЗапрос прерван из-за достижения лимита запросов в секунду. На бесплатных тарифах — до 1 запроса в секунду.
500Internal server errorЗапрос не выполнен из-за ошибки на стороне сервера.
503Service unavailableСервер был недоступен.

Коды стран

Ниже список двухбуквенных ISO 3166 Alpha 2 кодов стран, используемых в ответе. Список в CSV.
Название страныКод страны
АфганистанAF
АлбанияAL
АлжирDZ
Американское СамоаAS
АндорраAD
АнголаAO
АнгильяAI
Антигуа и БарбудаAG
АргентинаAR
АрменияAM
АрубаAW
АвстралияAU
АвстрияAT
АзербайджанAZ
БахрейнBH
БангладешBD
БарбадосBB
БеларусьBY
БельгияBE
БелизBZ
БенинBJ
БермудыBM
БутанBT
БоливияBO
Босния и ГерцеговинаBA
БотсванаBW
БразилияBR
Британские Виргинские островаVG
БрунейBN
БолгарияBG
Буркина-ФасоBF
БурундиBI
Кабо-ВердеCV
КамбоджаKH
КамерунCM
КанадаCA
Каймановы островаKY
ЦАРCF
ЧадTD
ЧилиCL
КитайCN
КолумбияCO
КоморыKM
КонгоCG
ДР КонгоCD
Острова КукаCK
Коста-РикаCR
Кот-д’ИвуарCI
ХорватияHR
КубаCU
КюрасаоCW
КипрCY
ЧехияCZ
ДанияDK
ДжибутиDJ
ДоминикаDM
Доминиканская РеспубликаDO
Восточный ТиморTL
ЭквадорEC
ЕгипетEG
СальвадорSV
Экваториальная ГвинеяGQ
ЭритреяER
ЭстонияEE
ЭсватиниSZ
ЭфиопияET
Фолклендские островаFK
Фарерские островаFO
ФиджиFJ
ФинляндияFI
ФранцияFR
Французская ГвианаGF
Французская ПолинезияPF
ГабонGA
ГамбияGM
ГрузияGE
ГерманияDE
ГанаGH
ГибралтарGI
ГрецияGR
ГренландияGL
ГренадаGD
ГваделупаGP
ГуамGU
ГватемалаGT
ГернсиGG
ГвинеяGN
Гвинея-БисауGW
ГайанаGY
ГаитиHT
ГондурасHN
ГонконгHK
ВенгрияHU
ИсландияIS
ИндияIN
ИндонезияID
ИранIR
ИракIQ
ИрландияIE
Остров МэнIM
ИзраильIL
ИталияIT
ЯмайкаJM
ЯпонияJP
ДжерсиJE
ИорданияJO
КазахстанKZ
КенияKE
КирибатиKI
КосовоXK
КувейтKW
КыргызстанKG
ЛаосLA
ЛатвияLV
ЛиванLB
ЛесотоLS
ЛиберияLR
ЛивияLY
ЛихтенштейнLI
ЛитваLT
ЛюксембургLU
МакаоMO
МадагаскарMG
МалавиMW
МалайзияMY
МальдивыMV
МалиML
МальтаMT
Маршалловы островаMH
МартиникаMQ
МавританияMR
МаврикийMU
МайоттаYT
МексикаMX
МикронезияFM
МолдоваMD
МонакоMC
МонголияMN
ЧерногорияME
МонтсерратMS
МароккоMA
МозамбикMZ
МьянмаMM
НамибияNA
НауруNR
НепалNP
НидерландыNL
Новая КаледонияNC
Новая ЗеландияNZ
НикарагуаNI
НигерNE
НигерияNG
КНДРKP
Северная МакедонияMK
Северные Марианские островаMP
НорвегияNO
ОманOM
ПакистанPK
ПалауPW
ПанамаPA
Папуа — Новая ГвинеяPG
ПарагвайPY
ПеруPE
ФилиппиныPH
ПольшаPL
ПортугалияPT
Пуэрто-РикоPR
КатарQA
РеюньонRE
РумынияRO
РоссияRU
РуандаRW
Остров Святой ЕленыSH
Сент-Китс и НевисKN
Сент-ЛюсияLC
Сен-МартенMF
Сен-Пьер и МикелонPM
Сент-Винсент и ГренадиныVC
СамоаWS
Сан-МариноSM
Сан-Томе и ПринсипиST
Саудовская АравияSA
СенегалSN
СербияRS
СейшелыSC
Сьерра-ЛеонеSL
СингапурSG
Синт-МартенSX
СловакияSK
СловенияSI
Соломоновы островаSB
СомалиSO
ЮАРZA
Южная КореяKR
Южный СуданSS
ИспанияES
Шри-ЛанкаLK
Сен-БартелемиBL
СуданSD
СуринамSR
ШвецияSE
ШвейцарияCH
СирияSY
ТайваньTW
ТаджикистанTJ
ТанзанияTZ
ТаиландTH
БагамыBS
ТогоTG
ТонгаTO
Тринидад и ТобагоTT
ТунисTN
ТурцияTR
ТуркменистанTM
Тёркс и КайкосTC
ТувалуTV
УгандаUG
УкраинаUA
ОАЭAE
ВеликобританияGB
СШАUS
УругвайUY
Виргинские острова СШАVI
УзбекистанUZ
ВануатуVU
ВатиканVA
ВенесуэлаVE
ВьетнамVN
Уоллис и ФутунаWF
ЙеменYE
ЗамбияZM
ЗимбабвеZW

Прочее

Важная информация по биллингу: каждый обработанный IP-адрес расходует один кредит. Списание происходит за запрос, независимо от успеха ответа. Поэтому даже передача невалидного IP вроде «fda3346ds» спишет один кредит с аккаунта.