Overview
歡迎使用 IPFast 文檔, IPFast 是一個專業的基礎網路與雲計算平臺。
基礎網路
基礎網路為您提供高質量的住宅代理和靜態住宅代理服務, 主要包含以下兩大核心產品:
住宅代理(Residential Proxy)
住宅代理服務提供來自真實住宅 IP 的代理,具有以下特點:
- 全球覆蓋:支援全球多個國家和地區的 IP
- 動態切換:支援自動切換 IP,避免被封禁
- 高度定製:可根據國家、州/省、城市進行精確定位
- 通道管理:支援創建多個獨立通道,便於業務隔離
- 實時監控:提供詳細的流量統計和使用報告
數據中心代理(Datacenter Proxy)
數據中心服務提供來自數據中心集群的代理,具有以下特點:
- 全球覆蓋:支援全球多個國家和地區的 IP
- 動態切換:支援自動切換 IP,避免被封禁
- 高度定製:可根據國家、州/省、城市進行精確定位
- 通道管理:支援創建多個獨立通道,便於業務隔離
- 實時監控:提供詳細的流量統計和使用報告
靜態住宅代理(Static Residential Proxy)
靜態住宅代理提供固定的住宅 IP 地址,特別適合需要穩定 IP 的場景:
- 固定 IP:提供長期穩定的固定 IP 地址
- 高可用性:保證 IP 地址的長期可用性
- 商戶管理:支援商戶白名單功能
- 靈活訂閱:支援按需訂閱和續費
- IP 更換:支援在需要時更換 IP 地址
雲計算
雲計算也包含以下兩大核心產品:
輕量伺服器(Container VPS)
輕量伺服器業務特性除了具有靜態住宅IP的特性外,還允許用戶安裝少量輕量級的軟體,具有以下特點:
- 靜態 IP:類似於靜態住宅IP的網路特性表現
- 支援登入:支援用戶SSH登入伺服器後臺
- 軟體安裝:允許用戶安裝少量輕量級的軟體
- 資源隔離:硬體資源隔離,便於業務隔離
- 實時監控:提供詳細的流量統計和使用報告
獨享伺服器(待上線)
獨享伺服器業務特性除了具有輕量伺服器的特性外,實現了所有的硬體資源獨享,具有以下特點:
- 靜態 IP:類似於靜態住宅IP的網路特性表現
- 支援登入:支援用戶SSH登入伺服器後臺
- Windows:支援Windows操作系統
- 資源隔離:硬體資源全隔離,便於業務高負載使用
- 實時監控:提供詳細的流量統計和使用報告
快速開始
技術支援
如果您在使用過程中遇到任何問題,或需要了解更多資訊,請通過以下方式聯絡我們:
- 在線客服:通過網站聊天窗口
- 技術文檔:本站點提供詳細的 API 文檔和使用指南
我們致力於為您提供最優質的代理服務和技術支援。
認證方式
IPFast API 使用 API Key 進行認證。每個請求都需要在 HTTP Header 中包含您的 API Key。
API Key 認證
在每個 API 請求的 Header 中添加CODE和TOKEN字段:
--header 'x-merchant-token: CODE'
--header 'x-merchant-code: TOKEN'
示例:
fetch('/api/ipft/simple/check', {
headers: {
'x-merchant-token': 'YOU TOKEN',
'x-merchant-code': 'YOU CODE'
}
})
示例輸出:
{"msg":"驗證成功,歡迎使用","code":200}
獲取 API Key
- 登入您的 IPFast 帳戶
- 進入控制面板的 API 設置頁面
- 生成新的 API Key

安全建議
- 請妥善保管您的 API Key,不要洩露給他人
- 定期更換 API Key 以提高安全性
- 不要在客戶端代碼中硬編碼 API Key
- 如果懷疑 API Key 洩露,請立即重新生成
動態 IP
動態 IP 核心介面說明。
開放介面與文檔
與控制檯請求一致的 URL、請求頭(x-merchant-token、x-merchant-code)即可通過開放 API 調用。訂單創建、列表與支付見 訂單服務。
服務目錄
套餐與下單
子帳號管理
- 獲取子帳號列表
- 查詢子帳號基礎資訊
- 查詢子帳號流量餘額
- 按子帳號查詢剩餘/總量/已用流量(MB)
- 創建子帳號
- 創建動態子帳號
- 編輯子帳號(流量)
- 調整子帳號分配流量
- 刪除子帳號(回收)
- 回收子帳號並退回套餐可分配流量
地區與導出
訂單服務
獲取流量套餐列表
查詢動態流量套餐,用於下單頁展示可選套餐。
介面資訊
GET /client/ip/dynamics/planConfig
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| capacity | 否 | String | 套餐流量容量(GB) |
| title | 否 | String | 套餐標題關鍵字 |
| pageNum | 否 | Long | 頁碼,預設 1 |
| pageSize | 否 | Long | 每頁條數 |
請求示例
const response = await fetch('/client/ip/dynamics/planConfig?pageNum=1&pageSize=10', {
method: 'GET',
headers: {
'x-merchant-token': 'your-token-here',
'x-merchant-code': 'your-merchant-code'
}
})
const result = await response.json()
回應示例
{
"total": 2,
"rows": [
{
"id": 101,
"title": "Dynamic 50GB",
"capacity": 50,
"price": 399,
"discount": 1,
"days": 30,
"status": "Y"
}
],
"code": 200,
"msg": "查詢成功"
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| total | Long | 符合條件的總記錄數 |
| rows | Array | 當前頁的套餐列表 |
| code | Integer | 業務狀態碼 |
| msg | String | 提示資訊 |
| rows[].id | Long | 套餐設定 ID,下單時作為 configPlanId |
| rows[].title | String | 套餐標題 |
| rows[].capacity | Number | 流量容量(GB) |
| rows[].price | Number | 價格 |
| rows[].discount | Number | 折扣相關數值(以實際業務為準) |
| rows[].days | Integer | 有效天數 |
| rows[].status | String | 上架狀態,Y 表示可用 |
注意事項
- 介面僅返回可用套餐。
- 返回體不包含
tenantId、merchantId、tenantPrice、createTime、updateTime。 - 常用字段為
id/title/capacity/price/discount/days/status。
獲取套餐詳情
查詢當前帳號的動態流量套餐詳情,用於展示總流量、剩餘流量、到期時間等資訊。
介面資訊
GET /client/plan/detail
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
請求參數
無
請求示例
const response = await fetch('/client/plan/detail', {
method: 'GET',
headers: {
'x-merchant-token': 'your-token-here',
'x-merchant-code': 'your-merchant-code'
}
})
const result = await response.json()
回應示例
{
"code": 200,
"msg": "操作成功",
"data": {
"id": 1001,
"merchantId": 20001,
"planType": "residential",
"planTrafficGb": 50,
"planResidueTrafficGb": 30,
"expirationDate": "2026-12-31 00:00:00",
"expired": 0,
"createTime": "2026-01-01 10:00:00",
"updateTime": "2026-04-01 12:00:00"
}
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| code | Integer | 業務狀態碼,成功一般為 200 |
| msg | String | 提示資訊 |
| data | Object | 當前商戶的訂閱計劃;無計劃時為 null |
| data.id | Long | 計劃記錄 ID |
| data.merchantId | Long | 商戶 ID(與令牌對應商戶一致) |
| data.planType | String | 計劃類型,如 residential(住宅)、datacenter(數據中心) |
| data.planTrafficGb | Number | 套餐總流量(GB) |
| data.planResidueTrafficGb | Number | 剩餘可分配流量(GB) |
| data.expirationDate | String | 套餐到期時間 |
| data.expired | Integer | 是否過期:0 否,1 是 |
| data.createTime | String | 創建時間 |
| data.updateTime | String | 更新時間 |
下單流量套餐
創建動態流量訂單,返回訂單號用於後續支付。
介面資訊
POST /client/order/addDynamics
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
| Content-Type | 是 | string | application/json |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| configPlanId | 是 | Long | 動態套餐設定 ID |
請求示例
const response = await fetch('/client/order/addDynamics', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-merchant-token': 'your-token-here',
'x-merchant-code': 'your-merchant-code'
},
body: JSON.stringify({
configPlanId: 101
})
})
const result = await response.json()
回應示例
{
"msg": "下單成功",
"code": 200,
"data": "N2026040100012345678"
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| code | Integer | 業務狀態碼 |
| msg | String | 提示資訊 |
| data | String | 新創建的訂單號,用於跳轉支付或查詢訂單 |
注意事項
- 本介面只創建待支付訂單並返回訂單號,不涉及支付方式;支付時在 訂單支付 中指定方式(例如餘額支付可傳
BALANCE)。 - 訂單數量固定為 1,流量容量以套餐設定為準。
- 後端會校驗套餐是否可用,並按套餐價格計算訂單金額。
- 下單後需要調用支付介面完成支付。
查詢流量分配訂單
查詢當前商戶分配流量記錄。用於核對套餐/流量曾向哪些子帳號做過分配及分配量、時間。
介面資訊
GET /client/plan/order/allocations
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| pageNum | 否 | Integer | 頁碼 |
| pageSize | 否 | Integer | 每頁數量 |
列表按 create_time 倒序(最新在前)。
回應示例
{
"total": 2,
"rows": [
{
"account_id": "384940",
"plan_traffic_gb": 100.00,
"create_time": "2025-07-22 11:19:40"
},
{
"account_id": "384941",
"plan_traffic_gb": 50.5,
"create_time": "2025-07-21 09:00:00"
}
],
"code": 200,
"msg": "查詢成功"
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| total | Long | 總記錄數 |
| rows | Array | 當前頁數據 |
| code | Integer | 業務狀態碼 |
| msg | String | 提示資訊 |
| rows[].account_id | String | 業務子帳號ID |
| rows[].plan_traffic_gb | Number | 該筆分配的計劃流量(GB) |
| rows[].create_time | String | 創建時間,yyyy-MM-dd HH:mm:ss |
代碼示例
fetch('/client/plan/order/allocations?pageNum=1&pageSize=20', {
method: 'GET',
headers: {
'x-merchant-token': 'your_token',
'x-merchant-code': 'your_code'
}
})
.then((r) => r.json())
.then((data) => console.log(data));
創建子帳號
創建動態子帳號。
介面資訊
POST /client/dynamics/account
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
| Content-Type | 是 | string | application/json |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| label | 是 | String | 子帳號備註/標題 |
| account | 是 | String | 子帳號登入名 |
| password | 是 | String | 子帳號密碼 |
| trafficLimit | 否 | Integer | 分配流量(GB),僅支援正整數,不傳預設 1 |
請求示例
const response = await fetch('/client/dynamics/account', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-merchant-token': 'your-token-here',
'x-merchant-code': 'your-merchant-code'
},
body: JSON.stringify({
label: '業務A帳號',
account: 'demo_sub_user_01',
password: 'demo_pass_01',
trafficLimit: 2
})
})
const result = await response.json()
回應示例
{
"msg": "操作成功",
"code": 200
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| code | Integer | 業務狀態碼 |
| msg | String | 提示資訊 |
注意事項
trafficLimit僅支援正整數(如 1、2、3)。- 創建前需確保帳號有可用流量套餐。
獲取子帳號列表
查詢動態子帳號列表。
介面資訊
GET /client/dynamics/account/list
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| pageNum | 否 | Integer | 頁碼 |
| pageSize | 否 | Integer | 每頁數量 |
| account | 否 | String | 帳號關鍵字 |
| status | 否 | String | 狀態 |
回應示例
{
"total": 1,
"rows": [
{
"accountId": "384940",
"account": "account1234",
"status": "active",
"poolType": "standard",
"trafficLimit": 1000,
"remarks": null,
"createTime": "2025-07-22 11:19:40"
}
],
"code": 200,
"msg": "查詢成功"
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| total | Long | 總記錄數 |
| rows | Array | 當前頁子帳號列表 |
| code | Integer | 業務狀態碼 |
| msg | String | 提示資訊 |
| rows[].accountId | String | 子帳號在平臺上的 ID(部分介面入參使用) |
| rows[].account | String | 子帳號登入名 |
| rows[].status | String | 狀態 |
| rows[].poolType | String | 池類型 |
| rows[].trafficLimit | Number | 分配流量上限(GB) |
| rows[].remarks | String | 備註(可能為 null) |
| rows[].createTime | String | 創建時間 |
查詢子帳號流量餘額
查詢指定子帳號的動態 IP 流量餘額(剩餘、總量、已用等)。
介面資訊
GET /client/dynamics/account/balance/info
請求頭
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| x-merchant-token | String | 商戶令牌 |
| x-merchant-code | String | 商戶代碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| accountId | 否 | String | 子帳號 ID(與 獲取子帳號列表 中的 accountId 一致)。不傳或為空時,返回當前商戶下所有子帳號的流量餘額列表。 |
| pageNum | 否 | Integer | 頁碼(與項目分頁約定一致,預設 1)。 |
| pageSize | 否 | Integer | 每頁條數(預設與系統分頁設定一致)。 |
回應示例
{
"total": 1,
"rows": [
{
"accountId": "816219",
"balance": 326999.978943,
"balanceFormat": "326999.98 MB",
"balanceTotal": 327000.000000,
"balanceTotalFormat": "327000.00 MB",
"balanceUsed": 0.021057,
"balanceUsedFormat": "0.02 MB"
}
],
"code": 200,
"msg": "查詢成功"
}
代碼示例
// 單個子帳號餘額
fetch('/client/dynamics/account/balance/info?accountId=816219', {
method: 'GET',
headers: {
'x-merchant-token': 'your_token',
'x-merchant-code': 'your_code'
}
})
.then(response => response.json())
.then(data => console.log(data));
// 當前商戶全部子帳號餘額(分頁)
fetch('/client/dynamics/account/balance/info?pageNum=1&pageSize=10', {
method: 'GET',
headers: {
'x-merchant-token': 'your_token',
'x-merchant-code': 'your_code'
}
})
.then(response => response.json())
.then(data => console.log(data));
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| total | Long | 總記錄數 |
| code | Integer | 業務狀態碼 |
| msg | String | 提示資訊 |
| rows | Array | 餘額明細列表 |
| rows[].accountId | String | 子帳號 ID |
| rows[].balance | Number | 剩餘流量(MB) |
| rows[].balanceFormat | String | 剩餘流量(展示用格式化字符串) |
| rows[].balanceTotal | Number | 總流量(MB) |
| rows[].balanceTotalFormat | String | 總流量(展示用) |
| rows[].balanceUsed | Number | 已使用流量(MB) |
| rows[].balanceUsedFormat | String | 已使用流量(展示用) |
查詢接入點
查詢帳號可用的接入點列表。
介面資訊
GET /client/dynamics/account/endpoint/info
請求頭
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| x-merchant-token | String | 商戶令牌 |
| x-merchant-code | String | 商戶代碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| accountId | 是 | Long | 用戶帳號ID |
代碼示例
fetch('/client/dynamics/account/endpoint/info?accountId=1', {
method: 'GET',
headers: {
'x-merchant-token': 'your_token',
'x-merchant-code': 'your_code'
}
})
.then(response => response.json())
.then(data => console.log(data));
回應示例
{
"total": 1,
"rows": [
{
"accountId": "384933",
"endpointHost": "gate-us.host.io",
"endpointPort": 13233,
"supportedProtocol": "http"
}
],
"code": 200,
"msg": "查詢成功"
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| total | Long | 總記錄數 |
| code | Integer | 業務狀態碼 |
| msg | String | 提示資訊 |
| rows | Array | 接入點列表 |
| rows[].accountId | String | 子帳號 ID |
| rows[].endpointHost | String | 接入點主機 |
| rows[].endpointPort | Integer | 接入點端口 |
| rows[].supportedProtocol | String | 支援的協議(如 http、socks5 等) |
編輯子帳號(流量)
編輯動態子帳號資訊,重點用於調整分配流量,支援按 GB 調整總流量。
介面資訊
PUT /client/dynamics/account
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
| Content-Type | 是 | string | application/json |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| accountId | 是 | String | 子帳號帳號ID |
| trafficLimit | 否 | Integer | 新總流量(GB),僅支援正整數 |
請求示例
const response = await fetch('/client/dynamics/account', {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
'x-merchant-token': 'your-token-here',
'x-merchant-code': 'your-merchant-code'
},
body: JSON.stringify({
accountId: "y3i8cknw",
trafficLimit: 8
})
})
const result = await response.json()
回應示例
{
"msg": "操作成功",
"code": 200
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| code | Integer | 業務狀態碼 |
| msg | String | 提示資訊 |
注意事項
trafficLimit僅支援正整數(如 1、2、3)。
刪除子帳號(回收)
回收(刪除)當前商戶下的動態子帳號:解除佔用並按規則退回未使用流量至套餐可分配額度。
介面資訊
DELETE /client/dynamics/account/{accountIds}
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
路徑參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| accountIds | 是 | String | 子帳號 accountId(與列表、詳情中字段一致)。多個時在同一路徑段內用英文逗號分隔,例如 id1,id2 |
請求示例
const accountId = 'y3i8cknw'
const response = await fetch('/client/dynamics/account/' + encodeURIComponent(accountId), {
method: 'DELETE',
headers: {
'x-merchant-token': 'your-token-here',
'x-merchant-code': 'your-merchant-code'
}
})
const result = await response.json()
回應示例
{
"msg": "操作成功",
"code": 200
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| code | Integer | 業務狀態碼 |
| msg | String | 提示資訊 |
獲取可用地區
根據動態子帳號查詢可用地區樹。
介面資訊
GET /client/dynamics/region/countries
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| accountId | 是 | Long | 子帳號 ID |
請求示例
const response = await fetch('/client/dynamics/region/countries?accountId=123', {
method: 'GET',
headers: {
'x-merchant-token': 'your-token-here',
'x-merchant-code': 'your-merchant-code'
}
})
const result = await response.json()
回應示例
{
"msg": "操作成功",
"code": 200,
"data": [
{
"countryCode": "US",
"countryName": "United States",
"states": [
{
"stateCode": "CA",
"stateName": "California",
"cities": [
{
"cityCode": "LosAngeles",
"cityName": "Los Angeles"
}
]
}
]
}
]
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| code | Integer | 業務狀態碼 |
| msg | String | 提示資訊 |
| data | Array | 國家列表,每項含下級州/城市 |
| data[].countryCode | String | 國家代碼 |
| data[].countryName | String | 國家名稱 |
| data[].states | Array | 州/省列表 |
| data[].states[].stateCode | String | 州/省代碼 |
| data[].states[].stateName | String | 州/省名稱 |
| data[].states[].cities | Array | 城市列表 |
| data[].states[].cities[].cityCode | String | 城市代碼 |
| data[].states[].cities[].cityName | String | 城市名稱 |
注意事項
- 介面返回國家/州/城市樹,前端可按需展開為三級下拉。
導出代理串
導出介面用於批量生成代理串。
介面資訊
POST /client/ip/dynamics/exportIp
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
| Content-Type | 是 | string | application/json |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| accountId | 是 | String | 動態帳號ID |
| endpointHost | 是 | String | 接入點 Host |
| endpointPort | 是 | String | 接入點 Port |
| count | 是 | Integer | 導出數量(1-1000) |
| formatType | 是 | Integer | 0~3 |
| countryCode | 否 | String | 國家 |
| stateCode | 否 | String | 州/省 |
| cityCode | 否 | String | 城市 |
| sessionCode | 否 | String | 會話標識(可用於 sticky 類需求) |
| sessionTime | 否 | String | 會話時長 |
請求示例
const response = await fetch('/client/ip/dynamics/exportIp', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-merchant-token': 'your-token-here',
'x-merchant-code': 'your-merchant-code'
},
body: JSON.stringify({
accountId: '816222',
endpointHost: 'as.example.net',
endpointPort: '2333',
count: 3,
formatType: 3
})
})
const result = await response.json()
回應示例
{
"msg": "操作成功",
"code": 200,
"data": [
"host:port:username:password"
]
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| code | Integer | 業務狀態碼 |
| msg | String | 提示資訊 |
| data | Array | 代理串列表(每項為字符串),格式與 formatType 一致(如 host:port:user:pass) |
靜態代理
靜態代理服務提供固定IP地址的代理解決方案,支援多國家地區的IP資源,具有高穩定性和獨享性特點。
服務目錄
IP管理
訂單管理
主要特點
- 固定的IP地址資源
- 穩定可靠的網路質量
- 多區域IP資源支援
- 完善的訂單管理系統
- 便捷的支付流程
- 詳細的使用文檔
快速開始
-
查看IP資源
- 使用IP位置查詢功能瀏覽可用資源
- 選擇合適的IP地址
-
購買服務
- 通過下單功能選擇所需IP
- 確認訂單資訊
- 完成支付流程
-
管理IP
- 使用IP列表查詢功能管理已購IP
- 監控IP使用狀態
- 及時續費或升級服務
ip列表查詢
查詢已購買的靜態IP列表。
介面資訊
GET /client/ip/pool/item/merchantIpList
請求頭
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| x-merchant-token | String | 商戶令牌 |
| x-merchant-code | String | 商戶代碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| ip | 否 | String | IP |
| status | 否 | Integer | IP狀態:1-已生效, 2-已過期 3-已退訂 |
| type | 否 | Integer | IP類別:0廣播 1原生 |
| ipCategory | 否 | String | IP屬性:HOST-住宅, IDC-機房 |
| orderNo | 否 | String | 訂單號 |
| pageSize | 否 | Integer | 每頁顯示記錄數 |
| pageNum | 否 | Integer | 當前頁碼 |
代碼示例
/client/ip/pool/item/merchantIpList?ip=156.252&status=1&type=1&pageSize=1
回應示例
{
"total": 58,
"rows": [
{
"createBy": null,
"createTime": "2025-03-24 20:22:31",
"updateBy": null,
"updateTime": "2025-03-24 23:26:14",
"remark": null,
"id": 147,
"poolId": 1,
"merchantId": 1,
"lastOrderId": 176,
"sourceCode": null,
"sourceName": null,
"account": "justinka",
"password": "34372766",
"port": "2340",
"ip": "156.252.8.76",
"protocolse": null,
"effectiveDatetime": "2025-03-24 20:22:31",
"expireDatetime": "2025-05-23 20:22:31",
"status": 1,
"type": 1,
"ipCategory": "HOST",
"continent": "Asia",
"countryCode": "VN",
"location": "",
"bandwidth": 10,
"hot": "N"
}
],
"code": 200,
"msg": "查詢成功"
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| id | Long | 記錄ID |
| account | String | 帳號 |
| password | String | 密碼 |
| port | String | 端口 |
| ip | String | IP地址 |
| effectiveDatetime | String | 生效時間(東八區,yyyy-MM-dd HH:mm:ss) |
| expireDatetime | String | 到期時間(東八區,yyyy-MM-dd HH:mm:ss) |
| status | Integer | 狀態:1-已生效, 2-已過期 3-已退訂 |
| type | Integer | IP類別 0廣播 1原生 |
| ipCategory | String | IP屬性 HOST住宅 IDC機房 |
| continent | String | 大洲 |
| countryCode | String | 國家代碼 |
| location | String | 位置 |
| bandwidth | Integer | 帶寬規格(Mbps),如 5、10 |
修改帳密
修改已購買靜態 IP 的帳號或密碼,支援批量(單次最多 10 個)。
介面資訊
POST /client/ip/pool/item/changeCredential
請求頭
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| x-merchant-token | String | 商戶令牌 |
| x-merchant-code | String | 商戶代碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| ipList | 是 | Array[String] | IP 列表 |
| account | 否 | String | 新帳號,不修改可不傳 |
| password | 否 | String | 新密碼,不修改可不傳 |
帳號、密碼至少填寫一項。
填寫時須滿足:首位為字母(不能為數字),長度 8-12 位,且同時包含大寫字母、小寫字母與數字。
請求示例
const response = await fetch('/client/ip/pool/item/changeCredential', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-merchant-token': 'your-token-here',
'x-merchant-code': 'your-merchant-code'
},
body: JSON.stringify({
ipList: ['156.252.8.76', '156.252.8.77'],
account: 'newuser',
password: 'newpass123'
})
});
const result = await response.json();
回應示例
{
"msg": "操作成功",
"code": 200,
"data": {
"successCount": 2,
"failCount": 0,
"successIPList": ["156.252.8.76", "156.252.8.77"],
"failIPList": []
}
}
回應字段
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| data.successCount | Integer | 成功修改的 IP 數量 |
| data.failCount | Integer | 修改失敗的 IP 數量 |
| data.successIPList | Array[String] | 成功修改的 IP 列表 |
| data.failIPList | Array[String] | 修改失敗的 IP 列表 |
說明
- 僅支援狀態為「已生效」的 IP
- 單次最多 10 個 IP
- 部分 IP 可能不支援修改帳號或密碼,以介面返回為準
可購地區列表查詢
查詢可購買地區IP數量
介面資訊
GET /client/ip/pool/regionalAvailableIps
請求頭
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| x-merchant-token | String | 商戶令牌 |
| x-merchant-code | String | 商戶代碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| type | 否 | Integer | IP類別 0廣播 1原生 |
| ipCategory | 否 | String | IP屬性 IDC機房 HOST住宅 |
| continents | 否 | Array[String] | 州列表 |
| countryCodes | 否 | Array[String] | 國家代碼列表 |
| locations | 否 | Array[String] | 省/區列表 |
| bandwidth | 否 | Integer | 帶寬規格(Mbps),如 5、10;不傳時每個可購地區可能返回多條記錄,分別對應不同帶寬規格 |
代碼示例
/client/ip/pool/regionalAvailableIps
回應示例
{
"total": 3,
"rows": [
{
"id": 19,
"type": 1,
"ipCategory": "HOST",
"continent": "asia",
"countryCode": "hk",
"location": "hongkong",
"bandwidth": 10,
"price": 30.0000,
"ipTotals": 100
},
{
"id": 19,
"type": 1,
"ipCategory": "HOST",
"continent": "asia",
"countryCode": "hk",
"location": "hongkong",
"bandwidth": 5,
"price": 20.0000,
"ipTotals": 413
},
{
"id": 24,
"type": 1,
"ipCategory": "HOST",
"continent": "north_america",
"countryCode": "us",
"location": "newyork",
"bandwidth": 5,
"price": 18.0000,
"ipTotals": 200
}
],
"code": 200,
"msg": "查詢成功"
}
同一地區 id 可能出現多條記錄,以 bandwidth 區分不同帶寬規格;price、ipTotals 均為該帶寬規格下的單價與可購數量。
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| id | Integer | 地區標識,與下單時的國家/地區組合對應 |
| type | Integer | IP類別:0-廣播, 1-原生 |
| ipCategory | String | IP屬性:HOST-住宅, IDC-機房 |
| continent | String | 大洲 |
| countryCode | String | 國家代碼 |
| location | String | 省/區位置 |
| bandwidth | Integer | 帶寬規格(Mbps),如 5、10 |
| price | double | 該帶寬規格下的月單價(元) |
| ipTotals | Integer | 該帶寬規格下的可購數量 |
錢包餘額查詢
錢包餘額查詢
介面資訊
GET /client/merchant/walletInfo
請求頭
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| x-merchant-token | String | 商戶令牌 |
| x-merchant-code | String | 商戶代碼 |
回應示例
{
"msg": "操作成功",
"code": 200,
"data": {
"balance": 20.000,
"totalAmount": 100.500
}
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| balance | double | 餘額 |
| totalAmount | double | 總花費金額 |
靜態代理訂單
靜態代理訂單模塊提供了靜態IP代理服務的訂購和管理功能。通過這些介面,您可以購買靜態IP代理、管理訂單並完成支付。
功能特點
訂單管理
支付處理
- 訂單支付
- 支援多種支付方式
- 實時支付狀態更新
- 自動餘額校驗
- 支付結果通知
使用流程
-
創建訂單
- 選擇購買數量和週期
- 確認訂單金額
- 聯絡我們確保IP庫存充足(臨時方案,後續會開發介面自主查詢庫存)
- 提交訂單請求 調用/client/order/addStatic介面
- 獲取訂單ID 獲取resp.data作為訂單ID
-
完成支付
- 使用訂單ID發起支付 調用/client/payment/order/pay/{orderId}介面
- 選擇支付方式 當前僅支援BALANCE
- 確認支付結果
- 查看訂單狀態
使用建議
- 下單前確認所需的靜態IP數量
- 注意檢查帳戶餘額是否充足
- 保存訂單ID以便後續查詢
- 及時確認支付結果狀態
- 如遇支付失敗,查看具體錯誤資訊
新購下單
本介面用於新購下單
介面資訊
POST /client/order/addStatic
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| countryNums | 是 | Array of CountryNumsItemVO | 國家IP數量分配列表 |
| monthCount | 是 | Long | 購買幾個月 |
CountryNumsItemVO結構
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| countryCode | 是 | String | 國家代碼 |
| location | 是 | String | 省/州/區 |
| num | 是 | Long | 該國家需要的IP數量 |
| ipType | 是 | Long | 0:廣播 1:原生 |
| ipCategory | 是 | String | HOST-住宅 IDC-機房 |
| bandwidth | 是 | Integer | 帶寬規格(Mbps),如 5、10;見下方「帶寬說明」 |
請求示例
const response = await fetch('/client/order/addStatic', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-merchant-token': 'your-token-here',
'x-merchant-code': 'your-merchant-code'
},
body: JSON.stringify({
"countryNums": [
{
"countryCode": "US",
"num": "2",
"location" : "New York",
"ipType":1,
"ipCategory":"HOST",
"bandwidth":10
}
],
"monthCount":1
})
});
const result = await response.json();
回應結果
{
"msg": "操作成功",
"code": 200,
"data": "N2025032701271232584"
}
帶寬說明
countryNums 中每一項必須傳入 bandwidth(單位 Mbps,常見取值為 5、10):
- 按指定帶寬計價、校驗庫存並開通;若該地區未設定該帶寬的售價或庫存不足,下單失敗。
- 未傳或傳
null時介面返回錯誤,例如:countryNums[0].bandwidth不能為空。 - 服務端不會再按 10 Mbps → 5 Mbps 自動選檔。
建議:先調用 可購地區列表查詢,按返回記錄中的 bandwidth、price、ipTotals 下單,並與本介面傳入值保持一致。
注意事項
- 同一國家/地區若存在多種帶寬規格,必須為每一行
countryNums顯式傳入目標bandwidth。
續費下單
本介面用於續費下單,支援批量IP續費。
介面資訊
POST /client/order/renewIpList
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| ipList | 是 | Array[String] | IP列表 |
| monthCount | 是 | Long | 續費幾個月 |
請求示例
const response = await fetch('/client/order/renewIpList', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-merchant-token': 'your-token-here',
'x-merchant-code': 'your-merchant-code'
},
body: JSON.stringify({
"ipList": [
"43.255.80.100"
],
"monthCount": 1
})
});
const result = await response.json();
回應結果
{
"msg": "下單成功",
"code": 200,
"data": "N2025032701271232584"
}
退訂下單
本介面用於退訂下單,支援批量IP退訂。
介面資訊
POST /client/order/unsubscribeStaticIps
請求頭
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| x-merchant-token | 是 | string | 商戶訪問令牌 |
| x-merchant-code | 是 | string | 商戶編碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| ipList | 是 | Array[String] | IP列表 |
請求示例
const response = await fetch('/client/order/unsubscribeStaticIps', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-merchant-token': 'your-token-here',
'x-merchant-code': 'your-merchant-code'
},
body: JSON.stringify({
"ipList": [
"43.255.80.100"
]
})
});
const result = await response.json();
回應結果
{
"msg": "操作成功",
"code": 200,
"data": "true"
}
帶寬監控日誌
按機器 IP 與日期範圍查詢帶寬、CPU、內存、TCP 等監控數據,用於不限量代理機器的運行監控與排查。
介面資訊
GET /client/ip/unlimited/log
請求頭
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| x-merchant-token | String | 商戶令牌 |
| x-merchant-code | String | 商戶代碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| ip | 是 | String | 機器 IP |
| startDate | 是 | String | 開始日期,格式 yyyy-MM-dd |
| endDate | 是 | String | 結束日期,格式 yyyy-MM-dd |
代碼示例
/client/ip/unlimited/log?ip=192.168.1.1&startDate=2026-02-27&endDate=2026-02-27
回應示例
{
"bandwidth": [18, 23, 21, 21, 23, 25],
"cpu": [13, 16, 15, 16, 16, 17],
"dates": ["02-27 00:00", "02-27 00:01", "02-27 00:03", "02-27 00:04", "02-27 00:05", "02-27 00:06"],
"mem": [42, 42, 42, 42, 43, 44],
"tcp": [49240, 53572, 56375, 54897, 55624, 59692]
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| bandwidth | Array[Integer] | 各採樣點帶寬指標(與 dates 一一對應),單位MB |
| cpu | Array[Integer] | 各採樣點 CPU 使用率(與 dates 一一對應),單位% |
| dates | Array[String] | 採樣時間點,格式 MM-dd HH:mm |
| mem | Array[Integer] | 各採樣點內存使用率(與 dates 一一對應),單位% |
| tcp | Array[Integer] | 各採樣點 TCP 連接數(與 dates 一一對應) |
數組長度一致,同一索引對應同一時刻的帶寬、CPU、日期、內存、TCP 數據。
訂單服務
通用訂單能力說明。
服務目錄
訂單列表查詢
查詢已購訂單列表
介面資訊
GET /client/order/orderList
請求頭
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| x-merchant-token | String | 商戶令牌 |
| x-merchant-code | String | 商戶代碼 |
請求參數
| 參數名稱 | 必選 | 類型 | 說明 |
|---|---|---|---|
| orderNo | 否 | String | 訂單號 |
| productType | 否 | Integer | 產品類型,2-靜態IP |
回應示例
{
"total": 1,
"rows": [
{
"createTime": "2025-10-22 17:02:52",
"remark": null,
"id": 157,
"merchantId": 1,
"orderNo": "IPF2025102217025244134",
"productName": "Static Regular",
"productType": 2,
"quantity": 1,
"totalAmount": 0.010,
"currency": "CNY",
"status": 0,
"paidStatus": 20,
"payMethod": "ALIPAY",
"orderItems": [
{
"password": "12345678",
"expireDatetime": "2025-11-21 17:02:53",
"port": "8080",
"countryCode": "nz",
"unsubscribeTime": null,
"ip": "203.97.15.28",
"effectiveDatetime": "2025-10-22 17:02:53",
"days": 30,
"location": "wellingtont",
"account": "ipfast@2025",
"status": "Y"
}
]
}
],
"code": 200,
"msg": "查詢成功"
}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| orderNo | String | 訂單號 |
| productName | String | 產品名稱 |
| productType | Integer | 產品類型,2-靜態IP |
| totalAmount | double | 總價格 |
| currency | String | 貨幣 |
| status | Integer | 訂單狀態,0-未生效,10-已生效,20-已過期 |
| paidStatus | Integer | 支付狀態,0-已取消,10-未支付,20-已支付 |
| payMethod | String | 支付方式,BALANCE-餘額支付,ALIPAY-支付寶 |
| createTime | String | 創建時間(東八區,yyyy-MM-dd HH:mm:ss) |
| orderItems | List | 訂單產品明細 |
靜態訂單orderItems
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| ip | String | IP |
| port | String | 端口 |
| account | String | 帳號 |
| password | String | 密碼 |
| countryCode | String | 國家代碼(2位) |
| location | String | 地區 |
| status | String | 狀態,P-待發貨,Y-已發貨,N-已過期,T-已退訂 |
| effectiveDatetime | String | 生效時間(東八區,yyyy-MM-dd HH:mm:ss) |
| expireDatetime | String | 過期時間(東八區,yyyy-MM-dd HH:mm:ss) |
| unsubscribeTime | String | 退訂時間(未退訂為 null;已退訂為東八區 yyyy-MM-dd HH:mm:ss) |
訂單支付
支付訂單。
介面資訊
POST /client/payment/order/pay/{orderId}
請求頭
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| x-merchant-token | String | 商戶令牌 |
| x-merchant-code | String | 商戶代碼 |
| Content-Type | String | application/json |
路徑參數
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| orderId | String | 訂單ID,從下單返回值中獲取 |
請求參數
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| payment | String | 支付方式,目前僅支援"BALANCE" |
請求示例
{
"payment": "BALANCE"
}
代碼示例
fetch('/client/payment/order/pay/N2025032701271232584', {
method: 'POST',
headers: {
'x-merchant-token': 'your_token',
'x-merchant-code': 'your_code',
'Content-Type': 'application/json'
},
body: JSON.stringify({
payment: "BALANCE"
})
})
.then(response => response.json())
.then(data => console.log(data));
回應示例
{
"msg": "操作成功",
"code": 200,
"data": {
"paymentType": "BALANCE",
"paymentName": "餘額支付",
"orderId": 207,
"status": 1,
"payMessage": "success"
}
}
//錯誤返回
{"msg":"餘額不足","code":500}
回應參數說明
| 參數名稱 | 類型 | 說明 |
|---|---|---|
| paymentType | String | 支付方式 |
| paymentName | String | 支付方式名稱 |
| status | Integer | 支付狀態(1=支付成功,0=支付失敗) |
| orderId | String | 訂單ID |
| payMessage | String | 支付資訊 |
錯誤碼說明
| 錯誤碼 | 說明 |
|---|---|
| 500 | 訂單已失效 |
| 500 | 商戶錢包帳戶不存在 |
| 500 | 餘額不足 |
額外說明
部分商品發貨支援Webhook回調通知,詳見IPFast工作臺-我的帳戶-Webhook。