リクエストの実行

単一のIPアドレスを、VPN、プロキシ、Tor出口ノード、ホスティング/CDN、住宅用/モバイルプロキシのいずれかに分類します。

APIエンドポイント

GET https://vpn-proxy-detection.whoisxmlapi.com/api/v1?apiKey=YOUR_API_KEY&ipAddress=185.220.101.1
登録後、アカウントが有効になるまで最大1分かかります。

Postman Collection

Postmanは、グラフィカルユーザーインターフェース(GUI)からAPIにリクエストを送信できるデスクトップおよびWebアプリケーションです。API機能を確認する場合や、アプリケーションの問題をトラブルシューティングする場合には、WhoisXML API のエンドポイントでPostman を使用することをお勧めします。

WhoisXML APIのPostman Collectionは、以下のリンクからご利用いただけます。

Postman Collectionには、事前設定済みの環境が含まれています。各リクエストを実行するには、 api_key 変数を設定する必要があります。個人用APIキーは「My products」ページで取得できます。APIに関するご質問は、こちらからお送りください。

入力パラメータ

apiKey

必須。「My products」ページで個人用APIキーを取得してください。

ipAddress

必須。分類対象のIPv4アドレス。例:/api/v1?apiKey=YOUR_API_KEY&ipAddress=185.220.101.1。

親子アカウントの子アカウントのAPIキーも同様に機能します。つまり、子アカウントのキーを使用してリクエストを行うと、親アカウントのサブスクリプションのプランのフィールドが取得されます。

出力例

{
    "ip": "185.220.101.1",
    "network": "185.220.101.0\/24",
    "classification": "tor",
    "provider": null,
    "confidence": 1.0,
    "source": "port_scan",
    "detection_method": "port_scan",
    "first_seen": "2024-01-15T08:30:00Z",
    "last_seen": "2026-06-08T08:59:09Z",
    "observation_count": 127,
    "hits_days_pct": 47.78,
    "providers_num": 0,
    "confidence_decay": 0.6650,
    "freshness_class": "current",
    "is_vpn": false,
    "is_proxy": false,
    "is_tor": true,
    "is_relay": false,
    "is_hosting": false,
    "is_cdn": false,
    "is_residential_proxy": false,
    "is_residential_proxy_high_confidence": false,
    "is_residential_proxy_mobile": false,
    "is_open_proxy": false,
    "is_corporate_vpn": false,
    "risk_score": 100,
    "asn": 60729,
    "asn_org": "TORSERVERS-NET - Stiftung Erneuerbare Freiheit, DE",
    "cdn_operator": null,
    "asn_abuse": {
        "abuse_score": 88,
        "abuse_level": "high",
        "flagged_ratio": 0.62,
        "flagged_ip_count": 1240,
        "total_announced_ips": 2000
    },
    "metadata": {
        "raw_score": null,
        "signals": null,
        "dns_enrichment": null,
        "tls_enrichment": null
    },
    "observed_location": null
}

Code: 200 OK.

出力パラメータ

ip

照会したIPv4アドレス。そのまま返されます。

network

文字列またはnull。IPアドレスが属するCIDR範囲(判明している場合)。

classification

文字列。IPアドレスの検出タイプ。

指定可能な値:vpn、corporate_vpn、proxy、hosting、cdn、tor、relay、residential_proxy、residential_proxy_likely、residential_proxy_mobile、datacenter_proxy、mobile_proxy、suspected_vpn、suspected_proxy、unknown。

provider

文字列またはnull。IPアドレスに関連付けられたプロバイダー(例:VPNブランド、住宅用プロキシネットワーク、ホスティング事業者)。プロバイダーを特定できない場合はnull。

confidence

[0, 1] の範囲の浮動小数点数、または null。分類に対する確信度:値が大きいほど、証拠の強さが高いことを示す。Pro プランでは返されるが、Intro および Starter プランでは null となる。

source

文字列。そのレコードを生成した検知方法(例:partner_feed、port_scan、proxy_enum、netflow_analysis、asn_classification)。

detection_method

文字列。sourceと同じ値(後方互換性のために残されている旧フィールド)。

first_seen

文字列(ISO 8601形式)またはnull。IPアドレスが最初に観測された日時。

last_seen

文字列(ISO 8601形式)またはnull。IPアドレスが最後に観測された日時。

observation_count

整数。IPアドレスが観測された合計回数(ヒット数)。

hits_days_pct

浮動小数点数またはnull。継続性:直近90日間の観測期間のうち、IPアドレスがアクティブなプロキシ/VPNの出口として観測された日数の割合(観測された日数 ÷ 90 × 100)。

High (>50) indicates a consistently active exit; low (<5) indicates sporadic or one-shot activity. Null when the result comes from a network-range detection with no per-IP observation history.

providers_num

整数。IPアドレスが出口として観測された、異なるプロキシ/VPNネットワークの数。2以上の場合、そのIPアドレスが複数の商用ネットワークで共有または再販されていることを示し、プロキシである可能性を強く示すシグナルとなります。0は、IPアドレス単位の列挙履歴がなく、IPアドレス範囲単位でのみ検出されていることを示します。

confidence_decay

0~1.5の浮動小数点数。複数の根拠を組み合わせたエビデンス強度スコアで、鮮度係数 × 一貫性 × 複数プロバイダーによる加算で算出されます。1.0を超える値は、複数のプロバイダーで確認され、日次でアクティブなIPアドレスであることを示します。0.0 は、個別の観測ポイントでは一度も観測されていないことを示します。0~1に正規化したスコアを使用する場合は、min(confidence_decay, 1.0) を使用してください。

freshness_class

文字列。last_seen から算出された観測データの経過期間区分。日付を計算せずにフィルタリングできます。

指定可能な値:current(過去1日以内に観測)、recent(過去1週間以内)、stale(過去90日以内)、frozen(90日より前、または観測されたことがない)。

is_vpn

Boolean. True if the classification is in {vpn, vpn_concentrator, corporate_vpn, commercial_vpn, vpn_hosting} (confirmed VPN endpoints). Does not include tor, relay, suspected_vpn, or vpn_suspect — tor/relay have dedicated booleans; suspected_vpn/vpn_suspect are corroboration-only signals that do not set is_vpn. This asymmetry with is_proxy is deliberate: suspected_proxy does set is_proxy, but suspected_vpn/vpn_suspect never set is_vpn.

is_proxy

ブール値。classificationが {proxy,datacenter_proxy,mobile_proxy,suspected_proxy} のいずれかの場合はTrue。住宅用プロキシは含まれません(is_residential_proxy を参照)。種類を問わずすべてのプロキシを対象とするには、is_proxy または is_residential_proxy を使用してください。

is_tor

ブール値。IPアドレスがTor出口ノード(classification tor)の場合はTrue。

is_relay

ブール値。classificationがrelayの場合はTrue。Apple Private Relayなどのプライバシー保護を目的としたリレーサービスを示します。is_vpn とは異なり、リレーではユーザーが接続先を選択できず、プロバイダーが運用する出口を経由してユーザーのトラフィックがルーティングされます。

is_hosting

ブール値。IPアドレスがデータセンター/ホスティングプロバイダーに属する場合はTrue。

is_cdn

ブール値。IPアドレスがコンテンツ配信ネットワーク(CDN)に属する場合はTrue。

is_residential_proxy

Boolean. True if the classification is in {residential_proxy, residential_proxy_likely, residential_proxy_mobile}. Mutually exclusive with is_proxy; use the more specific booleans below to filter further.

is_residential_proxy_high_confidence

ブール値。residential_proxy(適合率85%以上)の場合はTrue 。is_residential_proxy のサブセットです。

is_residential_proxy_mobile

ブール値。classification ==residential_proxy_mobileの場合はTrue。プロキシとして検出されたモバイル通信事業者のIPアドレスを示します。is_residential_proxy のサブセットです。

is_open_proxy

ブール値。IPアドレスが公開されているオープンプロキシのリストに掲載されている場合はTrue。is_proxyとは異なり、すべてのオープンプロキシはプロキシに該当しますが、大半のプロキシは公開リストには掲載されていません。

is_corporate_vpn

ブール値。IPアドレスがアプライアンス型VPN(Fortinet、Pulse Secure、Cisco AnyConnectなど)の場合はTrue。is_vpnのサブフラグです。

risk_score

0~100の整数。confidence × 100 で算出され、高リスクの分類タイプの場合は10が加算されます。

asn

整数またはnull。IPアドレスをアナウンスしている自律システム(AS)の番号。

asn_org

文字列またはnull。ASNに登録されている組織名。

cdn_operator

文字列またはnull。正規化されたCDN事業者のブランド名(小文字)。例:akamai、fastly、cloudflare、aws_cloudfront。classification ==cdn の場合のみnull以外の値になります。

asn_abuse

オブジェクトまたはnull。ASNレベルの不正利用スコア。すべてのプランで利用可能。Pro以上のプランでは詳細な内訳を確認できます:

abuse_score:0~100の整数。このASNの不正利用レベル(すべてのプランで利用可能)。

abuse_level:文字列。low、moderate、high、criticalのいずれか(すべてのプランで利用可能)。

flagged_ratio— float 0.0–1.0、ASN 内のフラグが立てられた IP の割合(Pro 以上)。

flagged_ip_count— 整数。フラグが立てられたIPアドレスの数(Pro以上)。

total_announced_ips— 整数。このASNによってアナウンスされたIPアドレスの総数(Proプラン以上)。

metadata

オブジェクト。追加の検出シグナルおよびエンリッチメントデータ(すべてのキーは任意):

raw_score— 予約済み;現在のすべてのプランで null です。

signals— 予約済み。現在のすべてのプランでnullとなっています。

dns_enrichment:オブジェクト。DNS PTRレコードおよび逆引きDNS(rDNS)の履歴。

tls_enrichment:オブジェクト。TLS証明書の分析情報。

observed_location

オブジェクトまたはnull。地理データ(Enterprise版のみ)。観測位置データがない場合はnullとなる。キー:

exit_country:文字列またはnull。出口IPアドレスのISO 3166-1 alpha-2国コード。

user_countries:文字列の配列またはnull。このIPアドレスのユーザーが観測された国。

user_country_count:整整数またはnull。異なるユーザー所在国の数。

observed_lat/observed_lon:数値またはnull。観測された出口地点の座標。

observed_countries:文字列の配列。このコンセントレーターが観測された国。

observation_readings:文字列またはnull。観測に関するメタデータ。

無料アクセス

登録後、クエリ数1,000件まで利用できる無料プランが自動的に適用されます。

レート制限

APIリクエストには、APIキーごとに60秒間のスライディングウィンドウ方式でレート制限が適用されます。上限はご利用のプランによって異なります。

はじめに、および無料会員登録後の検索機能

120リクエスト/分

Starter

120リクエスト/分

Pro

150リクエスト/分

Scale

250リクエスト/分

ビジネス

500リクエスト/分

Enterprise

10,000リクエスト/分(すべてのエンタープライズキーで同じ一律の上限が適用されます)


月間クエリクレジットは別途設定されており、価格ページで確認できます。

上限を超えると、APIは標準のエラー形式とRetry-After / X-RateLimit-Resetヘッダーを含むHTTP429を返します。再試行する前に、Retry-Afterで指定された秒数だけ待機してください。

{"error": {"code": "rate_limited", ...}}

このAPIでは、より高速なクエリ処理を可能にする専用ロードバランサーとプレミアムエンドポイントも、Premium API ServicesおよびEnterprise API Packagesの一部としてご利用いただけます。