700SU / 开发者文档

静态住宅 IP
API 对接指南

从查询地区与号段,到余额购买、提取连接信息与续费。
以当前可调用接口为准,帮助你的系统接入 700SU。

HTTPS · JSON登录 Token30 天周期2026.11.04
本版范围

仅覆盖本次接入的新静态住宅 IP。接口基于现有客户登录会话,尚无独立 API Key、客户幂等键或交付回调。示例账号、IP、价格和订单号均为虚构;实际值从接口读取。

服务地址https://700su.com
请求类型application/json
结算币种人民币 · 账户余额

01 / 先跑通一次购买

登录→选线路 / 号段→创建订单→余额支付→查询并提取
  1. 准备有效的700SU客户账号,确保余额足够。在网站个人中心 → API 对接复制当前Token,或通过登录接口获取;在自己的服务端安全保存配置。
  2. 读取目录,原样保留country、city、line、ip_type;需要指定号段时再查询CIDR列表。
  3. 创建订单后立即保存内部id和order_no,核对最终amount_cny及你自己的费用上限。
  4. 向原order_no发起余额支付。不要以HTTP 200、ok=true或paid代替交付成功。
  5. 每3–5秒查询原订单;fulfilled后按内部id提取ips,核对数量。超过你的等待期限时保存订单号,进入待核对队列。

上述轮询间隔是接入建议,不是服务端统一限额或交付时效承诺。

# 以下变量从你的配置或前一步响应取得,不要把密码写入脚本仓库。
# login.json 内容:{"email":"你的邮箱","password":"你的密码"}
curl --request POST 'https://700su.com/api/auth/login' \
  --header 'Content-Type: application/json' --data-binary @login.json

# 将返回的 token 安全保存为环境变量 TOKEN
curl 'https://700su.com/api/users/me' \
  --header "Authorization: Bearer $TOKEN"

# order.json 中 country/city/line/ip_type 均复制自目录;不要照抄演示线路。
curl --request POST 'https://700su.com/api/orders' \
  --header "Authorization: Bearer $TOKEN" \
  --header 'Content-Type: application/json' --data-binary @order.json

# 真实扣款:先核对订单金额;ORDER_NO 使用上一步返回值。
curl --request POST "https://700su.com/api/orders/$ORDER_NO/pay-balance" \
  --header "Authorization: Bearer $TOKEN"

# 使用内部整数 ID 提取,不能把 AU- 开头的订单号放在此处。
curl "https://700su.com/api/orders/id/$ORDER_ID/ips" \
  --header "Authorization: Bearer $TOKEN"

curl示例没有自动重试选项。使用后删除临时login.json。程序化接入示例见下载区。

02 / 鉴权与约定

在线获取 Token

登录网站后,进入个人中心 → API 对接,点击“复制 Token”。该 Token 属于当前客户登录会话,退出当前登录或修改密码后会失效。它拥有当前客户账号权限,包括余额购买与读取 IP 连接信息;仅在你自己的服务端保存。

Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
Accept: application/json

03 / 支付、交付与重试

购买状态

返回状态含义处理方式
pending + pending订单未付款确认金额后支付原订单
paid + provisioning已付款,正在交付查询原订单,勿再次购买
paid + fulfilled交付完成提取ips并核对数量
delivery_review_required=true交付需要核对停止自动重下单,提供原订单号联系客服
order_status=cancelled订单已取消停止此单处理
未知状态或数量不匹配结果尚未确认保留原单进入核对队列
创建请求超时,不能直接再建一单。

当前创建接口没有客户订单号或Idempotency-Key去重能力。创建前在自己的系统记录一次业务请求,创建成功后持久化700SU订单号。响应丢失时查询本人订单列表,核对时间、规格、数量与金额;不能唯一匹配则人工核对。不要自动支付一个“看起来相似”的订单。

余额支付超时

先查同一个order_no。若已paid则只查交付;若仍pending且报价未过期、订单有效、金额符合预期,可继续处理原单。并发重复付款应由接入端避免;不要通过重新创建订单解决支付超时。

续费完成的判断

payment_status=paid表示已扣款。只有renewal_status=completed,并核对各项new_expires_at/current_expires_at确已延长,才向客户显示续费成功。processing、renewed_pending_sync为处理中;retry_required、partially_completed、partially_resolved应逐项核对并联系客服。HTTP 202不是失败后需要重付的信号。

创建续费遇到renewal_order_exists时,使用响应中的batch_no查询。批次超时后先查原批次;不要重新续费同一IP。已到期、被回收或不可续费的IP不能通过接口恢复原IP。

04 / 接口参考

示例仅展示关键字段,不是线上订单或价格承诺。所有请求路径均拼接到 https://700su.com。

POST/api/auth/login公开

01. 登录并获取 Token

使用700SU客户账号邮箱和密码登录。成功后保存token,后续以Authorization: Bearer传入。Token最长有效期7天,退出登录、账号停用等会使会话提前失效;没有refresh_token接口。

JSON 请求体

字段类型说明
emailstring客户账号邮箱;必填
passwordstring账号密码;必填
请求示例(使用实际目录值替换)
{
  "email": "your-account@example.com",
  "password": "YOUR_ACCOUNT_PASSWORD"
}
响应字段 · HTTP 200
字段类型说明
tokenstring会话Token,禁止公开或写入日志
userobject
响应示例(字段节选)
{
  "token": "YOUR_ACCESS_TOKEN",
  "user": {
    "id": 100,
    "email": "your-account@example.com",
    "status": "active",
    "balance_cny": 100
  }
}
GET/api/users/me需登录

02. 查询账户和余额

读取balance_cny获取余额。discount_rate只是普通折扣规则;最终支付价以订单amount_cny或续费total_cny为准。

响应字段 · HTTP 200
字段类型说明
idinteger
emailstring
statusstring
balance_cnynumber人民币账户余额
discount_ratenumber普通折扣乘数,例如0.4表示4折;专属价可能覆盖此规则
active_ipsinteger有效IP数量
orders_countinteger本月购买订单数量
total_spend_cnynumber累计已支付购买订单金额
响应示例(字段节选)
{
  "id": 100,
  "email": "your-account@example.com",
  "status": "active",
  "balance_cny": 100,
  "discount_rate": 1
}
POST/api/auth/logout需登录

03. 注销当前 Token

注销当前会话后需要重新登录。

响应字段 · HTTP 200
字段类型说明
okboolean
响应示例(字段节选)
{
  "ok": true
}
GET/api/public/catalog公开

04. 查询公开地区与线路

公开可售静态目录。按country、city、line、ip_type四个原值选择商品;不要把展示标签或国家缩写作为下单参数。ip_kind用于区分原生与广播,不能替代ip_type。库存仅供参考,不预留资源。

响应字段 · HTTP 200
字段类型说明
countrystring目录返回的国家/地区原值
citystring目录返回的城市原值
linestring目录返回的完整线路原值,不可自行拼接
ip_typestring按目录原值传入;静态住宅通常为 static_residential
continentstring洲/大区
ip_kindstringnative:原生;broadcast:广播
ip_kind_labelstring类型显示名
country_codestring国家代码,以返回值为准
available_countinteger可售库存参考值;创建及支付时会再次检查
price_30dnumber公开30天单价,人民币
响应示例(字段节选)
[
  {
    "country": "美国",
    "city": "示例城市",
    "line": "原生 IP · 示例线路",
    "ip_type": "static_residential",
    "ip_kind": "native",
    "available_count": 100,
    "price_30d": 25
  }
]
GET/api/inventory/availability需登录

05. 查询账号可见价格

登录后查询。若customer_pricing为unavailable,停止自动购买;customer_price_30d存在且为正数时即为专属单价,不再乘折扣。无专属价时可用price_30d×discount_rate做预估,最终以创建订单的amount_cny为准。只依赖本文列出的业务字段,其余字段忽略。

响应字段 · HTTP 200
字段类型说明
countrystring目录返回的国家/地区原值
citystring目录返回的城市原值
linestring目录返回的完整线路原值,不可自行拼接
ip_typestring按目录原值传入;静态住宅通常为 static_residential
continentstring洲/大区
ip_kindstringnative:原生;broadcast:广播
ip_kind_labelstring类型显示名
country_codestring国家代码,以返回值为准
available_countinteger可售库存参考值;创建及支付时会再次检查
price_30dnumber公开30天单价,人民币
customer_price_30dnumber出现时为当前账号专属30天单价,不再重复打折
customer_pricingstringcustom:专属价;unavailable:价格暂不可用;字段也可能省略
响应示例(字段节选)
[
  {
    "country": "美国",
    "city": "示例城市",
    "line": "原生 IP · 示例线路",
    "ip_type": "static_residential",
    "price_30d": 25,
    "customer_price_30d": 10,
    "customer_pricing": "custom",
    "available_count": 100
  }
]
GET/api/static/available-cidrs公开

06. 查询可选 IP 号段

传入选中线路的四个原值。items为空表示当前没有可选号段;随机分配时创建订单不传selected_cidr_id。指定号段只能选择CIDR范围,不能指定完整IP。号段结果缓存约60秒;下单时重新校验。此接口当前按来源IP每分钟最多90次。

查询参数

参数必填说明
country是目录返回的国家/地区原值
city是目录返回的城市原值
line是目录返回的完整线路原值,不可自行拼接
ip_type是按目录原值传入;静态住宅通常为 static_residential
响应字段 · HTTP 200
字段类型说明
supportedboolean是否有可展示的号段
itemsarray
响应示例(字段节选)
{
  "supported": true,
  "items": [
    {
      "id": "OPAQUE_CIDR_ID",
      "cidr": "192.0.2.0/24",
      "available_count": 12
    }
  ]
}
POST/api/orders需登录

07. 创建购买订单

仅创建待支付订单,不扣余额、不代表预留库存。保存id、order_no与amount_cny。未付款报价保留30分钟,过期后重新确认价格。当前不接受客户端幂等键;相同请求再次提交会创建另一笔订单,超时后不可直接重发。

JSON 请求体

字段类型说明
countrystring目录返回的国家/地区原值;必填
citystring目录返回的城市原值;必填
linestring目录返回的完整线路原值,不可自行拼接;必填
ip_typestring按目录原值传入;静态住宅通常为 static_residential;必填
quantityinteger购买数量,1–500
cycle_daysinteger当前只支持30天
protocolstring明确传入http或socks5;默认http
selected_cidr_idstring可选。号段接口返回的id,原样传入;随机分配时省略
请求示例(使用实际目录值替换)
{
  "country": "从目录复制国家",
  "city": "从目录复制城市",
  "line": "从目录复制完整线路",
  "ip_type": "static_residential",
  "quantity": 1,
  "cycle_days": 30,
  "protocol": "socks5"
}
响应字段 · HTTP 201
字段类型说明
idinteger700SU内部订单ID;提取IP使用此ID
order_nostringAU-开头的业务订单号;支付及查单使用此值
countrystring目录返回的国家/地区原值
citystring目录返回的城市原值
linestring目录返回的完整线路原值,不可自行拼接
ip_typestring按目录原值传入;静态住宅通常为 static_residential
quantityinteger购买数量
cycle_daysinteger30天
protocolstringhttp 或 socks5
amount_cnynumber本订单最终应付人民币总额,已包含账号价格规则
payment_statusstringpending 或 paid;未知值不得视为成功
order_statusstringpending、provisioning、fulfilled、cancelled 等;以返回为准
payment_networkstring余额支付后为 BALANCE
ip_prefixstring所选号段
created_atstring订单创建时间
paid_atstring支付时间
delivery_review_requiredboolean仅详情/列表等部分响应提供。true时停止自动重下单并联系客服
quote_expiredboolean详情提供;未付订单报价是否已过期
quote_expires_atstring详情提供;ISO 8601报价截止时间
响应示例(字段节选)
{
  "id": 12345,
  "order_no": "AU-20261104000000-DEMO",
  "country": "美国",
  "city": "示例城市",
  "line": "原生 IP · 示例线路",
  "ip_type": "static_residential",
  "quantity": 1,
  "cycle_days": 30,
  "protocol": "socks5",
  "amount_cny": 25,
  "payment_status": "pending",
  "order_status": "pending"
}
GET/api/orders/{orderNo}需登录

08. 按订单号查询

orderNo使用AU-开头的订单号。以payment_status判断是否付款,以order_status判断交付;delivery_review_required=true时记录原订单号并联系客服。

响应字段 · HTTP 200
字段类型说明
orderOrder
paymentobject
响应示例(字段节选)
{
  "order": {
    "id": 12345,
    "order_no": "AU-20261104000000-DEMO",
    "country": "美国",
    "city": "示例城市",
    "line": "原生 IP · 示例线路",
    "ip_type": "static_residential",
    "quantity": 1,
    "cycle_days": 30,
    "protocol": "socks5",
    "amount_cny": 25,
    "payment_status": "paid",
    "order_status": "provisioning",
    "delivery_review_required": false,
    "quote_expired": false,
    "quote_expires_at": "2026-11-04T00:30:00Z"
  },
  "payment": null
}
GET/api/orders/id/{orderId}需登录

09. 按内部 ID 查询订单

orderId使用创建订单返回的整数id;与业务订单号不同。字段和按订单号查询一致。

响应字段 · HTTP 200
字段类型说明
orderOrder
paymentobject
GET/api/users/me/orders需登录

10. 查询本人购买订单

当前返回本人购买订单数组,按内部id倒序,不支持分页。可用于创建请求超时后核对订单。列表可能包含历史产品,接入程序应只处理本次接入创建或明确选定的订单,不要自动支付全部待付订单。同规格订单无法唯一匹配时交人工核对。

响应字段 · HTTP 200
字段类型说明
idinteger700SU内部订单ID;提取IP使用此ID
order_nostringAU-开头的业务订单号;支付及查单使用此值
countrystring目录返回的国家/地区原值
citystring目录返回的城市原值
linestring目录返回的完整线路原值,不可自行拼接
ip_typestring按目录原值传入;静态住宅通常为 static_residential
quantityinteger购买数量
cycle_daysinteger30天
protocolstringhttp 或 socks5
amount_cnynumber本订单最终应付人民币总额,已包含账号价格规则
payment_statusstringpending 或 paid;未知值不得视为成功
order_statusstringpending、provisioning、fulfilled、cancelled 等;以返回为准
payment_networkstring余额支付后为 BALANCE
ip_prefixstring所选号段
created_atstring订单创建时间
paid_atstring支付时间
delivery_review_requiredboolean仅详情/列表等部分响应提供。true时停止自动重下单并联系客服
quote_expiredboolean详情提供;未付订单报价是否已过期
quote_expires_atstring详情提供;ISO 8601报价截止时间
响应示例(字段节选)
[
  {
    "id": 12345,
    "order_no": "AU-20261104000000-DEMO",
    "country": "美国",
    "city": "示例城市",
    "line": "原生 IP · 示例线路",
    "ip_type": "static_residential",
    "quantity": 1,
    "cycle_days": 30,
    "protocol": "socks5",
    "amount_cny": 25,
    "payment_status": "pending",
    "order_status": "pending"
  }
]
POST/api/orders/{orderNo}/pay-balance需登录

11. 用余额支付购买订单

真实扣款操作。无业务请求体;调用前查单并核对amount_cny与预算。200且ok=true表示请求已处理,不代表IP已交付。already=true表示这笔订单此前已支付;继续查询该订单,不另建单。网络超时或5xx后先查原订单。

响应字段 · HTTP 200
字段类型说明
okboolean
alreadyboolean
orderOrder
assignedarray
balance_beforenumber
balance_afternumber
响应示例(字段节选)
{
  "ok": true,
  "already": false,
  "order": {
    "id": 12345,
    "order_no": "AU-20261104000000-DEMO",
    "country": "美国",
    "city": "示例城市",
    "line": "原生 IP · 示例线路",
    "ip_type": "static_residential",
    "quantity": 1,
    "cycle_days": 30,
    "protocol": "socks5",
    "amount_cny": 25,
    "payment_status": "paid",
    "order_status": "provisioning",
    "payment_network": "BALANCE"
  },
  "assigned": [],
  "balance_before": 100,
  "balance_after": 75
}
GET/api/orders/id/{orderId}/ips需登录

12. 提取该订单交付的 IP

使用内部id查询。响应为对象,IP数组位于ips。连接地址优先使用connection_host,否则使用ip,再配合port、username、password。协议采用订单protocol。已付款时ips可能暂时为空,应等待原订单完成。只把fulfilled且数量匹配的结果当作完整交付。

响应字段 · HTTP 200
字段类型说明
orderOrder
paymentobject
ipsarray
响应示例(字段节选)
{
  "order": {
    "id": 12345,
    "order_no": "AU-20261104000000-DEMO",
    "country": "美国",
    "city": "示例城市",
    "line": "原生 IP · 示例线路",
    "ip_type": "static_residential",
    "quantity": 1,
    "cycle_days": 30,
    "protocol": "socks5",
    "amount_cny": 25,
    "payment_status": "paid",
    "order_status": "fulfilled"
  },
  "payment": null,
  "ips": [
    {
      "id": 67890,
      "ip": "192.0.2.10",
      "connection_host": null,
      "port": 10001,
      "username": "EXAMPLE_USER",
      "password": "EXAMPLE_PASSWORD",
      "expires_at": "2026-12-04T00:00:00Z"
    }
  ]
}
POST/api/orders/{orderNo}/cancel需登录

13. 取消未付款购买订单

仅用于未付款订单。已经支付或正在交付的订单不可通过此接口取消;不要在付款状态不明时盲目取消。

响应字段 · HTTP 200
字段类型说明
okboolean
alreadyboolean
order_nostring
order_statusstring
响应示例(字段节选)
{
  "ok": true,
  "order_no": "AU-20261104000000-DEMO",
  "order_status": "cancelled"
}
POST/api/ip-renewals/identify需登录

14. 识别 IP 与续费价格

使用已交付IP的信息识别,建议同时提供用户名和密码以避免同入口多账号歧义。renew_supported=true仅表示支持续费,仍需确认未到期;renewal_prices.price_30d为该账号续费单价,最终以创建批次的total_cny为准。

JSON 请求体

字段类型说明
ipstringIP或连接入口;必填
portinteger端口;必填
usernamestring建议传入;与password成对出现
passwordstring代理密码,与username成对出现
请求示例(使用实际目录值替换)
{
  "ip": "192.0.2.10",
  "port": 10001,
  "username": "EXAMPLE_USER",
  "password": "EXAMPLE_PASSWORD"
}
响应字段 · HTTP 200
字段类型说明
okboolean
match_modestring
ipIP
renew_supportedboolean
renewalobject
renewal_pricesobject
响应示例(字段节选)
{
  "ok": true,
  "ip": {
    "id": 67890,
    "ip": "192.0.2.10",
    "connection_host": null,
    "port": 10001,
    "username": "EXAMPLE_USER",
    "password": "EXAMPLE_PASSWORD",
    "expires_at": "2026-12-04T00:00:00Z"
  },
  "renew_supported": true,
  "renewal_prices": {
    "price_30d": 25
  }
}
POST/api/ip-renewals/orders需登录

15. 创建续费批次

ip_ids使用交付接口返回的实例id,不是IP地址或购买订单id。一次1–500个,当前仅30天。只有本人名下可续费且未到期的实例可创建。不扣余额。返回renewal_order_exists时使用错误内batch_no查询原批次,不能重复创建。

JSON 请求体

字段类型说明
ip_idsarray本账号已交付且未到期的IP实例ID数组;必填
cycle_daysinteger固定30;必填
请求示例(使用实际目录值替换)
{
  "ip_ids": [
    67890
  ],
  "cycle_days": 30
}
响应字段 · HTTP 201
字段类型说明
okboolean
batch_nostringRN-开头的续费批次号
cycle_daysinteger
item_countinteger
total_cnynumber本批最终应付总额
payment_statusstringpending 或 paid
renewal_statusstringdraft、processing、renewed_pending_sync、retry_required、completed、cancelled、failed_confirmed、refunded、partially_completed、partially_resolved
can_payboolean查询详情时提供,付款前检查
payment_block_reasonstring查询详情时提供;阻止付款的错误代码
alreadyboolean重复付款请求可能返回
itemsarray
响应示例(字段节选)
{
  "ok": true,
  "batch_no": "RN-EXAMPLE-0001",
  "cycle_days": 30,
  "item_count": 1,
  "total_cny": 25,
  "payment_status": "pending",
  "renewal_status": "draft",
  "items": [
    {
      "ip_id": 67890,
      "amount_cny": 25,
      "old_expires_at": "2026-12-04T00:00:00Z"
    }
  ]
}
GET/api/ip-renewals/orders/{batchNo}需登录

16. 查询续费批次

付款前检查can_pay、payment_block_reason、total_cny。付款后检查renewal_status及每个items明细的新到期时间;payment_status=paid不是续费成功的充分条件。

响应字段 · HTTP 200
字段类型说明
okboolean
batch_nostringRN-开头的续费批次号
cycle_daysinteger
item_countinteger
total_cnynumber本批最终应付总额
payment_statusstringpending 或 paid
renewal_statusstringdraft、processing、renewed_pending_sync、retry_required、completed、cancelled、failed_confirmed、refunded、partially_completed、partially_resolved
can_payboolean查询详情时提供,付款前检查
payment_block_reasonstring查询详情时提供;阻止付款的错误代码
alreadyboolean重复付款请求可能返回
itemsarray
响应示例(字段节选)
{
  "batch_no": "RN-EXAMPLE-0001",
  "item_count": 1,
  "total_cny": 25,
  "can_pay": true,
  "payment_block_reason": null,
  "payment_status": "pending",
  "renewal_status": "draft",
  "items": [
    {
      "ip_id": 67890,
      "old_expires_at": "2026-12-04T00:00:00Z",
      "new_expires_at": null
    }
  ]
}
GET/api/users/me/renewal-orders需登录

17. 查询本人续费批次列表

按最新批次倒序返回,无分页。列表中的合计金额字段为amount_cny;详情/创建响应使用total_cny。用于查找原批次,避免重复创建。只处理已选定的本次接入资源对应批次。

响应字段 · HTTP 200
字段类型说明
batch_nostring
amount_cnynumber批次合计
item_countinteger
cycle_daysinteger
payment_statusstring
renewal_statusstring
created_atstring
响应示例(字段节选)
[
  {
    "batch_no": "RN-EXAMPLE-0001",
    "amount_cny": 25,
    "item_count": 1,
    "cycle_days": 30,
    "payment_status": "pending",
    "renewal_status": "draft"
  }
]
POST/api/ip-renewals/orders/{batchNo}/pay-balance需登录

18. 用余额支付续费

真实扣款操作。200或202均须读取响应中的状态:202表示已付款但仍在处理或需要核查,不能再次创建续费批次来补做。已有paid状态时继续查询;仅全部completed且到期时间已延长才算完成。

响应字段 · HTTP 200 / 202
字段类型说明
okboolean
batch_nostringRN-开头的续费批次号
cycle_daysinteger
item_countinteger
total_cnynumber本批最终应付总额
payment_statusstringpending 或 paid
renewal_statusstringdraft、processing、renewed_pending_sync、retry_required、completed、cancelled、failed_confirmed、refunded、partially_completed、partially_resolved
can_payboolean查询详情时提供,付款前检查
payment_block_reasonstring查询详情时提供;阻止付款的错误代码
alreadyboolean重复付款请求可能返回
itemsarray
响应示例(字段节选)
{
  "ok": true,
  "already": false,
  "batch_no": "RN-EXAMPLE-0001",
  "payment_status": "paid",
  "renewal_status": "processing",
  "item_count": 1,
  "total_cny": 25
}
POST/api/ip-renewals/orders/{batchNo}/cancel需登录

19. 取消未付款续费批次

只能取消全部未付款且均为draft的批次。已支付或进入处理状态的批次不可取消。

响应字段 · HTTP 200
字段类型说明
okboolean
batch_nostringRN-开头的续费批次号
cycle_daysinteger
item_countinteger
total_cnynumber本批最终应付总额
payment_statusstringpending 或 paid
renewal_statusstringdraft、processing、renewed_pending_sync、retry_required、completed、cancelled、failed_confirmed、refunded、partially_completed、partially_resolved
can_payboolean查询详情时提供,付款前检查
payment_block_reasonstring查询详情时提供;阻止付款的错误代码
alreadyboolean重复付款请求可能返回
itemsarray
响应示例(字段节选)
{
  "ok": true,
  "batch_no": "RN-EXAMPLE-0001",
  "payment_status": "pending",
  "renewal_status": "cancelled",
  "item_count": 1
}

提取连接信息的字段说明

字段类型说明
idinteger700SU的IP实例ID,用于续费
ipstringIP地址
connection_hoststring连接入口;非空时优先使用,否则使用ip
portinteger代理端口
usernamestring代理用户名,敏感信息
passwordstring代理密码,敏感信息
countrystring目录返回的国家/地区原值
citystring目录返回的城市原值
linestring目录返回的完整线路原值,不可自行拼接
ip_typestring按目录原值传入;静态住宅通常为 static_residential
ip_prefixstring已选CIDR号段;随机分配可能为空
statusstringassigned 表示已分配;仍需核对到期时间
expires_atstring实际到期时间

续费明细字段说明

字段类型说明
idinteger续费明细ID
ip_idintegerIP实例ID
renewal_nostring续费明细号
batch_nostring续费批次号
amount_cnynumber该IP续费最终价格
cycle_daysinteger30天
payment_statusstring
renewal_statusstring
old_expires_atstring续费前到期时间
new_expires_atstring确认延长后的到期时间,完成前可能为空
current_expires_atstring当前到期时间,查询详情时提供

05 / 常见错误与处理

错误响应通常为 {"error":"错误代码"},有时包含余额、金额或批次号。下表覆盖常见情况;未列出的代码视为需要核对,不要自动无限重试。面向客户展示中文提示,保留机器代码用于诊断。

错误代码HTTP处理建议
unauthorized / session_expired401Token缺失、无效或会话过期;重新登录后查原单
invalid_credentials401邮箱或密码错误
account_disabled401 / 403账号不可用,请联系客服
forbidden / user_forbidden403只能操作本人有权访问的资源
invalid_order / invalid_selection / invalid_cycle_days400核对地区四元组、数量与30天周期
price_not_found404该规格当前不可购买,刷新目录
insufficient_balance409余额不足;确认余额后再处理原单
insufficient_stock / insufficient_stock_at_allocation409库存不足,刷新线路或调整数量
order_quote_expired409未付款报价已过期,确认旧单状态后重新下单
customer_price_changed / customer_price_unavailable409账号价格变化或暂不可用,重新查询
static_cidr_invalid / static_cidr_unavailable409;查询时可能404指定号段无效或已不可用,重新选择
static_cidr_insufficient_stock409号段库存不足,调整数量或换号段
static_cidr_check_failed503号段检查暂不可用,稍后查询
static_cidr_rate_limited429号段请求过多,等待后再查询
resource_temporarily_unavailable / purchase_temporarily_unavailable409当前资源暂不能购买,停止密集重试并联系客服
order_not_found / renewal_batch_not_found404核对订单标识和当前登录账号
order_cancelled / paid_order_cannot_cancel409订单状态不允许本次操作
ip_not_found / ip_match_ambiguous404 / 409核对连接信息,必要时提供完整代理账号密码
renewal_order_exists409查询响应中的原batch_no
renewal_ip_expired / renewal_ip_unavailable409IP已到期或不可续费
renewal_already_processing409同一批次正在处理,查询原批次
renewal_quote_stale409续费基础信息已变化,重新识别并核对原批次
usdt_rate_unavailable503结算信息暂不可用;即使使用余额也可能遇到,稍后再试
其他5xx或非JSON响应5xx / 网关错误写操作结果可能不确定;先查原单,记录时间和HTTP状态联系客服

06 / 下载与接入检查

OpenAPI文件可导入Postman等兼容工具。导入后先配置你自己的客户Token;不要将真实Token保存进共享集合。Python示例只依赖标准库,直接运行默认仅登录并查询余额。

700SU · https://700su.com/ · 咨询 @IP9966 / @Kefu700Bot