メインコンテンツへスキップ
GET
/
v1
IPジオロケーションAPI
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アーキテクチャ

CleariflowのすべてのAPIと同様、IPジオロケーションAPIはRESTの原則に従います。予測可能なリソース指向のURLを採用し、エラー表示にHTTPステータスコードを使用します。

HTTPSセキュリティ

IPジオロケーションAPIとのすべての通信は、TLS 1.2以上のプロトコルで保護する必要があります。

APIバージョン管理

CleariflowのすべてのAPIにはバージョン管理が組み込まれています。IPジオロケーションAPIは現在バージョン1で稼働しています。

APIキーによる認証

APIキーは、Cleariflow IPジオロケーションAPIにアクセスするための固有の認証情報です。Cleariflowの各APIには固有のAPIキーが必要であり、IPジオロケーションとメール検証APIなど異なるサービスでは別々のキーが必要です。リクエストを認証するには、ベースURLにAPIキーを付加してください。

ベースURL

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

ジオロケーションエンドポイント

Cleariflow IPジオロケーションAPIでは、固有の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キーです。各ユーザーはCleariflowの各APIごとに固有のAPIキーを持っているため、IPジオロケーションAPIのキーはメール検証APIなどでは動作しません。
ip_address
String
ジオロケーション対象のIPアドレスです。IPv4とIPv6の両方をサポートしています。このパラメータを空白のままにすると、リクエストが送信されたIPアドレスをジオロケーションします。
fields
String
返す トップレベル キーのカンマ区切りリストです(例:?fields=country,security)。VPN/プロキシフラグを含めるには security を使用します。オブジェクト全体が返されます(存在する場合は is_vpnis_proxyvpn_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
国がEUに属する場合に 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
IPが列挙型VPN出口ノードデータベース(IP-to-VPN MMDB)に一致する場合に true です。
security.is_proxy
Boolean
IPがプロキシデータベース(IP-to-VPN MMDB)に一致する場合に true です。
security.vpn_provider
String
MMDBからのVPNサービス名です(例:NordVPN)。is_vpnfalse の場合は省略されます。
timezone.name
String
IANAタイムゾーンデータベースからのタイムゾーン名です。
timezone.abbreviation
String
IANAタイムゾーンデータベースからのタイムゾーン略称です。
timezone.gmt_offset
String
グリニッジ標準時(GMT)からのタイムゾーンオフセットです。
timezone.current_time
String
ローカルタイムゾーンの現在時刻です。
timezone.is_dst
Boolean
現在地が現在サマータイム(DST)中の場合に true です。
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レスポンスから一部のフィールドのみを受け取ることができます。そのためには、クエリパラメータに 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 reachedAPIクレジット不足のためリクエストが中止されました。(無料プラン)
429Too many requests許可された秒あたりのリクエスト数に達したためリクエストが中止されました。無料プランでは1秒あたり1リクエストに制限されています。
500Internal server errorサーバー側のエラーによりリクエストを完了できませんでした。
503Service unavailableサーバーが利用できませんでした。

国コード

以下はレスポンスで使用される2文字の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アドレスごとに1クレジットを消費します。レスポンスが成功したかどうかに関わらず、リクエスト送信ごとに課金されます。そのため、「fda3346ds」のような無効なIPアドレスを送信しても、1クレジットがアカウントから差し引かれます。