Перейти до основного вмісту
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 і перевірка email, потрібні різні ключі. Для автентифікації запитів додайте API-ключ до базового 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-ключі для кожного API Cleariflow, тому ключ IP Geolocation не працюватиме для Email Validation API, наприклад.
ip_address
String
IP-адреса для геолокації. Підтримуються адреси IPv4 і IPv6. Якщо параметр не вказано, сервіс геолокує IP-адресу, з якої надійшов запит.
fields
String
Список верхньорівневих ключів через кому (наприклад, ?fields=country,security). Для VPN/proxy використовуйте 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
ZIP або поштовий індекс.
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]
Дволітерний код континенту: 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 відповідає базі proxy (IP-to-VPN MMDB).
security.vpn_provider
String
Назва VPN-сервісу з MMDB (наприклад, NordVPN). Пропускається, коли is_vpnfalse.
timezone.name
String
Назва часового поясу з IANA Time Zone Database.
timezone.abbreviation
String
Абревіатура часового поясу з IANA Time Zone Database.
timezone.gmt_offset
String
Зміщення часового поясу від Greenwich Mean Time (GMT).
timezone.current_time
String
Поточний час у локальному часовому поясі.
timezone.is_dst
Boolean
true, якщо локація наразі в літньому часі (DST).
flag.svg
String
Посилання на розміщений прапор країни у форматі SVG.
flag.png
String
Посилання на розміщений прапор країни у форматі PNG.
flag.emoji
String
Прапор країни у вигляді emoji.
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 і proxy повідомляються в security, а не тут.
connection.autonomous_system_number
Uint32
Номер автономної системи.
connection.autonomous_system_organization
String
Назва організації автономної системи.
connection.isp_name
String
Назва інтернет-провайдера (ISP).
connection.organization_name
String
Назва організації.

Обмеження полів відповіді

Можна отримати лише кілька полів з JSON-відповіді. Для цього передайте параметр 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.
Назва країниКод країни
AfghanistanAF
AlbaniaAL
AlgeriaDZ
American SamoaAS
AndorraAD
AngolaAO
AnguillaAI
Antigua and BarbudaAG
ArgentinaAR
ArmeniaAM
ArubaAW
AustraliaAU
AustriaAT
AzerbaijanAZ
BahrainBH
BangladeshBD
BarbadosBB
BelarusBY
BelgiumBE
BelizeBZ
BeninBJ
BermudaBM
BhutanBT
BoliviaBO
Bosnia and HerzegovinaBA
BotswanaBW
BrazilBR
British Virgin IslandsVG
BruneiBN
BulgariaBG
Burkina FasoBF
BurundiBI
Cabo VerdeCV
CambodiaKH
CameroonCM
CanadaCA
Cayman IslandsKY
Central African RepublicCF
ChadTD
ChileCL
ChinaCN
ColombiaCO
ComorosKM
CongoCG
Congo Democratic RepublicCD
Cook IslandsCK
Costa RicaCR
Cote d’IvoireCI
CroatiaHR
CubaCU
CuraçaoCW
CyprusCY
CzechiaCZ
DenmarkDK
DjiboutiDJ
DominicaDM
Dominican RepublicDO
East TimorTL
EcuadorEC
EgyptEG
El SalvadorSV
Equatorial GuineaGQ
EritreaER
EstoniaEE
eSwatiniSZ
EthiopiaET
Falkland IslandsFK
Faroe IslandsFO
FijiFJ
FinlandFI
FranceFR
French GuianaGF
French PolynesiaPF
GabonGA
GambiaGM
GeorgiaGE
GermanyDE
GhanaGH
GibraltarGI
GreeceGR
GreenlandGL
GrenadaGD
GuadeloupeGP
GuamGU
GuatemalaGT
GuernseyGG
GuineaGN
Guinea-BissauGW
GuyanaGY
HaitiHT
HondurasHN
Hong KongHK
HungaryHU
IcelandIS
IndiaIN
IndonesiaID
IranIR
IraqIQ
IrelandIE
Isle of ManIM
IsraelIL
ItalyIT
JamaicaJM
JapanJP
JerseyJE
JordanJO
KazakhstanKZ
KenyaKE
KiribatiKI
KosovoXK
KuwaitKW
KyrgyzstanKG
LaosLA
LatviaLV
LebanonLB
LesothoLS
LiberiaLR
LibyaLY
LiechtensteinLI
LithuaniaLT
LuxembourgLU
MacauMO
MadagascarMG
MalawiMW
MalaysiaMY
MaldivesMV
MaliML
MaltaMT
Marshall IslandsMH
MartiniqueMQ
MauritaniaMR
MauritiusMU
MayotteYT
MexicoMX
MicronesiaFM
MoldovaMD
MonacoMC
MongoliaMN
MontenegroME
MontserratMS
MoroccoMA
MozambiqueMZ
MyanmarMM
NamibiaNA
NauruNR
NepalNP
NetherlandsNL
New CaledoniaNC
New ZealandNZ
NicaraguaNI
NigerNE
NigeriaNG
North KoreaKP
North MacedoniaMK
Northern Mariana IslandsMP
NorwayNO
OmanOM
PakistanPK
PalauPW
PanamaPA
Papua New GuineaPG
ParaguayPY
PeruPE
PhilippinesPH
PolandPL
PortugalPT
Puerto RicoPR
QatarQA
ReunionRE
RomaniaRO
RussiaRU
RwandaRW
Saint HelenaSH
Saint Kitts and NevisKN
Saint LuciaLC
Saint MartinMF
Saint Pierre and MiquelonPM
Saint Vincent and the GrenadinesVC
SamoaWS
San MarinoSM
Sao Tome and PrincipeST
Saudi ArabiaSA
SenegalSN
SerbiaRS
SeychellesSC
Sierra LeoneSL
SingaporeSG
Sint MaartenSX
SlovakiaSK
SloveniaSI
Solomon IslandsSB
SomaliaSO
South AfricaZA
South KoreaKR
South SudanSS
SpainES
Sri LankaLK
St. BartsBL
SudanSD
SurinameSR
SwedenSE
SwitzerlandCH
SyriaSY
TaiwanTW
TajikistanTJ
TanzaniaTZ
ThailandTH
The BahamasBS
TogoTG
TongaTO
Trinidad and TobagoTT
TunisiaTN
TurkeyTR
TurkmenistanTM
Turks and Caicos IslandsTC
TuvaluTV
UgandaUG
UkraineUA
United Arab EmiratesAE
United KingdomGB
United StatesUS
UruguayUY
US Virgin IslandsVI
UzbekistanUZ
VanuatuVU
Vatican City (Holy See)VA
VenezuelaVE
VietnamVN
Wallis and FutunaWF
YemenYE
ZambiaZM
ZimbabweZW

Інші примітки

Важлива інформація про тарифікацію: кожна оброблена IP-адреса списує один кредит. Тарифікація відбувається за запит, незалежно від успішності відповіді. Тому навіть передача недійсної IP-адреси на кшталт «fda3346ds» все одно списує один кредит.