速转发 开放 API
用你自己的程序查询产品和流量、增删端口转发规则、下单续费。所有接口都是 HTTPS + JSON,和网站客户中心用的是同一套接口,权限和你登录网站一样。
接口地址https://www.suzhuanfa.com/api/v1
数据格式application/json; charset=utf-8
时间北京时间 YYYY-MM-DD HH:mm:ss
金额字符串,单位元,如 "110.00"
- 登录网站,进入 客户中心 → API 接口,点“新建密钥”,复制保存(只显示一次)。
- 每个请求带上请求头
Authorization: Bearer 你的密钥。
- 看返回的
code:0 是成功,结果在 data 里;不是 0 时 message 写着原因。
试一下:查看账户余额
curl https://www.suzhuanfa.com/api/v1/me \
-H "Authorization: Bearer szf_你的密钥"
认证
API 密钥以 szf_ 开头,共 52 位。两种传法任选一种:
请求头
Authorization: Bearer szf_0123456789abcdef0123456789abcdef0123456789abcdef
# 或者
X-API-Key: szf_0123456789abcdef0123456789abcdef0123456789abcdef
- 每个账号最多 5 个密钥,可以给不同程序各用一个,哪个不用了单独删掉。
- 密钥和登录网站的权限相同:能下单、用余额付款、增删规则。只放在自己的服务器上,不要写进网页前端、App 或发给别人。
- 修改或找回登录密码后,所有密钥自动作废;账号被停用期间密钥不能用。
- 密钥泄露了:马上在“API 接口”页删掉,再建一个新的。
- 接口只给服务器端程序用,不支持在别的网站的浏览器页面里直接调用(不返回跨域 CORS 头)。
频率限制
| 范围 | 上限 |
| 每个账号(所有 API 密钥加起来),所有接口合计 | 每分钟 120 次 |
| 其中要实时读取转发数据的查询:产品列表、产品详情、规则列表、移动规则 | 每分钟 30 次;带 live=1 的产品列表一次算 10 次 |
| 单条规则的新建 / 修改 / 启停 / 删除 | 每个账号每分钟 20 次 |
| 批量新建、批量删除 | 每批最多 50 条,每分钟最多 20 批 |
| 测自己的产品 | 每分钟 10 次 |
| 批量检测外部代理 | 每批 10 个,每小时 100 批 |
超过返回 HTTP 429、code 4290,等一会儿再试。规则的增删改和网站共用同一个额度:脚本用完了,网站上改规则也要等一分钟。
省额度的写法:要一次建很多规则用“批量新建”;查流量不要每秒轮询,一两分钟查一次就够;产品列表只在需要实时流量时才加 live=1。
防重复下单
调用“下单”时带上请求头 Idempotency-Key(8–64 位字母、数字、下划线或横线,每次新订单用一个新值)。网络超时后用同一个值重试,只会返回第一次建的那张订单,不会重复扣款。
示例
curl -X POST https://www.suzhuanfa.com/api/v1/orders \
-H "Authorization: Bearer $SZF_KEY" \
-H "Idempotency-Key: renew-501-20261103" \
-H "Content-Type: application/json" \
-d '{"type": "renew", "serviceId": 501}'
账户
GET/api/v1/me
账户信息
当前账户的 ID、余额等。
请求示例
curl https://www.suzhuanfa.com/api/v1/me \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": {
"id": 100123,
"phone": "138****0001",
"email": "dev@example.com",
"credit": "88.00",
"createdAt": "2026-10-01 12:00:00"
}
}
GET/api/v1/credit/ledger
余额流水
余额的每一笔变动,按时间倒序分页。
| 参数 | 类型 | 必填 | 说明 |
|---|
page | 整数 | 否 | 页码,默认 1 |
pageSize | 整数 | 否 | 每页条数 1–100,默认 20 |
请求示例
curl https://www.suzhuanfa.com/api/v1/credit/ledger \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": {
"items": [
{
"amount": "-110.00",
"balanceAfter": "88.00",
"type": "payment",
"note": "订单 20261103120000123456",
"createdAt": "2026-11-03 12:00:05"
}
],
"total": 1,
"page": 1,
"pageSize": 20
}
}
商品与报价
GET/api/v1/products
商品列表
可购买的商品、周期价格、可选配置和可选节点。不需要密钥。
cycles 里的周期:month 月付、quarter 季付、half_year 半年付、year 年付。delivery = zk 是端口转发,static_ip 是静态 IP(静态 IP 请在网站上选购)。
请求示例
curl https://www.suzhuanfa.com/api/v1/products \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"id": 3,
"groupName": "网络加速",
"name": "黑铁套餐",
"cycles": {
"month": "110.00",
"quarter": "330.00"
},
"trafficGb": 1000,
"bandwidthMbps": 10,
"ruleLimit": 5,
"options": {
"bandwidth": [
{
"value": 10,
"price": "0.00"
},
{
"value": 30,
"price": "20.00"
}
]
},
"delivery": "zk",
"nodes": [
{
"id": 2,
"name": "香港 BGP",
"region": "HK"
}
]
}
]
}
GET/api/v1/product-groups
商品分组
两级分组。不需要密钥。
请求示例
curl https://www.suzhuanfa.com/api/v1/product-groups \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"id": 2,
"parentId": 0,
"name": "端口转发",
"sort": 1
},
{
"id": 1,
"parentId": 2,
"name": "网络加速",
"sort": 1
}
]
}
GET/api/v1/flow-packs
流量包
可给产品加购的流量包。不需要密钥。
请求示例
curl https://www.suzhuanfa.com/api/v1/flow-packs \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"id": 1,
"name": "1T 流量包",
"capacityGb": 1000,
"price": "100.00"
}
]
}
POST/api/v1/quote
报价
按配置算价格。带密钥时按你账户的专属折扣报价,不带按原价。
| 参数 | 类型 | 必填 | 说明 |
|---|
productId | 整数 | 是 | 商品 ID |
cycle | 字符串 | 是 | month / quarter / half_year / year |
nodeId | 整数 | 是 | 节点 ID(商品的 nodes 里选) |
traffic | 整数 | 否 | 流量 GB(商品有流量选项时) |
bandwidth | 整数 | 否 | 带宽 Mbps(商品有带宽选项时) |
ruleLimit | 整数 | 否 | 规则数(商品有规则数选项时) |
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/quote \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"productId": 3, "cycle": "month", "nodeId": 2, "bandwidth": 30}'
返回示例
{
"code": 0,
"message": "success",
"data": {
"amount": "130.00",
"renewAmount": "130.00",
"listAmount": "130.00",
"discount": null,
"trafficGb": 1000,
"bandwidthMbps": 30,
"ruleLimit": 5,
"months": 1
}
}
我的产品
GET/api/v1/services
产品列表
你名下的所有产品(不含已删除的)。加 ?live=1 同时返回实时流量和规则数(最多前 20 个产品)。
| 参数 | 类型 | 必填 | 说明 |
|---|
live | 0 / 1 | 否 | 是否带实时流量和规则数 |
status:provisioning 开通中 · provision_failed 开通失败(客服处理中)· active 正常 · suspended 已暂停(到期或流量用完)。
请求示例
curl https://www.suzhuanfa.com/api/v1/services \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"id": 501,
"product": "黑铁套餐",
"node": "香港 BGP",
"delivery": "zk",
"status": "active",
"cycle": "month",
"renewAmount": "110.00",
"autoRenew": true,
"trafficGb": 1000,
"bandwidthMbps": 10,
"ruleLimit": 5,
"dueAt": "2026-12-03 12:00:05",
"connectHost": "hk1.example.com",
"notes": "主力线路",
"renewable": true,
"deleteAt": null
}
]
}
GET/api/v1/services/{id}
产品详情
单个产品,带实时流量。静态 IP 产品额外返回 ip(地址、端口、账号、密码)。
读取实时流量失败时 traffic 为 null,其他字段照常返回。
请求示例
curl https://www.suzhuanfa.com/api/v1/services/501 \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": {
"id": 501,
"product": "黑铁套餐",
"status": "active",
"dueAt": "2026-12-03 12:00:05",
"connectHost": "hk1.example.com",
"traffic": {
"usedGb": 12.5,
"limitGb": 1000,
"packGb": 0,
"exhausted": false
}
}
}
PUT/api/v1/services/{id}/auto-renew
开关自动续费
开启后,到期前自动用余额续费。
| 参数 | 类型 | 必填 | 说明 |
|---|
enabled | 布尔 | 是 | true 开启,false 关闭。必须传,没传或不是布尔值会报错 |
请求示例
curl -X PUT https://www.suzhuanfa.com/api/v1/services/501/auto-renew \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"enabled": true}'
返回示例
{
"code": 0,
"message": "success",
"data": null
}
PUT/api/v1/services/{id}/notes
产品备注
给产品起个名字,显示在网站产品卡片上。传空字符串清除。
| 参数 | 类型 | 必填 | 说明 |
|---|
notes | 字符串 | 是 | 最多 100 字;传空字符串清除 |
请求示例
curl -X PUT https://www.suzhuanfa.com/api/v1/services/501/notes \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"notes": "主力线路"}'
返回示例
{
"code": 0,
"message": "success",
"data": null
}
转发规则
GET/api/v1/services/{id}/rules
规则列表
这个产品下的全部端口转发规则。
connect 就是客户端要连的地址:端口。status:active 运行中 · stopped 已停用 · 其他值表示被系统暂停(流量用完、到期等)。
请求示例
curl https://www.suzhuanfa.com/api/v1/services/501/rules \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"id": 9001,
"listenPort": 30001,
"connect": "hk1.example.com:30001",
"remoteAddress": "203.0.113.10",
"remotePort": 443,
"protocol": "tcp+udp",
"status": "active",
"trafficUsedGb": 3.27,
"remark": "美国-443",
"expiryAt": null,
"groupId": null
}
]
}
POST/api/v1/services/{id}/rules
新建规则
新建一条转发:把 connect 收到的流量转发到你的目标地址。加速端口由系统分配。
| 参数 | 类型 | 必填 | 说明 |
|---|
remoteAddress | 字符串 | 是 | 目标公网 IP 或域名 |
remotePort | 整数 | 是 | 目标端口 1–65535 |
protocol | 字符串 | 否 | tcp / udp / tcp+udp,默认 tcp+udp |
remark | 字符串 | 否 | 备注,最多 100 字 |
groupId | 整数 | 否 | 放进哪个分组 |
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/services/501/rules \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"remoteAddress": "203.0.113.10", "remotePort": 443, "remark": "美国-443"}'
返回示例
{
"code": 0,
"message": "success",
"data": {
"id": 9001,
"listenPort": 30001,
"connect": "hk1.example.com:30001",
"groupId": null
}
}
POST/api/v1/services/{id}/rules/batch
批量新建
一次最多 50 条,逐条创建,某一条失败不影响其他条,返回每条的结果(用 index 对应你提交的第几条)。转发服务暂时连不上时会停在那一条,后面的不再尝试,所以返回的条数可能比提交的少,没返回的请稍后重试。
| 参数 | 类型 | 必填 | 说明 |
|---|
items | 数组 | 是 | 每项:remoteAddress、remotePort,可选 protocol、remark、groupId、listenPort(指定加速端口)、autoRemark(true 时备注留空自动生成“国家-端口”) |
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/services/501/rules/batch \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"items": [{"remoteAddress": "203.0.113.10", "remotePort": 443}, {"remoteAddress": "203.0.113.11", "remotePort": 8443, "autoRemark": true}]}'
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"index": 0,
"ok": true,
"id": 9001,
"listenPort": 30001,
"connect": "hk1.example.com:30001",
"remark": null
},
{
"index": 1,
"ok": false,
"error": "规则数已达上限"
}
]
}
PUT/api/v1/services/{id}/rules/{rid}
修改目标或备注
传 remoteAddress + remotePort 改转发目标;只传 remark 改备注。两样都没传会报错。
| 参数 | 类型 | 必填 | 说明 |
|---|
remoteAddress | 字符串 | 否 | 新的目标地址 |
remotePort | 整数 | 否 | 新的目标端口(和 remoteAddress 一起传) |
remark | 字符串 | 否 | 新备注,传空字符串清空 |
请求示例
curl -X PUT https://www.suzhuanfa.com/api/v1/services/501/rules/9001 \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"remoteAddress": "203.0.113.20", "remotePort": 443}'
返回示例
{
"code": 0,
"message": "success",
"data": null
}
PUT/api/v1/services/{id}/rules/{rid}/expiry
规则到期时间
到时间这条规则自动停用。传空字符串清除。套餐到期时所有规则都会停,跟这里无关。
| 参数 | 类型 | 必填 | 说明 |
|---|
expiryAt | 字符串 | 是 | 格式 2026-12-31 23:59:59;传空字符串清除 |
请求示例
curl -X PUT https://www.suzhuanfa.com/api/v1/services/501/rules/9001/expiry \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"expiryAt": "2026-12-31 23:59:59"}'
返回示例
{
"code": 0,
"message": "success",
"data": {
"status": "active",
"note": ""
}
}
POST/api/v1/services/{id}/rules/{rid}/enable
启用规则
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/services/501/rules/9001/enable \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": null
}
POST/api/v1/services/{id}/rules/{rid}/disable
停用规则
停用后规则保留,随时可以再启用。
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/services/501/rules/9001/disable \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": null
}
DELETE/api/v1/services/{id}/rules/{rid}
删除规则
删除后加速端口回收,不能恢复。
请求示例
curl -X DELETE https://www.suzhuanfa.com/api/v1/services/501/rules/9001 \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": null
}
POST/api/v1/services/{id}/rules/batch-delete
批量删除
一次最多 50 条,返回每条的结果。
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/services/501/rules/batch-delete \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"ids": [9001, 9002]}'
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"id": 9001,
"ok": true
},
{
"id": 9002,
"ok": false,
"error": "规则不存在"
}
]
}
规则分组
GET/api/v1/services/{id}/rule-groups
分组列表
请求示例
curl https://www.suzhuanfa.com/api/v1/services/501/rule-groups \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": [
{
"id": 7,
"name": "美国线路"
}
]
}
POST/api/v1/services/{id}/rule-groups
新建分组
名称 1–20 字,同一产品下不能重名。
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/services/501/rule-groups \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "美国线路"}'
返回示例
{
"code": 0,
"message": "success",
"data": {
"id": 7,
"name": "美国线路"
}
}
PUT/api/v1/services/{id}/rule-groups/{gid}
分组改名
请求示例
curl -X PUT https://www.suzhuanfa.com/api/v1/services/501/rule-groups/7 \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "美西"}'
返回示例
{
"code": 0,
"message": "success",
"data": null
}
DELETE/api/v1/services/{id}/rule-groups/{gid}
删除分组
分组里的规则回到“未分组”,规则本身不受影响。
请求示例
curl -X DELETE https://www.suzhuanfa.com/api/v1/services/501/rule-groups/7 \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": null
}
POST/api/v1/services/{id}/rule-groups/move
移动规则
把规则移进分组;groupId 传 null 表示移出分组。
| 参数 | 类型 | 必填 | 说明 |
|---|
ids | 数组 | 是 | 规则 ID 列表,最多 1000 个 |
groupId | 整数或 null | 是 | 目标分组 ID;必须传,移出分组传 null |
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/services/501/rule-groups/move \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"ids": [9001, 9002], "groupId": 7}'
返回示例
{
"code": 0,
"message": "success",
"data": {
"moved": 2
}
}
订单与支付
POST/api/v1/orders
下单
新购、续费、加流量包、充值余额都是这个接口,用 type 区分。下单后订单是待支付状态,再调“支付”。建议带 Idempotency-Key 请求头,网络超时重试时不会重复下单。
| 参数 | 类型 | 必填 | 说明 |
|---|
type | 字符串 | 是 | new 新购 · renew 续费 · flow_pack 加流量包 · recharge 充值 |
productId / cycle / nodeId | — | 否 | type = new 时必填,配置项同“报价” |
serviceId | 整数 | 否 | type = renew / flow_pack 时必填 |
serviceIds | 数组 | 否 | type = renew 时可传多个产品 ID,一张订单续费多个 |
flowPackId | 整数 | 否 | type = flow_pack 时必填 |
amount | 字符串 | 否 | type = recharge 时必填,如 "100.00" |
订单默认 30 分钟内不支付自动取消。
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/orders \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"type": "renew", "serviceId": 501}'
返回示例
{
"code": 0,
"message": "success",
"data": {
"no": "20261103120000123456",
"amount": "110.00",
"type": "renew",
"expiresAt": "2026-11-03 12:30:00"
}
}
POST/api/v1/orders/pay
支付订单
gateway = balance 直接扣余额,付款成功后自动开通 / 续费;alipay_f2f 返回支付宝二维码内容,扫码后用“查询订单状态”轮询。
| 参数 | 类型 | 必填 | 说明 |
|---|
no | 字符串 | 是 | 订单号(20 位数字) |
gateway | 字符串 | 是 | balance / alipay_f2f |
余额不足时返回 code 4001。
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/orders/pay \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"no": "20261103120000123456", "gateway": "balance"}'
返回示例
{
"code": 0,
"message": "success",
"data": {
"paid": true
}
}
GET/api/v1/orders/status
查询订单状态
status:pending 待支付 · paid 已付款(处理中)· completed 已完成 · cancelled 已取消。
请求示例
curl https://www.suzhuanfa.com/api/v1/orders/status \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": {
"status": "completed"
}
}
GET/api/v1/orders
订单列表
按时间倒序分页。
| 参数 | 类型 | 必填 | 说明 |
|---|
page | 整数 | 否 | 页码 |
pageSize | 整数 | 否 | 每页条数 1–100 |
请求示例
curl https://www.suzhuanfa.com/api/v1/orders \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": {
"items": [
{
"no": "20261103120000123456",
"type": "renew",
"amount": "110.00",
"status": "completed",
"createdAt": "2026-11-03 12:00:00",
"paidAt": "2026-11-03 12:00:05"
}
],
"total": 1,
"page": 1,
"pageSize": 20
}
}
GET/api/v1/orders/detail
订单详情
请求示例
curl https://www.suzhuanfa.com/api/v1/orders/detail \
-H "Authorization: Bearer $SZF_KEY"
返回示例
{
"code": 0,
"message": "success",
"data": {
"no": "20261103120000123456",
"type": "renew",
"amount": "110.00",
"status": "completed",
"items": [
{
"kind": "renew",
"serviceId": 501,
"description": "黑铁套餐 续费 1 个月",
"amount": "110.00"
}
]
}
}
POST/api/v1/orders/cancel
取消订单
只能取消待支付的订单。
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/orders/cancel \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"no": "20261103120000123456"}'
返回示例
{
"code": 0,
"message": "success",
"data": null
}
代理测试
POST/api/v1/proxy-test
测自己的产品
测静态 IP(延迟、出口、常用网站)或某条转发规则的入口连通性。每分钟最多 10 次。
| 参数 | 类型 | 必填 | 说明 |
|---|
serviceId | 整数 | 是 | 产品 ID |
ruleId | 整数 | 否 | 转发产品必填:要测的规则 ID |
sites | 布尔 | 否 | 静态 IP:是否测常用网站 |
speed | 布尔 | 否 | 静态 IP:是否测 5 MB 下载速度 |
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/proxy-test \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"serviceId": 501, "ruleId": 9001}'
返回示例
{
"code": 0,
"message": "success",
"data": null
}
POST/api/v1/proxy-test/batch
批量检测外部代理
每批最多 10 个,每小时最多 100 批。账号密码只用于这次检测,不保存。
| 参数 | 类型 | 必填 | 说明 |
|---|
items | 数组 | 是 | 每项:scheme(http / socks5,留空自动识别)、host、port、user、pass |
sites | 布尔 | 否 | 是否测常用网站 |
请求示例
curl -X POST https://www.suzhuanfa.com/api/v1/proxy-test/batch \
-H "Authorization: Bearer $SZF_KEY" \
-H "Content-Type: application/json" \
-d '{"items": [{"scheme": "socks5", "host": "198.51.100.7", "port": 1080, "user": "u1", "pass": "p1"}]}'
返回示例
{
"code": 0,
"message": "success",
"data": null
}
完整示例
把密钥放进环境变量 SZF_KEY,不要直接写在代码里。
Python(requests)
import os, requests
BASE = "https://www.suzhuanfa.com/api/v1"
S = requests.Session()
S.headers["Authorization"] = "Bearer " + os.environ["SZF_KEY"]
def call(method, path, **kw):
r = S.request(method, BASE + path, timeout=30, **kw)
d = r.json()
if d["code"] != 0:
raise RuntimeError(f"{d['code']} {d['message']}")
return d["data"]
# 1. 看看有哪些产品
for s in call("GET", "/services"):
print(s["id"], s["product"], s["status"], "到期", s["dueAt"])
# 2. 给产品 501 新建一条转发
rule = call("POST", "/services/501/rules",
json={"remoteAddress": "203.0.113.10", "remotePort": 443, "remark": "美国-443"})
print("连接地址:", rule["connect"])
# 3. 用余额续费(带 Idempotency-Key,重试也不会重复下单)
import uuid
order = call("POST", "/orders", json={"type": "renew", "serviceId": 501},
headers={"Idempotency-Key": uuid.uuid4().hex})
call("POST", "/orders/pay", json={"no": order["no"], "gateway": "balance"})
print("续费成功,订单", order["no"])
Node.js
// Node.js 18+(自带 fetch)
const BASE = 'https://www.suzhuanfa.com/api/v1';
const KEY = process.env.SZF_KEY;
async function call(method, path, body, headers = {}) {
const res = await fetch(BASE + path, {
method,
headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json', ...headers },
body: body ? JSON.stringify(body) : undefined,
});
const d = await res.json();
if (d.code !== 0) throw new Error(`${d.code} ${d.message}`);
return d.data;
}
const services = await call('GET', '/services?live=1');
for (const s of services) console.log(s.id, s.product, s.traffic?.usedGb, 'GB');
const rule = await call('POST', '/services/501/rules', { remoteAddress: '203.0.113.10', remotePort: 443 });
console.log('连接地址:', rule.connect);
PHP(curl)
<?php
$base = 'https://www.suzhuanfa.com/api/v1';
$key = getenv('SZF_KEY');
function call(string $method, string $path, ?array $body = null): mixed {
global $base, $key;
$ch = curl_init($base . $path);
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => $method,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ["Authorization: Bearer $key", 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => $body === null ? null : json_encode($body),
]);
$d = json_decode((string) curl_exec($ch), true);
if (($d['code'] ?? -1) !== 0) throw new RuntimeException(($d['message'] ?? '请求失败'));
return $d['data'];
}
foreach (call('GET', '/services/501/rules') as $r) {
echo $r['connect'], ' → ', $r['remoteAddress'], ':', $r['remotePort'], ' ', $r['status'], PHP_EOL;
}
不能用密钥的接口
下面这些涉及账号安全或资金提现,只能登录网站操作。用密钥调用会返回 HTTP 403:
- 修改密码、手机号、邮箱,界面偏好设置
- 创建、查看、删除 API 密钥
- 推广赚钱:申请推广员、申请提现
- 退出登录
- 生成批量加速报告(Excel),比较耗服务器资源,只在网站上提供
工单、推广数据等其他功能请在网站客户中心使用。有问题欢迎提交工单。