API ドキュメント

すべての API は IPv4 / IPv6 に対応し、登録なしで利用できます。API キーを使うと上限が上がります。ベース URL: https://bgp.cx

クイックスタート

bash
$ curl https://bgp.cx/api/ip/8.8.8.8
{
  "ip": "8.8.8.8",
  "version": 4,
  "country": "United States",
  "country_code": "US",
  "region": "California",
  "timezone": "America/Chicago",
  "isp": "Google LLC",
  "asn": 15169,
  "asn_organization": "Google LLC",
  "network": "8.8.8.0/24"
}

コマンドライン

curl・wget・PowerShell・HTTPie などからのアクセスには自動でテキストを返します。

コマンド説明
curl https://bgp.cx
自分の IP
curl -4 https://bgp.cx
IPv4 を指定
curl -6 https://bgp.cx
IPv6 を指定
curl https://bgp.cx/info
自分の IP の詳細
curl https://bgp.cx/ip/1.1.1.1
指定 IP を検索
curl https://bgp.cx/ip/github.com
ドメインを検索(自動解決)
curl https://bgp.cx/asn/4134
ASN とプレフィックスを検索
wget -qO- https://bgp.cx
wget
irm https://bgp.cx/api/ip
PowerShell

JSON API

GET/api/ip · /api/ip/{ip|domain}

統合結果を JSON で返します。引数なしならアクセス元を検索します。旧パス /geoip、/json も利用できます。

GET/api/lookup?q={ip|domain}

完全な結果:info は検索結果、resolved はドメインの解決結果です。

GET/ip · /jsonip

アクセス元 IP のみを、テキストまたは {"ip":"…"} で返します。

ASN

GET/asn/{asn} · /api/asn/{asn}

ASN の名称・ドメイン・国・ネットワーク種別と広報プレフィックスを返します。family=4 または 6 でプロトコルを絞り込み、limit(最大 10000)と offset でページングします。{asn} は 4134 でも AS4134 でも構いません。

curl "https://bgp.cx/api/asn/4134?family=4&limit=100&offset=0"

レスポンス項目

項目説明
ip / versionIP アドレス / 4 または 6
country / country_code国・地域名 / ISO 3166 コード
region / region_code都道府県・州
city / district都市 / 区・郡
continent_en / country_en / region_en / city_en / district_en英語の地名(リクエスト言語が英語以外で、データに英語名がある場合)
isp / organization回線事業者 / 組織
asn / asn_organization / asn_domainAS 番号 / AS 名 / AS ドメイン
usage_type利用種別:Broadband、Mobile、DataCenter、Cloud、CDN、VPN、Spider、AICrawler、Business、Education など
area_code / city_code / phone_code行政区画コード / 市外局番 / 国際電話番号
country_alpha3 / flagISO 3166-1 alpha-3 コード / 国旗
currency / currency_name / languages通貨コード / 通貨名 / 言語
networkネットワーク(CIDR)
latitude / longitudeおおよその緯度経度(都市と一致する場合のみ)
timezone / continentタイムゾーン / 大陸
scope非公開アドレスの種別:private、loopback、cgnat、reserved など

データのないフィールドは結果に含まれません。返されるフィールドは API プランによって異なります(各プランはデータベースのエディションのフィールドに対応、価格ページ参照)。キーなしの場合はサイトの設定に従います。

単一フィールド API

GET/ip/{ip}/{field}

1 つの値だけをテキストで返します(スクリプト向け)。上記の項目に加え、location(所在地全体)と loc("緯度,経度")も使えます。{ip} に me を指定すると自分の IP を検索します。

curl https://bgp.cx/ip/me/country

共通パラメータ

パラメータ説明
lang結果の言語:zh-CN、en、ja、de、fr、ru、es、pt-BR
formatjson または text で形式を指定
prettyJSON を整形して出力
callbackJSONP コールバック名
keyAPI キー(検索のみ)。Authorization: Bearer ヘッダーを推奨

すべての JSON API はクロスオリジンに対応しています(Access-Control-Allow-Origin: *)。

API キーと上限

キーなしは IP ごと(IPv6 は /64 単位)、キーありはアカウントごとにプランの上限が適用されます。超過すると 429 と Retry-After ヘッダーを返します。

curl -H "Authorization: Bearer ipk_xxx" https://bgp.cx/api/ip/1.1.1.1

レート制限と上限

API キー付きのリクエストはアカウント単位で計測され、毎分のリクエスト数と 1 日のクエリ数は API プラン(有料プランがない場合は無料版の枠)で決まり、0 時にリセットされます。キーなしのリクエストは IP(IPv6 は /64)ごとに毎分の回数が制限され、サイトによっては 1 日の回数も制限されます。超過すると 429 を返し、Retry-After に待機秒数が入ります。

レスポンスヘッダー説明
X-RateLimit-Limit毎分のリクエスト上限
X-Quota-Limit1 日の検索上限(無制限時は省略)
X-Quota-Remaining本日の残り検索数

データベース

GET/api/databases

エディション一覧。<code>editions</code> は公開中の全エディションとフィールド。API キー付きの場合 <code>downloads</code> にダウンロード可能なエディションとファイル(名前・形式・サイズ・SHA-256・ビルド日時)が含まれます。

GET/dl/{file}

購入済みエディションのファイルをダウンロードします。{file} はファイル名(例:ipdb-insight.mmdb、ipdb-insight-v4.xdb)。API キーは Authorization: Bearer ヘッダーで送信。Range による再開に対応し、再カウントされません。

curl -LOJ -C - -H "Authorization: Bearer ipk_xxx" https://bgp.cx/dl/ipdb-insight.mmdb

アカウントは本人専用です。1 日にダウンロードできるネットワーク(IPv4 アドレス / IPv6 /64)の数に上限があり、ウェブで発行したリンクは発行元のネットワークでのみ有効です。

オフライン DB のフィールド、ファイル形式、コード例は データベース文書 をご覧ください。

パスと WAF

検索とダウンロードはすべて固定プレフィックスを使うため、WAF / CDN でパス単位の許可リストやキャッシュ規則を設定できます。互換性のため /{ip} のようなルートパスも使えます(ブラウザは /ip/ にリダイレクト)。管理者は無効にできます。

パスプレフィックス説明
/ip/IP / ドメイン検索ページ、テキスト、単一フィールド
/asn/ASN ページとテキスト
/api/JSON API(スクリプトから頻繁に呼ばれるためチャレンジをかけないでください)
/dl/データベースファイルのダウンロード(大きいのでキャッシュしない)

エラー

ステータス意味
400IP・ドメインが無効、またはドメインを解決できません
401API キーが無効、またはダウンロード時に認証情報がありません
403このデータベースへの権限がない、または回数・ネットワーク数の上限に達しました
404見つかりません
429リクエストが多すぎます

エラーは {"error":"…","code":400} 形式、ターミナルには error: … のテキストで返します。