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操作系统
  • 资源隔离:硬件资源全隔离,便于业务高负载使用
  • 实时监控:提供详细的流量统计和使用报告

快速开始

  1. 了解认证方式 - 获取并使用 API Key
  2. 选择适合您的代理类型:

技术支持

如果您在使用过程中遇到任何问题,或需要了解更多信息,请通过以下方式联系我们:

  • 在线客服:通过网站聊天窗口
  • 技术文档:本站点提供详细的 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

  1. 登录您的 IPFast 账户
  2. 进入控制面板的 API 设置页面
  3. 生成新的 API Key

API Key 设置页面

安全建议

  • 请妥善保管您的 API Key,不要泄露给他人
  • 定期更换 API Key 以提高安全性
  • 不要在客户端代码中硬编码 API Key
  • 如果怀疑 API Key 泄露,请立即重新生成

动态 IP

动态 IP 核心接口说明。

开放接口与文档

与控制台请求一致的 URL、请求头(x-merchant-tokenx-merchant-code)即可通过开放 API 调用。订单创建、列表与支付见 订单服务

服务目录

套餐与下单

子账号管理

地区与导出

订单服务

获取流量套餐列表

查询动态流量套餐,用于下单页展示可选套餐。

接口信息

GET /client/ip/dynamics/planConfig

请求头

参数名必选类型说明
x-merchant-tokenstring商户访问令牌
x-merchant-codestring商户编码

请求参数

参数名必选类型说明
capacityString套餐流量容量(GB)
titleString套餐标题关键字
pageNumLong页码,默认 1
pageSizeLong每页条数

请求示例

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": "查询成功"
}

响应参数说明

参数名类型描述
totalLong符合条件的总记录数
rowsArray当前页的套餐列表
codeInteger业务状态码
msgString提示信息
rows[].idLong套餐配置 ID,下单时作为 configPlanId
rows[].titleString套餐标题
rows[].capacityNumber流量容量(GB)
rows[].priceNumber价格
rows[].discountNumber折扣相关数值(以实际业务为准)
rows[].daysInteger有效天数
rows[].statusString上架状态,Y 表示可用

注意事项

  1. 接口仅返回可用套餐。
  2. 返回体不包含 tenantIdmerchantIdtenantPricecreateTimeupdateTime
  3. 常用字段为 id/title/capacity/price/discount/days/status

获取套餐详情

查询当前账号的动态流量套餐详情,用于展示总流量、剩余流量、到期时间等信息。

接口信息

GET /client/plan/detail

请求头

参数名必选类型说明
x-merchant-tokenstring商户访问令牌
x-merchant-codestring商户编码

请求参数

请求示例

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"
  }
}

响应参数说明

参数名类型描述
codeInteger业务状态码,成功一般为 200
msgString提示信息
dataObject当前商户的订阅计划;无计划时为 null
data.idLong计划记录 ID
data.merchantIdLong商户 ID(与令牌对应商户一致)
data.planTypeString计划类型,如 residential(住宅)、datacenter(数据中心)
data.planTrafficGbNumber套餐总流量(GB)
data.planResidueTrafficGbNumber剩余可分配流量(GB)
data.expirationDateString套餐到期时间
data.expiredInteger是否过期:0 否,1
data.createTimeString创建时间
data.updateTimeString更新时间

下单流量套餐

创建动态流量订单,返回订单号用于后续支付。

接口信息

POST /client/order/addDynamics

请求头

参数名必选类型说明
x-merchant-tokenstring商户访问令牌
x-merchant-codestring商户编码
Content-Typestringapplication/json

请求参数

参数名必选类型说明
configPlanIdLong动态套餐配置 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"
}

响应参数说明

参数名类型描述
codeInteger业务状态码
msgString提示信息
dataString新创建的订单号,用于跳转支付或查询订单

注意事项

  1. 本接口只创建待支付订单并返回订单号,不涉及支付方式;支付时在 订单支付 中指定方式(例如余额支付可传 BALANCE)。
  2. 订单数量固定为 1,货币固定为 CNY,流量容量以套餐配置为准。
  3. 后端会校验套餐是否可用,并按套餐价格计算订单金额。
  4. 下单后需要调用支付接口完成支付。

查询流量分配订单

查询当前商户分配流量记录。用于核对套餐/流量曾向哪些子账号做过分配及分配量、时间。

接口信息

GET /client/plan/order/allocations

请求头

参数名必选类型说明
x-merchant-tokenstring商户访问令牌
x-merchant-codestring商户编码

请求参数

参数名必选类型说明
pageNumInteger页码
pageSizeInteger每页数量

列表按 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": "查询成功"
}

响应参数说明

参数名类型描述
totalLong总记录数
rowsArray当前页数据
codeInteger业务状态码
msgString提示信息
rows[].account_idString业务子账号ID
rows[].plan_traffic_gbNumber该笔分配的计划流量(GB)
rows[].create_timeString创建时间,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-tokenstring商户访问令牌
x-merchant-codestring商户编码
Content-Typestringapplication/json

请求参数

参数名必选类型说明
labelString子账号备注/标题
accountString子账号登录名
passwordString子账号密码
trafficLimitInteger分配流量(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
}

响应参数说明

参数名类型描述
codeInteger业务状态码
msgString提示信息

注意事项

  1. trafficLimit 仅支持正整数(如 1、2、3)。
  2. 创建前需确保账号有可用流量套餐。

获取子账号列表

查询动态子账号列表。

接口信息

GET /client/dynamics/account/list

请求头

参数名必选类型说明
x-merchant-tokenstring商户访问令牌
x-merchant-codestring商户编码

请求参数

参数名必选类型说明
pageNumInteger页码
pageSizeInteger每页数量
accountString账号关键字
statusString状态

响应示例

{
  "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": "查询成功"
}

响应参数说明

参数名类型描述
totalLong总记录数
rowsArray当前页子账号列表
codeInteger业务状态码
msgString提示信息
rows[].accountIdString子账号在平台上的 ID(部分接口入参使用)
rows[].accountString子账号登录名
rows[].statusString状态
rows[].poolTypeString池类型
rows[].trafficLimitNumber分配流量上限(GB)
rows[].remarksString备注(可能为 null
rows[].createTimeString创建时间

查询子账号流量余额

查询指定子账号的动态 IP 流量余额(剩余、总量、已用等)。

接口信息

GET /client/dynamics/account/balance/info

请求头

参数名类型描述
x-merchant-tokenString商户令牌
x-merchant-codeString商户代码

请求参数

参数名必选类型描述
accountIdString子账号 ID(与 获取子账号列表 中的 accountId 一致)。不传或为空时,返回当前商户下所有子账号的流量余额列表。
pageNumInteger页码(与项目分页约定一致,默认 1)。
pageSizeInteger每页条数(默认与系统分页配置一致)。

响应示例

{
    "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));

响应参数说明

参数名类型描述
totalLong总记录数
codeInteger业务状态码
msgString提示信息
rowsArray余额明细列表
rows[].accountIdString子账号 ID
rows[].balanceNumber剩余流量(MB)
rows[].balanceFormatString剩余流量(展示用格式化字符串)
rows[].balanceTotalNumber总流量(MB)
rows[].balanceTotalFormatString总流量(展示用)
rows[].balanceUsedNumber已使用流量(MB)
rows[].balanceUsedFormatString已使用流量(展示用)

查询接入点

查询账号可用的接入点列表。

接口信息

GET /client/dynamics/account/endpoint/info

请求头

参数名类型描述
x-merchant-tokenString商户令牌
x-merchant-codeString商户代码

请求参数

参数名必选类型描述
accountIdLong用户账号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": "查询成功"
}

响应参数说明

参数名类型描述
totalLong总记录数
codeInteger业务状态码
msgString提示信息
rowsArray接入点列表
rows[].accountIdString子账号 ID
rows[].endpointHostString接入点主机
rows[].endpointPortInteger接入点端口
rows[].supportedProtocolString支持的协议(如 httpsocks5 等)

编辑子账号(流量)

编辑动态子账号信息,重点用于调整分配流量,支持按 GB 调整总流量。

接口信息

PUT /client/dynamics/account

请求头

参数名必选类型说明
x-merchant-tokenstring商户访问令牌
x-merchant-codestring商户编码
Content-Typestringapplication/json

请求参数

参数名必选类型说明
accountIdString子账号账号ID
trafficLimitInteger新总流量(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
}

响应参数说明

参数名类型描述
codeInteger业务状态码
msgString提示信息

注意事项

  1. trafficLimit 仅支持正整数(如 1、2、3)。

删除子账号(回收)

回收(删除)当前商户下的动态子账号:解除占用并按规则退回未使用流量至套餐可分配额度。

接口信息

DELETE /client/dynamics/account/{accountIds}

请求头

参数名必选类型说明
x-merchant-tokenstring商户访问令牌
x-merchant-codestring商户编码

路径参数

参数名必选类型说明
accountIdsString子账号 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
}

响应参数说明

参数名类型描述
codeInteger业务状态码
msgString提示信息

获取可用地区

根据动态子账号查询可用地区树。

接口信息

GET /client/dynamics/region/countries

请求头

参数名必选类型说明
x-merchant-tokenstring商户访问令牌
x-merchant-codestring商户编码

请求参数

参数名必选类型说明
accountIdLong子账号 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"
            }
          ]
        }
      ]
    }
  ]
}

响应参数说明

参数名类型描述
codeInteger业务状态码
msgString提示信息
dataArray国家列表,每项含下级州/城市
data[].countryCodeString国家代码
data[].countryNameString国家名称
data[].statesArray州/省列表
data[].states[].stateCodeString州/省代码
data[].states[].stateNameString州/省名称
data[].states[].citiesArray城市列表
data[].states[].cities[].cityCodeString城市代码
data[].states[].cities[].cityNameString城市名称

注意事项

  1. 接口返回国家/州/城市树,前端可按需展开为三级下拉。

导出代理串

导出接口用于批量生成代理串。

接口信息

POST /client/ip/dynamics/exportIp

请求头

参数名必选类型说明
x-merchant-tokenstring商户访问令牌
x-merchant-codestring商户编码
Content-Typestringapplication/json

请求参数

参数名必选类型说明
accountIdString动态账号ID
endpointHostString接入点 Host
endpointPortString接入点 Port
countInteger导出数量(1-1000)
formatTypeInteger0~3
countryCodeString国家
stateCodeString州/省
cityCodeString城市
sessionCodeString会话标识(可用于 sticky 类需求)
sessionTimeString会话时长

请求示例

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"
  ]
}

响应参数说明

参数名类型描述
codeInteger业务状态码
msgString提示信息
dataArray代理串列表(每项为字符串),格式与 formatType 一致(如 host:port:user:pass

静态代理

静态代理服务提供固定IP地址的代理解决方案,支持多国家地区的IP资源,具有高稳定性和独享性特点。

服务目录

IP管理

  • IP列表查询
    • 查询已购买的IP列表
    • 支持分页和条件筛选
    • 显示IP详细信息
  • IP位置查询
    • 查询IP地理位置信息
    • 实时状态监控
    • 性能指标展示

订单管理

  • 订单列表
    • 订单状态跟踪
    • 订单详情查看
  • 下单
    • 支持批量购买
    • 多种支付方式
    • 灵活的配置选项
  • 订单支付
    • 支持多种支付方式
    • 实时支付状态更新
    • 支付结果通知

主要特点

  • 固定的IP地址资源
  • 稳定可靠的网络质量
  • 多区域IP资源支持
  • 完善的订单管理系统
  • 便捷的支付流程
  • 详细的使用文档

快速开始

  1. 查看IP资源

    • 使用IP位置查询功能浏览可用资源
    • 选择合适的IP地址
  2. 购买服务

    • 通过下单功能选择所需IP
    • 确认订单信息
    • 完成支付流程
  3. 管理IP

    • 使用IP列表查询功能管理已购IP
    • 监控IP使用状态
    • 及时续费或升级服务

ip列表查询

查询已购买的静态IP列表。

接口信息

GET /client/ip/pool/item/merchantIpList

请求头

参数名类型描述
x-merchant-tokenString商户令牌
x-merchant-codeString商户代码

请求参数

参数名必选类型描述
ipStringIP
statusIntegerIP状态:1-已生效, 2-已过期 3-已退订
typeIntegerIP类别:0广播 1原生
ipCategoryStringIP属性:HOST-住宅, IDC-机房
orderNoString订单号
pageSizeInteger每页显示记录数
pageNumInteger当前页码

代码示例

/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",
      "expireDatetime": "2025-05-23",
      "status": 1,
      "type": 1,
      "ipCategory": "HOST",
      "continent": "Asia",
      "countryCode": "VN",
      "location": "",
      "bandwidth": 10,
      "hot": "N"
    }
  ],
  "code": 200,
  "msg": "查询成功"
}

响应参数说明

参数名类型描述
idLong记录ID
accountString账号
passwordString密码
portString端口
ipStringIP地址
effectiveDatetimeString生效时间
expireDatetimeString到期时间
statusInteger状态:1-已生效, 2-已过期 3-已退订
typeIntegerIP类别 0广播 1原生
ipCategoryStringIP属性 HOST住宅 IDC机房
continentString大洲
countryCodeString国家代码
locationString位置
bandwidthInteger带宽规格(Mbps),如 5、10

可购地区列表查询

查询可购买地区IP数量

接口信息

GET /client/ip/pool/regionalAvailableIps

请求头

参数名类型描述
x-merchant-tokenString商户令牌
x-merchant-codeString商户代码

请求参数

参数名必选类型描述
typeIntegerIP类别 0广播 1原生
ipCategoryStringIP属性 IDC机房 HOST住宅
continentsArray[String]州列表
countryCodesArray[String]国家代码列表
locationsArray[String]省/区列表
bandwidthInteger带宽规格(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,
      "price7": null,
      "ipTotals": 100
    },
    {
      "id": 19,
      "type": 1,
      "ipCategory": "HOST",
      "continent": "asia",
      "countryCode": "hk",
      "location": "hongkong",
      "bandwidth": 5,
      "price": 20.0000,
      "price7": null,
      "ipTotals": 413
    },
    {
      "id": 24,
      "type": 1,
      "ipCategory": "HOST",
      "continent": "north_america",
      "countryCode": "us",
      "location": "newyork",
      "bandwidth": 5,
      "price": 18.0000,
      "price7": null,
      "ipTotals": 200
    }
  ],
  "code": 200,
  "msg": "查询成功"
}

同一地区 id 可能出现多条记录,以 bandwidth 区分不同带宽规格;priceipTotals 均为该带宽规格下的单价与可购数量。

响应参数说明

参数名类型描述
idInteger地区标识,与下单时的国家/地区组合对应
typeIntegerIP类别:0-广播, 1-原生
ipCategoryStringIP属性:HOST-住宅, IDC-机房
continentString大洲
countryCodeString国家代码
locationString省/区位置
bandwidthInteger带宽规格(Mbps),如 5、10
pricedouble该带宽规格下的月单价(元)
price7double该带宽规格下的 7 天单价(元);无 7 天售价时为 null
ipTotalsInteger该带宽规格下的可购数量

钱包余额查询

钱包余额查询

接口信息

GET /client/merchant/walletInfo

请求头

参数名类型描述
x-merchant-tokenString商户令牌
x-merchant-codeString商户代码

响应示例

{
  "msg": "操作成功",
  "code": 200,
  "data": {
    "balance": 20.000,
    "totalAmount": 100.500
  }
}

响应参数说明

参数名类型描述
balancedouble余额
totalAmountdouble总花费金额

静态代理订单

静态代理订单模块提供了静态IP代理服务的订购和管理功能。通过这些接口,您可以购买静态IP代理、管理订单并完成支付。

功能特点

订单管理

  • 订单列表
    • 提供详细的订单信息
  • 下单
    • 支持批量购买静态IP
    • 自动计算订单金额
    • 支持多种支付方式
    • 提供详细的订单信息

支付处理

  • 订单支付
    • 支持多种支付方式
    • 实时支付状态更新
    • 自动余额校验
    • 支付结果通知

使用流程

  1. 创建订单

    • 选择购买数量和周期
    • 确认订单金额
    • 联系我们确保IP库存充足(临时方案,后续会开发接口自主查询库存)
    • 提交订单请求 调用/client/order/addStatic接口
    • 获取订单ID 获取resp.data作为订单ID
  2. 完成支付

    • 使用订单ID发起支付 调用/client/payment/order/pay/{orderId}接口
    • 选择支付方式 当前仅支持BALANCE
    • 确认支付结果
    • 查看订单状态

使用建议

  • 下单前确认所需的静态IP数量
  • 注意检查账户余额是否充足
  • 保存订单ID以便后续查询
  • 及时确认支付结果状态
  • 如遇支付失败,查看具体错误信息

新购下单

本接口用于新购下单

接口信息

POST /client/order/addStatic

请求头

参数名必选类型说明
x-merchant-tokenstring商户访问令牌
x-merchant-codestring商户编码

请求参数

参数名必选类型说明
countryNumsArray of CountryNumsItemVO国家IP数量分配列表
monthCountLong购买几个月
dayCountLong购买天数(仅支持:7)
currencyString货币类型CNY

CountryNumsItemVO结构

参数名必选类型说明
countryCodeString国家代码
locationString省/州/区
numLong该国家需要的IP数量
ipTypeLong0:广播 1:原生
ipCategoryStringHOST-住宅 IDC-机房
bandwidthInteger带宽规格(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,
      "currency":"CNY"
  })
});

const result = await response.json();

响应结果

{
    "msg": "操作成功",
    "code": 200,
    "data": "N2025032701271232584"
}

带宽说明

countryNums 中每一项必须传入 bandwidth(单位 Mbps,常见取值为 510):

  • 按指定带宽计价、校验库存并开通;若该地区未配置该带宽的售价或库存不足,下单失败。
  • 未传或传 null 时接口返回错误,例如:countryNums[0].bandwidth不能为空
  • 服务端不会再按 10 Mbps → 5 Mbps 自动选档。

建议:先调用 可购地区列表查询,按返回记录中的 bandwidthpriceipTotals 下单,并与本接口传入值保持一致。

注意事项

  1. dayCount参数仅支持7天,并且传入dayCount参数将忽略monthCount参数。
  2. 并非所有地区都支持7天购买,请根据实际情况选择(需要参考 可购地区列表查询 对应带宽记录是否返回 price7 具体价格而定)。
  3. 同一国家/地区若存在多种带宽规格,必须为每一行 countryNums 显式传入目标 bandwidth

续费下单

本接口用于续费下单,支持批量IP续费。

接口信息

POST /client/order/renewIpList

请求头

参数名必选类型说明
x-merchant-tokenstring商户访问令牌
x-merchant-codestring商户编码

请求参数

参数名必选类型说明
ipListArray[String]IP列表
monthCountLong续费几个月
dayCountLong续费天数(仅支持:7)

请求示例

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"
}

注意事项

  1. dayCount参数仅支持7天,并且传入dayCount参数将忽略monthCount参数。
  2. 并非所有地区都支持7天购买,请根据实际情况选择(需要参考'/client/ip/pool/regionalAvailableIps'接口是否有返回price7具体价格而定)。

退订下单

本接口用于退订下单,支持批量IP退订。

接口信息

POST /client/order/unsubscribeStaticIps

请求头

参数名必选类型说明
x-merchant-tokenstring商户访问令牌
x-merchant-codestring商户编码

请求参数

参数名必选类型说明
ipListArray[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-tokenString商户令牌
x-merchant-codeString商户代码

请求参数

参数名必选类型描述
ipString机器 IP
startDateString开始日期,格式 yyyy-MM-dd
endDateString结束日期,格式 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]
}

响应参数说明

参数名类型描述
bandwidthArray[Integer]各采样点带宽指标(与 dates 一一对应),单位MB
cpuArray[Integer]各采样点 CPU 使用率(与 dates 一一对应),单位%
datesArray[String]采样时间点,格式 MM-dd HH:mm
memArray[Integer]各采样点内存使用率(与 dates 一一对应),单位%
tcpArray[Integer]各采样点 TCP 连接数(与 dates 一一对应)

数组长度一致,同一索引对应同一时刻的带宽、CPU、日期、内存、TCP 数据。

订单服务

通用订单能力说明。

服务目录

订单列表查询

查询已购订单列表

接口信息

GET /client/order/orderList

请求头

参数名类型描述
x-merchant-tokenString商户令牌
x-merchant-codeString商户代码

请求参数

参数名必选类型描述
orderNoString订单号
productTypeInteger产品类型,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-21T17:02:53.000+08:00",
          "port": "8080",
          "countryCode": "nz",
          "unsubscribeTime": "9999-12-31T00:00:00.000+08:00",
          "ip": "203.97.15.28",
          "effectiveDatetime": "2025-10-22T17:02:53.000+08:00",
          "days": 30,
          "location": "wellingtont",
          "account": "ipfast@2025",
          "status": "Y"
        }
      ]
    }
  ],
  "code": 200,
  "msg": "查询成功"
}

响应参数说明

参数名类型描述
orderNoString订单号
productNameString产品名称
productTypeInteger产品类型,2-静态IP
totalAmountdouble总价格
currencyString货币
statusInteger订单状态,0-未生效,10-已生效,20-已过期
paidStatusInteger支付状态,0-已取消,10-未支付,20-已支付
payMethodString支付方式,BALANCE-余额支付,ALIPAY-支付宝
createTimeString创建时间
orderItemsList订单产品明细

静态订单orderItems

参数名类型描述
ipStringIP
portString端口
accountString账号
passwordString密码
countryCodeString国家代码(2位)
locationString地区
statusString状态,P-待发货,Y-已发货,N-已过期,T-已退订
effectiveDatetimeString生效时间
expireDatetimeString过期时间
unsubscribeTimeString退订时间(如没有退订则为9999-12-31或空)

订单支付

支付订单。

接口信息

POST /client/payment/order/pay/{orderId}

请求头

参数名类型描述
x-merchant-tokenString商户令牌
x-merchant-codeString商户代码
Content-TypeStringapplication/json

路径参数

参数名类型描述
orderIdString订单ID,从下单返回值中获取

请求参数

参数名类型描述
paymentString支付方式,目前仅支持"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}

响应参数说明

参数名类型描述
paymentTypeString支付方式
paymentNameString支付方式名称
statusInteger支付状态(1=支付成功,0=支付失败)
orderIdString订单ID
payMessageString支付信息

错误码说明

错误码描述
500订单已失效
500商户钱包账户不存在
500余额不足