API 參考
簡單一致的端點。CORS 已開放。無需驗證。完整多語言支援 —— 每個欄位的鍵與值都會翻譯成 10 種以上的語言。
基礎 URL
快速開始
終端機捷徑:當請求來自 curl、Wget 或 HTTPie 時(透過 User-Agent 偵測),curl ipto.to 或 curl ipto.to/8.8.8.8(不需要 https:// 或 /v1/ip/)也同樣有效。它回傳的是較精簡、類似 ipinfo.io 風格的欄位集合(ip、country、city、asn、org 等),並非下方完整的結構描述 — 若需要本頁記載的完整回應,請直接使用 /v1/ip 路徑。
純 IP:curl ipto.to/ip(或直接在瀏覽器開啟)只會以純文字回傳您自己的 IP 地址 — 73.9.114.155,沒有 JSON,也沒有頁面外觀。與 ipinfo.io/ip 完全對應。詳見下方 GET /ip。
預設支援多語言:將 ?lang= 設為任何支援的代碼,回應中的每個 JSON 鍵與值都會翻譯回來 — 不只是國家/大陸。完整語言列表與 &localize=0 退出選項請見下方的 在地化。
Lookup Lab
建構任何 ipto 請求,複製成你所用語言可直接執行的程式碼,或直接在此送出並查看即時回應。免費方案不需要金鑰。
MCP 伺服器
ipto 也可作為 MCP(Model Context Protocol)工具伺服器使用 — 將 Claude Desktop、Cursor 或任何支援 MCP 的用戶端指向下方端點,即可取得 14 個可呼叫的工具:ip_lookup、bulk_ip_lookup(Pro/Enterprise)、asn_lookup、country_lookup、reverse_dns_lookup、user_agent_parse、phone_lookup、email_lookup、fraud_score、language_detect、currency_convert、weather_lookup、trademark_lookup,以及 patent_lookup。採用 JSON-RPC 2.0 over Streamable HTTP — 僅支援 POST,不需要 session 或 SSE。驗證方式與 REST API 相同:免費方案可省略(每日依 IP 限 1,000 次請求),或在端點 URL 後方加上 ?api_key=。
若用戶端僅支援 stdio,可透過以下方式橋接:npx mcp-remote https://ipto.to/mcp
端點
只會以純文字(Content-Type: text/plain)回傳發出請求的客戶端本身的公開 IP 地址 — 例如 73.9.114.155。與 ipinfo.io/ip 完全對應:無論透過 curl、Wget、HTTPie,或直接以瀏覽器造訪都行為一致(不像上方的 curl ipto.to 捷徑,此路徑不做 User-Agent 偵測),在瀏覽器中開啟時只會顯示純粹的 IP,沒有任何頁面外觀。
沒有參數,也沒有查詢字串。若需要完整的地理位置/威脅情報物件,請改用下方的 GET /v1/ip。此路由會直接讀取連線的 IP(不經過 D1/KV 查詢),且不計入每日請求額度 — 詳見 請求頻率限制。
回傳發出請求之 IP 的地理位置與威脅情報,並透過 CF edge 物件提供城市級別的資料。
沒有必填參數。支援 ?lang=、?fields=、?format= — 詳見下方的在地化與輸出格式。
查詢任意 IPv4 地址。當該 IP 落在 IP2Location 或 MaxMind 這兩個合併地理資料集之一時,會填入城市級別欄位(city、state、postal_code、latitude、longitude、timezone) — 請檢查回應中的 geo_precision,以確認取得的是城市級別還是國家級別的資料。timezone 的格式取決於相符的資料來源(IP2Location 提供 UTC 偏移字串,MaxMind 提供 IANA 名稱)。IPv6 查詢目前僅回傳國家級別的資料。
| Parameter | In | Description |
|---|---|---|
ip | path | 必填。任何有效的 IPv4 或 IPv6 地址。 |
lang | query | 選填。將 country_name 與 continent 在地化:en(預設)、pt, fr, de, zh-TW, ko, zh-CN, ja-JP, es-ES, ar-SA, hi-IN。 |
fields | query | 選填。以逗號分隔要包含的欄位清單。例如 ?fields=ip,country_code,is_vpn |
format | query | 選填。回應格式:json(預設)、csv、text、xml、yaml。 |
首頁搜尋列背後所使用的統一搜尋端點。會自動偵測 :query 是 IP、ASN(AS15169 或 15169)、兩碼國家代碼、電子郵件,還是電話號碼,然後將所有相關檢查彙整成單一回應。若查詢對象是 IP,伺服器端會平行展開,同時執行主要的 IP 查詢,以及 RPKI、IP-to-company、行動業者、關聯網域與地點等查詢 — 因此單次搜尋只會消耗您每日請求額度中的一次,而不是每項功能各算一次。
| Parameter | In | Description |
|---|---|---|
query | path | 必填。可以是 IP、ASN、國家代碼、電子郵件或電話號碼。 |
| Field | Type | Description |
|---|---|---|
query | string | 解碼後收到的原始輸入。 |
detected_type | string | "ip"、"asn"、"country"、"email" 或 "phone" 其中之一。 |
ip | object|null | 當 detected_type 為 "ip" 時才會出現 — 結構與 GET /v1/ip/:ip 相同。 |
rpki | object|null | IP 查詢時才會出現 — 結構與 GET /v1/ip/:ip/rpki 相同。 |
company | object|null | IP 查詢時才會出現 — 結構與 GET /v1/ip/:ip/company 相同。 |
whois | object|null | IP 查詢時才會出現 — 結構與 GET /v1/ip/:ip/whois 相同。 |
carrier | object|null | IP 查詢時才會出現 — 結構與 GET /v1/ip/:ip/carrier 相同。 |
asn / country / email / phone | object|null | 當 detected_type 相符時,會取代上方六個欄位出現 — 結構與該類型專屬端點相同。 |
每個子欄位皆獨立降級 — 若上游服務(RIPEstat、某個 RDAP 伺服器、crt.sh)緩慢或失敗,只會使該欄位變成 null,而不會導致整個搜尋失敗。只有主要查詢本身無效(例如格式錯誤的 IP)時,整個請求才會回傳錯誤狀態。
反向 DNS — 透過 DNS-over-HTTPS 進行單次即時 PTR 查詢,並非網域列舉資料庫。若該 IP 沒有 PTR 紀錄,則回傳 null。
| Parameter | In | Description |
|---|---|---|
ip | path | 必填。任何有效的 IPv4 或 IPv6 地址。 |
針對某 IP 目前公告路由的 RPKI 路由來源驗證,透過 RIPEstat 即時解析(本地端不會匯入或同步任何 ROA 資料庫)。status 只會是 "valid"、"invalid" 或 "unknown" 其中之一 — 絕不會從其他訊號合成推論;只要 RIPEstat 失敗或逾時,就會回傳 "unknown" 並附上原因字串,而非錯誤。
| Parameter | In | Description |
|---|---|---|
ip | path | 必填。任何有效的 IPv4 或 IPv6 地址。 |
| Field | Type | Description |
|---|---|---|
asn | integer|null | 目前公告該路由的 ASN,即時解析取得 — 並非源自本站自有的 ASN 資料集。 |
prefix | string|null | 目前公告的 CIDR 前綴。 |
status | string | "valid"、"invalid" 或 "unknown" 其中之一。 |
validating_roas | array | RIPEstat 比對到的具體 ROA,每筆皆包含 origin/prefix/max_length/validity。 |
validator | string|null | RIPEstat 所使用的 RPKI 驗證器(例如 "routinator")。 |
reason | string|null | 說明為何結果為 "unknown" — 例如不存在涵蓋該路由的 ROA,或 RIPEstat 無法連線。 |
明確指定 (ASN, prefix) 的 RPKI 驗證 — 適用於您已經知道確切要檢查的路由,而不需要依賴上方由 IP 推導出路由的便捷方式。
| Parameter | In | Description |
|---|---|---|
asn | query | 必填。ASN 編號,可加或不加 AS 前綴。例如 15169 或 AS15169。 |
prefix | query | 必填。CIDR 前綴,例如 8.8.8.0/24。 |
結合 RDAP(結構化 WHOIS)的註冊人資料與 ASN 本身的組織名稱,判斷某 IP 註冊登記的組織,並以分類式的信心等級呈現,而非數值分數。
| Parameter | In | Description |
|---|---|---|
ip | path | 必填。任何有效的 IPv4 或 IPv6 地址。 |
| Field | Type | Description |
|---|---|---|
company_name | string|null | 解析出的公司名稱 — 當 confidence 為 "low"(兩個來源意見不一致,因此不會將任一方視為權威)或 "none" 時為 null。 |
rdap_org_name | string|null | RDAP 的註冊人名稱,與 company_name 相互獨立。 |
asn_org_name | string|null | ASN 本身的組織名稱,與 company_name 相互獨立。 |
confidence | string | "high"(來源一致)、"medium"(僅有一個來源可用)、"low"(來源不一致 — 兩者皆會顯示),或 "none"。 |
reason | string | 以白話文字說明信心等級的判斷依據。 |
底層的 RDAP 註冊紀錄本身 — 包含網路區塊、註冊/最後異動日期,以及 RDAP 存檔中的每一位聯絡人。這與上方的 /company 不同:後者會將同一份註冊人資料與 ASN 組織名稱互相比對,整合成單一信心評分的答案;本端點則是原封不動地回傳原始紀錄,較接近傳統 WHOIS 的輸出。同樣支援 IPv6 位址。
| Parameter | In | Description |
|---|---|---|
ip | path | 必填。任何有效的 IPv4 或 IPv6 地址。 |
| Field | Type | Description |
|---|---|---|
available | boolean | 若無法解析出 RDAP 紀錄則為 false — 詳見 reason。 |
reason | string|null | 說明 available: false 的原因。 |
startAddress / endAddress / cidr | string|null | 已註冊的網路區塊。 |
netName / netHandle / parentHandle | string|null | RIR 指派給該網路物件的識別碼。 |
country | string|null | 依 RDAP 資料所示的註冊人所在國家。 |
allocationType | string|null | 例如 "direct allocation"、"reassigned"。 |
registeredDate / lastChangedDate | string|null | 取自 RDAP 紀錄的 ISO 時間戳記。 |
rir | string|null | 提供此紀錄的區域網路註冊機構(ARIN、RIPE、APNIC、LACNIC、AFRINIC)。 |
contacts | array | RDAP 存檔中的每一位聯絡人,各自附有角色、姓名、電子郵件與 handle — 並非只回傳第一筆相符的資料。 |
針對被歸類為行動網路的 IP,盡力進行電信業者識別,並與 MCC/MNC 業者目錄交叉比對。刻意不提供單一的 carrier 欄位 — 詳見下方的 matched_carrier_entries 與 note — 因為單一業者名稱會讓人誤以為是針對個別用戶的即時判斷,而這份資料無法誠實地支撐這種說法。
| Parameter | In | Description |
|---|---|---|
ip | path | 必填。任何有效的 IPv4 或 IPv6 地址。 |
| Field | Type | Description |
|---|---|---|
is_mobile_network | boolean | 若為 false,就到此為止,目錄會是空的 — 對非行動網路的 ASN 不做任何猜測。 |
asn_organization | string|null | ASN 本身的組織名稱。 |
matched_carrier_entries | array | MCC/MNC 目錄中,業者名稱與 asn_organization 模糊比對相符的項目,範圍限定於該 IP 所在國家。 |
note | string | 說明此欄位可以以及不能佐證的範圍。 |
透過 IP 的反向 DNS(PTR)主機名稱與憑證透明度日誌(crt.sh),找出與該 IP 相關聯的網域 — 並非一般性的反向 IP 查詢。回應本身的 limitations 欄位會明確列出此功能能找到與找不到的內容。
| Parameter | In | Description |
|---|---|---|
ip | path | 必填。任何有效的 IPv4 或 IPv6 地址。 |
| Field | Type | Description |
|---|---|---|
ptr_hostname | string|null | 該 IP 的反向 DNS 主機名稱;若無 PTR 紀錄則為 null。 |
root_domain | string|null | 由 ptr_hostname 推導出的可註冊網域。 |
subdomains_seen | array|null | 透過憑證透明度找到的子網域。null 代表 crt.sh 查詢本身未能完成 — 這與空陣列不同,空陣列代表查詢確實執行過,但沒有找到任何結果。 |
limitations | string | 說明此功能在架構上偵測不到的情況(無 PTR、共用主機、未申請憑證的網域)。 |
批次查詢 — 每次請求最多 100 個 IP,僅限 Pro/Enterprise 方案。回傳的物件會以每個 IP 作為鍵值。由於採平行讀取快取與資料庫,速度比依序個別呼叫更快。批次中的每個 IP 都會計入您的每日請求額度,與個別查詢的計算方式相同。免費方案的請求會收到 403 — 詳見 pricing。
| Parameter | In | Description |
|---|---|---|
body | body (JSON) | IP 字串組成的 JSON 陣列。例如 ["1.1.1.1","8.8.8.8"] |
依編號查詢自治系統。回傳組織名稱、國家、洲別、IP 範圍數量、分類類型、匯率,以及地區參考資料(語言、tld、首都、鄰國)。
| Parameter | In | Description |
|---|---|---|
asn | path | ASN 編號,不含 AS 前綴。例如 Google 的 15169。 |
lang | query | 選填。將 country_name 與 continent 在地化:en(預設)、pt, fr, de, zh-TW, ko, zh-CN, ja-JP, es-ES, ar-SA, hi-IN。 |
format | query | 選填。回應格式:json(預設)、csv、text、xml、yaml。 |
對某 IP 既有的城市級別位置進行反向地理編碼,接著回傳附近的興趣點(餐廳、公園、學校、交通、知名地標)、若有資料來源可用的當地犯罪資料(僅限英國與美國),以及可選的即時開車通勤時間估算。
| Parameter | In | Description |
|---|---|---|
ip | path | 必填。任何有效的 IPv4 地址。目前尚不支援 IPv6。 |
dest_lat | query | 選填。用於通勤估算的目的地緯度 — 須與 dest_lon 搭配使用。 |
dest_lon | query | 選填。用於通勤估算的目的地經度 — 須與 dest_lat 搭配使用。 |
dest_address | query | 選填。用於通勤估算的自由格式目的地地址,會自動進行正向地理編碼。若同時提供 dest_lat/dest_lon,此參數會被忽略。 |
| Field | Type | Description |
|---|---|---|
geocode | object|null | country、countryCode、region、city、neighbourhood、displayName — 若該 IP 沒有可供地理編碼的城市級別位置,則為 null。 |
locality.restaurants / .parks / .schools / .transit | array | 每個類別最多列出 4 筆最近的項目,各自附有 name 與 distanceMeters。 |
locality.notable | array | 透過 Wikidata 取得的附近知名地標,並附上簡短說明。 |
locality.usCrime | object|null | 最近轄區的暴力/財產犯罪總計 — 僅限美國,且該部署環境須設定 FBI_CRIME_API_KEY。其餘地區一律為 null。 |
locality.ukCrime | object|null | 方圓 1 英里內的街道層級案件摘要 — 僅限英國。 |
locality.caCrime | null | 一律為 null — 目前尚未串接任何全加拿大的犯罪資料來源(詳見 docs/places.md)。 |
commute | object|null | durationMinutes 與 distanceKm,僅在提供目的地且 OpenRouteService 成功回傳路線時才會出現。其餘情況一律為 null — 絕不會進行推測性計算。 |
國家層級的彙整統計資料,加上地區參考資料(貨幣、匯率、語言、tld、首都、鄰國)。
| Parameter | In | Description |
|---|---|---|
code | path | ISO 3166-1 alpha-2 國家代碼。例如 US、DE、JP。 |
lang | query | 選填。將 country_name 與 continent 在地化:en(預設)、pt, fr, de, zh-TW, ko, zh-CN, ja-JP, es-ES, ar-SA, hi-IN。 |
format | query | 選填。回應格式:json(預設)、csv、text、xml、yaml。 |
解析 User-Agent 字串。回傳瀏覽器、作業系統、裝置類型,以及機器人偵測結果。預設會讀取呼叫端自身的 User-Agent 標頭,也可透過 ?ua= 傳入任意字串。
| Parameter | In | Description |
|---|---|---|
ua | query | 選填。要解析的 URL 編碼 User-Agent 字串。預設使用該請求本身的 User-Agent 標頭。 |
一律免費驗證並格式化電話號碼:透過自架解析器提供地區、線路類型,以及 E.164/國內/國際格式,不呼叫任何服務商。當每個 IP/金鑰的月度進階額度可用時(Free 方案每月 100 次,付費方案更多 — 請參閱價格),同一請求還會從即時電信業者查詢服務回傳即時電信業者名稱、攜碼狀態,以及服務商分類的電話類型 — 請參閱 source 及下方欄位。不論方案為何,一律會附上已在地化的 country_name,以及 lang/lang_source — 請參閱在地化。進階額度用盡,或上游發生任何問題時,會無縫回退到上方的免費欄位;請求不會因此而失敗。若需要國家層級的網路業者參考資料,而非逐號查詢,請改用 GET /v1/carriers。
| Parameter | In | Description |
|---|---|---|
number | path | 必填。任何電話號碼,建議使用 E.164 格式(例如 +14155552671)。開頭的 + 需進行 URL 編碼。 |
country | query | 選填。用於解析格式不明確之國內號碼的兩碼國家代碼提示,例如 ?country=US。 |
mode | query | 選填。當進階層級可用時,?mode=current 會要求取得號碼的即時(而非 SIM 卡發行時的)電信業者。若請求回退到免費方案,此參數會被忽略。 |
| Field | Type | Description |
|---|---|---|
valid | boolean | 若該號碼符合其所屬地區有效的編號規則格式,則為 true。 |
country_code | string|null | 該號碼所屬地區的 ISO 3166-1 alpha-2 代碼。 |
national_format | string|null | 依該地區自身的國內慣例格式化。 |
international_format | string|null | 附上國碼並加上空格的格式,例如 "+1 415 555 2671"。 |
e164 | string|null | 標準 E.164 格式,例如 "+14155552671"。 |
line_type | string|null | FIXED_LINE、MOBILE、FIXED_LINE_OR_MOBILE、VOIP、TOLL_FREE、PREMIUM_RATE 或類似值。許多編號規則(包括北美)光憑號碼本身無法區分市話與行動門號。 |
source | string | 如果此請求有可用的即時電信業者查詢額度,則為"premium";如果回退到上方的免費解析器,則為"local"。下方的 carrier、phone_type、original_carrier、is_ported、phone_region 與 country_prefix 只有在 source 為"premium"時才會有值 — 再往下的 country_name 與 lang/lang_source 則不論方案一律有值。 |
phone_type | string|null | 即時電信業者查詢服務商自有的分類之一:mobile、fixed_line、voip、toll_free、premium_rate、shared_cost、personal_number、pager、uan、voicemail 或 unknown — 並不僅限於前四項,那些只是最常見的範例。當 source 為"local"時為 null — 與上方的 line_type(來自本機解析器,採用另一套分類)不同。 |
carrier | string|null | 號碼目前所屬網路業者的名稱。當 source 為"local"時為 null。 |
original_carrier | string|null | 如果號碼已攜碼轉出,則為其最初發行所屬的網路業者。當 source 為"local"或號碼未攜碼時為 null。 |
is_ported | boolean|null | 如果號碼已從原電信業者攜出,則為 true。當 source 為"local"時為 null。 |
phone_region | string|null | 此號碼的所在地/州省層級詳細資訊(例如「California」),比上方的 country_code 更細緻。當 source 為"local"時為 null。 |
country_prefix | string|null | 此號碼的國碼,不含開頭的「+」(例如德國為「49」)。當 source 為"local"時為 null。 |
country_name | string|null | 完整的國家顯示名稱(例如「Germany」)— 上方的 country_code 僅為 ISO alpha-2 代碼(「DE」),並非顯示名稱。與上方僅限進階方案的欄位不同,此欄位只要有 country_code 就一律會有值,並會透過 ?lang=/Accept-Language 在地化,方式與其他端點的 country_name 欄位相同 — 請參閱下方的 lang/lang_source。 |
lang | string | 實際套用於上方 country_name 的語言 — 也就是解析後的 ?lang= 值,若未請求或請求的語言不受支援則為「en」。 |
lang_source | string | 若請求中帶有 ?lang= 則為"param";若改用 Accept-Language 則為"header";若兩者皆無而採用英文則為"default"。與 GET /v1/asn/:asn 及 GET /v1/country/:code 上同名欄位意義相同。 |
批次驗證。每個方案都能使用批次功能(與 /v1/ip/bulk 不同) — 免費方案是靠各方案自身的批次上限來限制,而不是回傳 403。免費方案:每次請求 10 筆,每日 100 筆。Pro:每次請求 100 筆,每日 1,000 筆。Enterprise:每次請求 1,000 筆,每日 10,000 筆。此額度與您一般的每日請求限制分開計算 — 詳見 Rate limits。
| Parameter | In | Description |
|---|---|---|
body | body (JSON) | 電話號碼字串組成的 JSON 陣列。 |
參考資料查詢:列出某個國家已知的行動網路業者(MCC/MNC) — 不對應任何特定電話號碼。資料來自社群維護的 MCC/MNC 彙整表(MIT 授權,最近一次同步於 2026 年 — 詳見 docs 儲存庫),屬於靜態參考表,而非即時資料流,因為編號規則的指派變動並不頻繁,不需要即時更新。
| Parameter | In | Description |
|---|---|---|
country | query | 必填。兩碼國家代碼,例如 ?country=US。 |
電子郵件語法驗證、透過 DNS-over-HTTPS 進行的即時 MX 紀錄檢查,以及依社群維護的封鎖清單(CC0 授權,每日同步)偵測拋棄式/臨時網域。不會驗證信箱本身是否確實存在 — 那需要進行本 API 不執行的 SMTP 交握(詳見下方欄位參考,了解 has_mx 究竟能證明與不能證明什麼)。
| Parameter | In | Description |
|---|---|---|
email | path | 必填。任何電子郵件地址,須經 URL 編碼(@ 必須編碼為 %40)。 |
| Field | Type | Description |
|---|---|---|
valid_syntax | boolean | 若該地址符合標準電子郵件語法格式,則為 true。不會驗證信箱是否確實存在。 |
domain | string|null | 網域部分,已轉為小寫。若 valid_syntax 為 false,則為 null。 |
has_mx | boolean|null | 若該網域目前至少有一筆 MX 紀錄,則為 true。若語法無效,或 DNS 查詢本身失敗/逾時,則為 null — 請將 null 視為「未知」,而非 false。 |
disposable | boolean|null | 若該網域符合已知的拋棄式/臨時電子郵件服務商,則為 true。在與 has_mx 相同的情況下為 null。 |
source | "premium"|"local" | 若本次請求執行了即時檢測,則為 "premium";否則為 "local"(已達到限額,或功能未啟用)— 無論哪種情況,上述欄位(從 valid_syntax 到 disposable)皆會被填入內容。 |
is_reachable | string|null | 可選即時檢測給出的整體結論:"safe"(可送達)、"invalid"(遭拒絕)、"risky"(不確定)或 "unknown"(無法確定 — 請重試)。若本次請求未執行即時檢測,則為 null(見下方 source)。 |
is_catch_all | boolean|null | 若該網域會接收寄往任何地址的郵件,代表無法確認這個特定信箱是否存在,則為 true。未執行即時檢測時為 null。 |
mailbox_full | boolean|null | 若即時檢測發現該信箱已滿,則為 true。未執行即時檢測時為 null。 |
is_role_account | boolean|null | 若該地址看起來像角色帳戶(例如 support@、admin@)而非個人信箱,則為 true。未執行即時檢測時為 null。 |
is_disabled | boolean|null | 若即時檢測發現該信箱已被明確停用,則為 true。未執行即時檢測時為 null。 |
將您提供的 IP、電子郵件、電話號碼、User-Agent(任意組合)整合成單一 0–100 分的分數 — 這是 ip-api.com、ipapi.co、ipgeolocation.io、ipify.org、ipregistry.co、ip2location.io、AbstractAPI、IPLocate.io、BigDataCloud(皆經直接查核)都沒有提供的單一融合訊號。四項輸入皆為選填且彼此獨立 — 可任意傳入其中幾項。若省略 ip 則預設為您自己的 IP,若省略 ua 則預設為您自己的 User-Agent 標頭,慣例與 GET /v1/ip 及 GET /v1/ua 相同。未傳入的訊號只是不會出現在回應中,而不會被視為「乾淨」計分 — 其權重會重新分配給您實際提供的訊號。
| Parameter | In | Description |
|---|---|---|
ip | query | 選填。預設為您自己的 IP。IPv6 目前尚未納入評分(與本 API 其餘威脅資料部分有相同限制)。 |
email | query | 選填。任何電子郵件地址。 |
phone | query | 選填。任何電話號碼。 |
ua | query | 選填。預設為您自己的 User-Agent 標頭。 |
| Field | Type | Description |
|---|---|---|
score | integer | 依所提供訊號計算出的 0-100 加權綜合分數。 |
risk_tier | string | "low"(<20)、"medium"(20-44)、"high"(45-69),或 "critical"(70 以上)。 |
signals | object | 依各輸入項目分列的細項 — 只有您實際提供的輸入才會出現對應的鍵:ip、email、phone、user_agent。每一項都包含自身的組成分數,以及 GET /v1/ip/:ip、/v1/email/:email、/v1/phone/:number 與 /v1/ua 針對該輸入原本就會回傳的相同欄位。 |
在真實的無頭 Chrome 實例中(Cloudflare Browser Rendering,並非第三方截圖服務商)渲染指定 URL,並回傳 PNG。內部/私有目標(localhost、RFC 1918 範圍、link-local/雲端中繼資料位址)會在瀏覽器啟動前就被拒絕。此功能受限於 Browser Rendering 自身的平台層級限制,比本 API 其餘部分嚴格許多 — 在較低階的 Cloudflare 方案上,這項限制很可能會比您一般的每日請求額度更早觸發節流。
| Parameter | In | Description |
|---|---|---|
url | query | 必填。必須是 http 或 https。 |
透過本地端的三連字元頻率分析識別文字的語言 — 不呼叫外部服務商、不使用 AI 模型推論、不記錄任何資訊。輸入少於 10 個字元會回傳 null 語言;少於約 30 個字元時仍可能回傳最佳猜測,但 reliable 會是 false。
| Parameter | In | Description |
|---|---|---|
text | query | 必填。最多 5,000 個字元 — 超過長度的輸入會被截斷,而非拒絕。 |
| Field | Type | Description |
|---|---|---|
language | object|null | 最佳相符結果的 code(ISO 639-1)、iso639_3、name 與 local_name。若文字過短或無法辨識("und"),則為 null。 |
reliable | boolean | 輸入過短時為 false — 請將結果視為猜測,而非有把握的判斷。 |
candidates | array | 最多列出 5 個次要候選語言及其相對分數,適用於相近語言的判斷。 |
在兩種貨幣之間換算金額(支援 154 種貨幣),使用與每筆 IP、ASN、國家查詢中 currency_code/exchange_rate_usd 相同的每日參考匯率資料 — 在此以獨立的換算端點呈現,而非內嵌於地理位置回應之中。
| Parameter | In | Description |
|---|---|---|
from | query | 必填。三碼 ISO 4217 貨幣代碼。 |
to | query | 必填。三碼 ISO 4217 貨幣代碼。 |
amount | query | 選填。預設為 1。 |
| Field | Type | Description |
|---|---|---|
result | number | 換算後的金額。 |
rate | number | 每 1 單位 from 對應的 to 單位數。 |
updated | string | 此次換算所使用之參考匯率同步時間的 ISO 時間戳記。 |
完整匯率表(154 種貨幣),可以任何支援的貨幣為基準重新計算,不限於美元。
| Parameter | In | Description |
|---|---|---|
base | query | 選填。預設為 USD。 |
| Field | Type | Description |
|---|---|---|
rates | object | 貨幣代碼 → 相對於 base 之匯率的對照表。 |
單一貨幣對最長 90 天的每日參考匯率歷史紀錄 — 即 the currency converter tool 匯率趨勢圖背後的資料。資料先一次性回補,之後由更新 GET /v1/currency/convert 的同一個排程工作每日追加。這是隨時間變化的單一每日參考匯率,而非買賣價差。
| Parameter | In | Description |
|---|---|---|
target | query | 必填。要繪製圖表的三碼 ISO 4217 貨幣代碼。 |
base | query | 選填。預設為 USD。 |
days | query | 選填。可為 30、60、90 其中之一。預設為 30。 |
| Field | Type | Description |
|---|---|---|
series | array | 依日期遞增排列的 { date, rate } 資料點陣列。 |
stats | object | 回傳資料序列中的 min、avg、max 與 current。 |
針對地名、郵遞區號、"lat,lon" 座標組合,或 lat + lon、ip,提供目前天氣狀況 — 若加上 detail=1,還會提供逐小時展望與多日預報。美國地點由美國國家氣象局(National Weather Service)提供,其他地區由 MET Norway 提供。加上 include= 可取得完整文件,包含單位選擇、最多 9 天、太陽與月亮、官方警報等 — 請見下方的 include 卡片。weather-lookup 工具還會在明確呼叫此端點之前,先於用戶端自動偵測呼叫者本身的位置。
| Parameter | In | Description |
|---|---|---|
q | query | 城市名稱、郵遞區號,或 "lat,lon"(最多 100 個字元)。也可改為傳入 lat 與 lon,或 ip。三者擇一為必填。 |
detail | query | 選填。"1" 會在 weather 中加入 pressure_mb/visibility_km/dewpoint_c/sunrise/sunset 等欄位,並附上 forecast 物件(hourly + daily)。預設省略。 |
| Field | Type | Description |
|---|---|---|
condition | string|null | 簡短文字說明。 |
temp_c / temp_f | number|null | 目前氣溫。 |
feels_like_c | number|null | 攝氏「體感溫度」。 |
humidity_pct | number|null | 相對濕度。 |
wind_kmph / wind_dir | number|null / string|null | 風速與 16 方位羅盤方向。 |
uv_index | number|null | 紫外線指數。 |
location | object|null | 查詢地點解析後的名稱、地區、國家與經緯度 — 而非僅是原始輸入內容。 |
forecast.hourly[] | array | 僅在 detail=1 時提供。未來 24 小時,以 3 小時為間隔:hour_label、temp_c/temp_f、weather_code、chance_of_rain_pct。 |
forecast.daily[] | array | 僅在 detail=1 時提供。3 天展望:date、day_label、weather_code、condition、chance_of_rain_pct、max/min temp_c/temp_f。 |
即時代理 USPTO 的 Trademark Status & Document Retrieval(TSDR)系統,依 8 碼流水序號查詢案件狀態 — 每次請求皆直接呼叫,並非快取或轉售的副本。案件狀態資料屬於美國政府著作,依 USPTO 自身的使用條款屬於公共領域,因此每則回應都會附上 source/attribution 欄位,而不會靜默地快取或轉售。商標圖樣/圖片資料刻意排除在範圍之外 — USPTO 的條款將圖片授權與本端點回傳的案件狀態文字資料分開處理。目前尚不支援以註冊號碼查詢;USPTO 目前僅記載序號查詢路徑。歡迎在 Trademark Lookup 工具上試用。
| Parameter | In | Description |
|---|---|---|
serial | path | 必填。恰為 8 碼數字,例如 98267877。 |
| Field | Type | Description |
|---|---|---|
source | string | 固定為 "USPTO TSDR"。 |
attribution | string | 依 USPTO 使用條款所要求的必要標示文字。 |
data | object | USPTO 回傳的原始案件狀態資料,直接透傳而未重新塑形 — 已於 2026-08-12 確認可正常運作。在 data.trademarks[0] 之下:status(申請/註冊日期、markElement、descOfMark、tm5StatusDesc)、parties.ownerGroups(依角色列出的所有人姓名/地址)、gsList[](商品/服務說明與類別),以及 prosecutionHistory[](完整案件時間軸)。欄位是否存在會依申請狀態而異 — 例如尚在審查中的申請案尚無 usRegistrationNumber。 |
即時代理 USPTO 的 Patent File Wrapper API(Open Data Portal),依 7 至 8 碼發明專利號碼查詢核准狀態 — 每次請求皆直接呼叫,並非快取或轉售的副本。原先鎖定的資料來源(PatentsView 的 Search API)已確認於 2026-03-20 關閉;本端點改為代理其後繼的即時服務。Patent File Wrapper 資料屬於美國政府著作,依 USPTO 自身的使用條款屬於公共領域,因此每則回應都會附上 source/attribution 欄位。涵蓋範圍以申請/審查程序為中心 — 不包含引用關係圖、專利家族、法律狀態欄位或圖片,不像 Lens.org、Espacenet 或 Google Patents 那樣提供。涵蓋範圍自 2001 年申請的案件起算。目前尚不支援設計專利、植物專利與再領證專利;僅支援以核准的發明專利號碼查詢。歡迎在 Patent Lookup 工具上試用。
| Parameter | In | Description |
|---|---|---|
number | path | 必填。7 至 8 碼數字,例如 12393227。僅限已核准的發明專利號碼,不接受申請號碼。 |
| Field | Type | Description |
|---|---|---|
source | string | 固定為 "USPTO Patent File Wrapper"。 |
attribution | string | 依 USPTO 使用條款所要求的必要標示文字。 |
data | object | USPTO 回傳的原始審查紀錄資料,直接透傳而未重新塑形 — 已於 2026-08-12 針對真實專利(12393227、9935534)確認可正常運作。主要欄位:applicationMetaData(inventionTitle、filingDate、applicationStatusDescriptionText、applicationStatusDate、patentNumber、inventorBag[])、recordAttorney.attorneyBag[]、applicationNumberText,以及 eventDataBag[](完整審查時間軸)。若該號碼不存在、屬於設計/植物/再領證專利,或早於 2001 年涵蓋範圍,則回傳 404。 |
分頁呈現的 VPN、Tor 與威脅情報資料流。每頁 200 筆。每筆項目皆包含 IP/CIDR、來源提供者標示、ISP、國家與分類類型。
| Parameter | In | Description |
|---|---|---|
page | query | 頁碼,從 0 起算。預設值:0。 |
type | query | 依類型篩選:VPN、Tor Exit Node、Tor Node、High-Risk Threat Intel。 |
q | query | 依 IP 或 CIDR 子字串篩選。 |
僅提供中繼資料 — 總項目數、各來源筆數,以及最後同步時間。不會回傳 IP 資料。
分頁呈現的濫用網路範圍。依跨資料源的交叉佐證評分為 1-10 分。風險等級:critical(8-10)、high(5-7)、medium(3-4)。
| Parameter | In | Description |
|---|---|---|
page | query | 頁碼,從 0 起算。預設值:0。 |
tier | query | 依風險等級篩選:critical、high、medium。 |
q | query | 依網路範圍子字串篩選。 |
source | query | 選填。依來源摘要名稱篩選,須與 source_feed 回傳的名稱完全一致,例如 'Spamhaus DROP' 或 'IPsum Threat Intel'。 |
僅提供中繼資料 — 總網路數、各來源筆數、風險等級分佈,以及最後同步時間。
可下載本 API 所使用之開放資料集的 CSV 匯出檔 — 資料相同,且不涉及新的授權條款。asn 與 ranges 一律可用;在特定部署環境中,若該來源的資料集尚未啟用,geo-city 會回傳 503。geo-city 每次僅匯出單一地理資料來源的原始資料列,而非合併檢視 — 可傳入 ?source=primary(預設)或 ?source=secondary。
| Parameter | In | Description |
|---|---|---|
kind | path | asn、ranges、geo-city 其中之一。 |
source | query | 僅適用於 geo-city。primary(預設)或 secondary。 |
立即發放 API 金鑰 — 不需要電子郵件,也不需要註冊。每把金鑰起始皆為免費方案(每日 1,000 次請求;不含批次查詢)。Pro 與 Enterprise 金鑰可解鎖更高的每日額度與批次查詢(每次請求最多 100 個 IP) — 詳見 pricing。請妥善保存金鑰 — 之後將無法再次取得。
查詢某把金鑰已發出的請求次數。在任何 /v1/* 請求中,透過 X-API-Key 標頭或 ?api_key= 傳入金鑰,即可計入用量。
| Parameter | In | Description |
|---|---|---|
key | query | 必填。由 POST /v1/keys 回傳的金鑰。 |
擁有某個 IP 的網路的濫用檢舉聯絡方式,來自 RDAP:RIR、網路代號、所屬 CIDR 以及濫用檢舉信箱。用於得知檢舉應寄往何處。
| Parameter | In | Description |
|---|---|---|
ip | path | IPv4 或 IPv6 位址。 |
無法連線至註冊機構時,available 為 false,並在 failure 中提供原因。
某個 ASN 實際公告的 IP 範圍,分頁回傳,每個範圍包含國家以及代管 / 行動 / 住宅 / 機器人 / 黑名單標記。
| Parameter | In | Description |
|---|---|---|
asn | path | 不含 AS 前綴的 ASN 編號,例如 15169。 |
limit | query | 每頁的 IP 範圍數。預設 50,上限 200。 |
offset | query | 要略過的 IP 範圍數。預設 0。 |
ASN 的註冊機構(RDAP)紀錄:代號、名稱、國家、配置類型、註冊日期、RIR 及其聯絡人。
| Parameter | In | Description |
|---|---|---|
asn | path | 不含 AS 前綴的 ASN 編號,例如 15169。 |
註冊機構無法連線時,available 為 false 並附上 reason。
ASN 實際所在位置:根據其最大 IP 範圍的樣本取得的城市層級定位點,以及最常見的城市。用於 ASN 頁面的分布地圖。
| Parameter | In | Description |
|---|---|---|
asn | path | 不含 AS 前綴的 ASN 編號,例如 15169。 |
這是樣本,並非完整的 IP 範圍清單。要取得所有範圍,請使用 /v1/asn/:asn/ranges。
代管於某個 ASN 的網域,透過對其部分位址樣本進行反向 DNS(PTR)查詢取得。每筆資料包含根網域、PTR 主機名稱與取樣的 IP。
| Parameter | In | Description |
|---|---|---|
asn | path | 不含 AS 前綴的 ASN 編號,例如 15169。 |
基於取樣,只能大致反映該 ASN 代管的內容,並非完整清單。針對單一 IP 請使用 /v1/ip/:ip/hosted-domains。
ASN 的 BGP 關係:對等方、上游供應商與下游客戶,並附上數量。
| Parameter | In | Description |
|---|---|---|
asn | path | 不含 AS 前綴的 ASN 編號,例如 15169。 |
無法連線至 BGP 資料來源時,available 為 false。available: true 且陣列為空,表示該 ASN 沒有回報任何關係。
IPv4 位址空間目錄:每個 /8 區塊一筆,包含其 IP 範圍、國家與 ASN 的數量以及占比最高的國家。由此開始,再透過 /v1/ip-ranges/:a 與 /v1/ip-ranges/:a/:b 逐層深入。
某個 /8(例如 8.0.0.0/8)內的 /16 區塊,同樣包含每個區塊的 IP 範圍、國家與 ASN 數量。
| Parameter | In | Description |
|---|---|---|
a | path | 第一個八位元組,0-255。 |
某個 /16(例如 8.8.0.0/16)內已配置的 IP 範圍,每個範圍附上所屬 ASN,以及每個區塊的數量。
| Parameter | In | Description |
|---|---|---|
a | path | 第一個八位元組,0-255。 |
b | path | 第二個八位元組,0-255。 |
針對某個座標的 Nearby 資料的一部分,讓用戶端能在每個部分送達時立即呈現:反向地理編碼、周邊興趣點或當地犯罪統計。
| Parameter | In | Description |
|---|---|---|
lat | query | 緯度,必填。 |
lon | query | 經度,必填。 |
part | query | 要取得的部分:geocode、poi 或 crime。未知的值會回傳 400。 |
country | query | 僅限 part=crime:ISO 國家代碼。US 與 GB 有犯罪資料。 |
region | query | 僅限 part=crime:州或地區名稱,例如 Utah。 |
city | query | 僅限 part=crime:城市名稱,例如 Orem。 |
lang | query | 選填。在地化地點標籤(與上方在地化表中的代碼相同)。 |
兩點之間的開車時間與距離。快速路徑:略過 /v1/places/:ip 所做的反向地理編碼與興趣點查詢。
| Parameter | In | Description |
|---|---|---|
from_lat | query | 起點緯度,必填。 |
from_lon | query | 起點經度,必填。 |
dest_lat | query | 終點緯度。搭配 dest_lon 使用,或改為傳入 dest_address。 |
dest_lon | query | 終點經度。 |
dest_address | query | 自由文字形式的終點,由我們為您進行地理編碼。在缺少 dest_lat/dest_lon 時使用。 |
無法解析出終點時,回應中 to 為 null、commute 為 null,並附上 reason 字串。
以輸入的街道地址而非 IP 為基準的 /v1/places/:ip 資料:地理編碼、地點資訊以及可選的通勤時間估算。
| Parameter | In | Description |
|---|---|---|
q | query | 自由文字地址,必填。 |
dest_lat | query | 選填的終點緯度,用於包含通勤時間估算(需搭配 dest_lon)。 |
dest_lon | query | 選填的終點經度。 |
dest_address | query | 選填的自由文字終點,用來取代 dest_lat/dest_lon。 |
part | query | part=geo 只回傳標籤與座標,讓首次繪製更快。 |
lang | query | 選填。在地化地點標籤(與上方在地化表中的代碼相同)。 |
無法對該地址進行地理編碼時,found 為 false。
地址自動完成:針對不完整的地址回傳數個符合的地點,可選擇偏向某個位置。
| Parameter | In | Description |
|---|---|---|
q | query | 不完整的地址文字,必填。 |
near_lat | query | 選填緯度,結果會偏向該位置。 |
near_lon | query | 選填經度,結果會偏向該位置。 |
完整的天氣文件,適用於地名、郵遞區號、座標或 IP。用 include 選擇所需區塊:current、hourly、daily、astro(太陽與月亮)、solar、indicators、alerts、marine、air_quality、nowcast,或 all。美國地點來自美國國家氣象局(National Weather Service),其他地區來自 MET Norway;meta.source 會標明來源。省略 include 時,會回傳上文所述的簡易格式 { query, weather }。
| Parameter | In | Description |
|---|---|---|
q / lat+lon / ip | query | 位置:q(城市、郵遞區號或 "lat,lon"),或 lat 與 lon,或 ip。三者擇一為必填。 |
country | query | 選填。用於釐清有歧義的 q 的 ISO 代碼或國家名稱,例如郵遞區號 75001 搭配 country=FR。 |
include | query | 此格式必填。以逗號分隔:current、hourly、daily、astro、solar、indicators、alerts、marine、air_quality、nowcast,或 all。 |
units | query | metric(預設)或 imperial。欄位名稱會隨單位變化:temp_c 變成 temp_f,wind_kmph 變成 wind_mph,precip_mm 變成 precip_in。 |
wind_unit | query | kmh、ms、mph 或 kn。只變更風速單位。 |
hours | query | 要回傳的逐時項目數,1-240。預設 48。近期為每小時,之後為每 6 小時,可由 step_hours 判斷。 |
days | query | 要回傳的逐日項目數,1-9。預設 7。美國資料涵蓋 7 天。 |
meta.coverage 會說明該地點有哪些欄位:降雨機率、陣風與雷暴機率僅適用於美國與北歐,其他地區為 null(不是 0)。alerts 是美國與挪威的官方警報;marine、air_quality 與 nowcast 僅涵蓋挪威及鄰近海域,其他地區會回傳 available: false。meta.derived 中的內容是 ipto.to 的估算值,indicators 是推導出的標示,並非官方警報。顯示資料時請保留 meta.attribution(MET Norway 的資料採用 CC BY 4.0)。
ipto.to 為已被查詢過的地點自行記錄的每日資料:當天預報快照中出現過的最高高溫、最低低溫與最大降水量。只有已被請求過的地點才有資料,且會隨時間累積。
| Parameter | In | Description |
|---|---|---|
q / lat+lon / ip | query | 位置:q(城市、郵遞區號或 "lat,lon"),或 lat 與 lon,或 ip。三者擇一為必填。 |
days | query | 要回傳的最近天數,1-400。預設 30。 |
這些是預報快照,不是測站觀測值或再分析資料,因此請勿當作實測歷史使用。404 表示該地點尚未記錄任何快照。
可用的雷達動畫影格,依時間由舊到新排列,每個影格包含 Unix 時間戳記與用於雷達圖磚 URL 的影格 id。
某一影格在標準網頁地圖 z/x/y 位置的雷達地圖圖磚(PNG)。透過同源代理提供,地圖無需發出第三方請求即可載入。
| Parameter | In | Description |
|---|---|---|
frame | path | 來自 /v1/weather/radar/frames 的影格 id(小寫十六進位)。 |
z | path | 縮放層級。 |
x | path | 圖磚欄。 |
y | path | 圖磚列。 |
標準網頁地圖 z/x/y 位置的衛星影像地圖圖磚,透過同源代理提供。
| Parameter | In | Description |
|---|---|---|
z | path | 縮放層級。 |
x | path | 圖磚欄。 |
y | path | 圖磚列。 |
/v1/email/:email 的機器可讀 OpenAPI 3.1 規格,方便 LLM 與 MCP 代理無需閱讀本文件即可呼叫電子郵件端點。
IP 查詢欄位參考
| Field | Type | Description |
|---|---|---|
ip | string | 查詢的 IP 地址。 |
version | string | "v4" 或 "v6"。 |
bogon | boolean | 若為私有、保留,或不可路由的地址,則為 true。 |
bogon_type | string|null | 若為 bogon 時的原因代碼:"loopback"、"private"、"link-local"、"multicast"、"reserved"、"documentation"、"unspecified"。 |
asn | integer|null | 公告此 IP 的自治系統編號。 |
asn_name | string|null | ASN 的簡稱(例如 "GOOGLE")。 |
asn_org | string|null | 該 ASN 註冊的組織(例如 "Google LLC")。 |
asn_type | string|null | ASN 分類:"hosting"、"isp"、"business"、"education"、"government"、"mobile"、"residential"。 |
continent | string|null | 完整洲別名稱(例如 "North America")。 |
continent_code | string|null | 兩碼洲別代碼:AF AS EU NA SA OC AN。 |
country_code | string|null | IP 實際所在國家的 ISO 3166-1 alpha-2 國家代碼(例如 "US"),與城市和經緯度使用相同的地理定位資料。若沒有地理定位比對結果,則回退為 ASN 的註冊國家(asn_country_code)。國家名稱、國旗、貨幣等欄位由此衍生。 |
country_name | string|null | 完整英文國家名稱(例如 "United States")。 |
country_flag | string|null | 國家 emoji 旗幟(例如 "🇺🇸")。 |
is_eu | boolean | 若該國為歐盟成員國(共 27 個成員),則為 true。 |
city | string|null | 城市名稱。在自身查詢時會提供,在明確查詢時若兩個合併地理資料來源(IP2Location 或 MaxMind)中有任一相符,亦會提供 — 請檢查 geo_precision。 |
state | string|null | 行政區域/次級行政區。可用性與 city 相同。 |
postal_code | string|null | 郵遞區號。在自身查詢時會提供,在明確查詢時若 IP2Location(優先)或 MaxMind 相符,亦會提供 — 可用性與 city 相同。 |
latitude | number|null | 十進位緯度。可用性與 city 相同。 |
longitude | number|null | 十進位經度。可用性與 city 相同。 |
timezone | string|null | 時區 — 可用性與 city 相同。自身查詢時為 IANA 識別碼(例如 "America/New_York")。明確查詢時的格式取決於相符的來源:IP2Location 提供如 "-08:00" 的 UTC 偏移字串,MaxMind 提供 IANA 名稱。 |
geo_precision | string | 位置資料的精確程度:"city"、"country"(城市級別查詢無相符結果),或 "none"。 |
geo_country_code | string|null | IP 實際所在的國家(依地理定位資料,ISO 3166-1 alpha-2)。只要有值,就與 country_code 相同。若沒有地理定位比對結果則為 null。 |
asn_country_code | string|null | ASN 持有者的註冊國家(ISO 3166-1 alpha-2)。對於從持有者註冊國以外的國家發布路由的 CDN、VPN、代管或 anycast 網路,可能與 country_code 不同。IP 沒有 ASN 紀錄時為 null。 |
currency_code | string|null | 該國家的 ISO 4217 貨幣代碼(例如 "USD")。 |
exchange_rate_usd | number|null | 每 1 美元對應的當地貨幣單位數,來自每日同步、涵蓋 154 種貨幣的參考匯率資料。不在此範圍內的貨幣則為 null。 |
calling_code | string|null | 含 + 前綴的國家撥號代碼(例如 "+1")。 |
languages | string[] | 該國家的官方/認可語言,以英文表示。 |
tld | string[] | 國碼頂級網域,例如 [".us"]。 |
capital | string|null | 首都名稱。 |
borders | string[] | 相鄰國家的 ISO alpha-2 代碼。 |
is_datacenter | boolean | 若該 IP 屬於主機或雲端服務商,則為 true。 |
is_mobile | boolean | 若該 IP 註冊於行動電信業者,則為 true。 |
is_residential | boolean | 若該 IP 被歸類為住宅寬頻,則為 true。 |
connection_type | string | "mobile"、"datacenter" 或 "unknown" — 依與 is_mobile/is_datacenter 相同的分類推導而來。刻意不嘗試區分住宅與企業用途:光憑 ASN 組織名稱文字並無法可靠地推導出這項區別,因此若某個 ASN 無法有把握地歸類為 mobile 或 datacenter,就會維持 "unknown",而不會用猜測的方式判定。 |
is_bot | boolean | 若該 IP 與已知的機器人基礎設施相關聯,則為 true。 |
is_proxy | boolean | 若該 IP 為已知的代理出口節點,則為 true。 |
is_vpn | boolean | 若該 IP 落在威脅資料流中已知的 VPN 伺服器範圍內,則為 true。 |
is_tor | boolean | 若該 IP 為已確認的 Tor 出口節點,則為 true。 |
is_abuser | boolean | 若該 IP 落在多個濫用情資來源標記的網路範圍內,則為 true。 |
abuse_score | integer|null | 當 is_abuser 為 true 時,依跨資料源交叉佐證得出的 1-10 分嚴重程度分數。其餘情況為 null。 |
risk_tier | string|null | "critical"(8-10)、"high"(5-7)或 "medium"(3-4) — 由 abuse_score 推導而來。若未被標記則為 null。 |
threat_type | string|null | 當 is_tor/is_vpn/is_abuser 同時相符時,回傳最具行動參考價值的單一分類:"tor_exit" > "abuser" > "vpn"。若皆不相符則為 null。 |
flags | object | 為向下相容而鏡射 is_* 欄位的物件。鍵值:hosting、mobile、residential、bot、blacklisted、vpn、tor、abuser。 |
meta.data_version | string | 本次查詢所使用之資料集日期(YYYY-MM-DD)。自身查詢為 "cf-edge"。私有範圍為 "bogon"。 |
meta.cached | boolean | 若此回應來自快取層,則為 true。 |
meta.lang | string | 此回應實際使用的語言 — 若有提供 ?lang= 則與其相符,否則為從 Accept-Language 解析出的值,或為 "en"。 |
meta.lang_source | "param"|"header"|"default" | lang 是如何決定的:"param"(傳入了 ?lang=)、"header"(從 Accept-Language 解析)、或 "default"(兩者皆未提供)。 |
輸出格式
IP、ASN 與國家查詢皆支援 ?format=。
| Format | Content-Type | Usage |
|---|---|---|
json | application/json | 預設值。完整結構化回應。 |
csv | text/csv | 扁平的 key,value 配對。省略巢狀物件。 |
text | text/plain | key: value 形式的每行資料,每行一個欄位。 |
xml | application/xml | 完整巢狀結構,陣列會重複相同標籤。 |
yaml | application/x-yaml | 完整巢狀結構。 |
在地化
在 /v1/ip、/v1/asn/:asn 或 /v1/country/:code 傳入 ?lang=,即可將 country_name 與 continent 在地化。其餘欄位(ASN 組織名稱、城市名稱、貨幣代碼)皆維持原始形式 — 這些屬於識別碼與專有名詞,而非介面文字。不支援的語言代碼會退回英文,而非回傳錯誤。
| Code | Language |
|---|---|
en | English (default) |
pt | Português |
fr | Français |
de | Deutsch |
zh-TW | 繁體中文 |
ko | 한국어 |
zh-CN | 简体中文 |
ja-JP | 日本語 |
es-ES | Español |
ar-SA | العربية |
hi-IN | हिन्दी |
沒有 ?lang=?改傳 Accept-Language 標頭即可 — 相同的端點也會讀取它,因此只要下 curl -H "Accept-Language: es" https://ipto.to/v1/ip/8.8.8.8,不需要查詢字串也能在地化回應。若兩者同時存在,明確指定的 ?lang= 永遠優先。注意:shell 的 LANG/LC_ALL 環境變數(例如 LANG=es_ES.UTF-8 curl ...)只會設定 curl 自身的地區設定 — curl 從不讀取它,也不會把它轉成標頭送出,因此對回應語言完全沒有影響。真正有效的只有 Accept-Language 或 ?lang= 這兩種方式。
每個 /v1/ip、/v1/asn/:asn 與 /v1/country/:code 的回應都包含 lang 與 lang_source(在 /v1/ip 中巢狀於 meta 下;在另外兩者中則為頂層欄位),讓你隨時能準確知道實際套用了哪種語言、以及它是透過 "param"、"header" 還是 "default" 決定的 — 不必從你送出的請求去猜測。
只要設定非英文的 lang,完整的鍵與值在地化就是預設行為 — 每個欄位(包含巢狀的 flags 與 meta 鍵)都會以目標語言重新命名回傳,固定的列舉值(risk_tier、threat_type、connection_type、geo_precision、bogon_type、asn_type)也會一併翻譯。需要改回舊有的英文鍵格式嗎?在 /v1/ip 加上 &localize=0 即可退出。
程式碼範例
JavaScript
Python
PHP
Go
請求頻率限制
限制以每日(UTC)為單位計算,免費方案依 IP 地址計數,Pro/Enterprise 則依金鑰計數。超過額度時會回傳 HTTP 429,並附上 Retry-After 標頭。若為正式環境的用量,詳見 pricing。
適用於每一個 /v1/* 端點、/mcp 伺服器,以及 curl ipto.to / curl ipto.to/:ip 捷徑。唯一的例外是 GET /ip — 它只是單純回傳標頭內容,沒有查詢成本,因此完全不會消耗任何額度。
| Tier | Requests / day | Auth |
|---|---|---|
| Free | 1,000 | 無 |
| Pro | 100,000 | API 金鑰(標頭) |
| Enterprise | Unlimited | API 金鑰 + 專屬端點 |
錯誤代碼
| Status | Meaning |
|---|---|
200 | OK。回應包含資料。 |
202 | 資料流正在同步中。請於 45 秒後重試。 |
400 | 請求錯誤。IP、ASN 或國家代碼無效。 |
404 | 資料集中找不到該 ASN 或國家。 |
503 | 資料集尚未就緒。可能正在進行初始匯入。 |