公开接口文档

公开 JSON 兑换 API

面向脚本调用方和第三方系统接入方。接口保持公开,不需要额外 API Key,统一收 JSON、回 JSON。

下载继续复用 GET /download/redeem/{code}/{batch_no},不单独提供第二套 JSON 下载接口。
查询接口
POST
/api/public/redeem/lookup
领取接口
POST
/api/public/redeem/claim
重下接口
POST
/api/public/redeem/redownload
上传接口
POST
/api/public/redeem/upload

基础约定

说明
请求头 Content-Type: application/json
返回格式 统一返回 JSON,最外层固定包含 okmessageerror
查询入口 以兑换码为主,无需 task_id 查询接口
下载方式 继续使用现有 GET /download/redeem/{code}/{batch_no}
公开信息范围 只返回当前兑换码相关状态、批次和最近任务摘要,不暴露全局队列人数等后台信息

状态码

状态码 说明
200查询成功
202动作已成功入队
400参数错误或 JSON 非法
404兑换码不存在或批次不存在
409当前状态冲突,例如同码已有排队任务、冷却中、关闭新领取、批次不可操作
500服务端异常

查询兑换码

路径:POST /api/public/redeem/lookup

{
  "code": "ABCD-1234"
}
{
  "ok": true,
  "message": "查询成功",
  "code": {
    "code": "ABCD-1234",
    "account_count": 300,
    "remaining_count": 200,
    "pool_type": "domain",
    "status": "partial",
    "created_at": 1775730000,
    "used_at": 1775730500,
    "current_batch_no": 3
  },
  "suggested_count": 100,
  "redeem_enabled": true,
  "has_active_task": false,
  "latest_task": {
    "id": "rdm_9f6d3d3b",
    "type": "redeem_claim",
    "status": "succeeded",
    "message": "批次 #3 已生成,剩余 200 个,可直接下载。",
    "created_at": 1775730600,
    "batch_no": 3
  },
  "active_batch": {
    "batch_no": 3,
    "account_count": 100,
    "export_format": "cpa",
    "status": "active",
    "cache_expires_at": null,
    "download_path": "/download/redeem/ABCD-1234/3",
    "can_download": true,
    "can_redownload": true,
    "can_upload": true
  },
  "batches": []
}

领取下一批

路径:POST /api/public/redeem/claim

字段 类型 必填 说明
codestring兑换码
quantitynumber本次领取数量
formatstring导出格式,默认 cpa
auto_checkboolean是否领取前检测失效账号
deliverystringdownload 或 upload,默认 download
uploadobject条件必填当 delivery=upload 时必填
支持格式:cpa、sub2api、newapi、team_manager、auth_json
{
  "code": "ABCD-1234",
  "quantity": 100,
  "format": "cpa",
  "auto_check": true,
  "delivery": "download"
}
{
  "code": "ABCD-1234",
  "quantity": 100,
  "format": "cpa",
  "auto_check": true,
  "delivery": "upload",
  "upload": {
    "target": "cpa",
    "api_url": "https://example.com/v0/management/auth-files",
    "api_token": "YOUR_TOKEN"
  }
}
{
  "ok": true,
  "queued": true,
  "message": "已加入领取队列,可关闭页面稍后回来查询。",
  "task": {
    "id": "rdm_4a6f2d91",
    "type": "redeem_claim",
    "status": "queued",
    "created_at": 1775731000
  },
  "lookup": {
    "redeem_enabled": true,
    "has_active_task": true,
    "batches": []
  }
}

重下指定批次

路径:POST /api/public/redeem/redownload

{
  "code": "ABCD-1234",
  "batch_no": 3,
  "format": "auth_json"
}
{
  "ok": true,
  "queued": true,
  "message": "已加入重新下载队列,可关闭页面稍后回来查询。",
  "task": {
    "id": "rdm_11112222",
    "type": "redeem_redownload",
    "status": "queued",
    "created_at": 1775731200,
    "batch_no": 3
  }
}

上传指定批次

路径:POST /api/public/redeem/upload

{
  "code": "ABCD-1234",
  "batch_no": 3,
  "upload": {
    "target": "sub2api",
    "api_url": "https://example.com/api/v1/admin/accounts/data",
    "api_key": "YOUR_API_KEY"
  }
}
upload 字段 说明
target上传目标,支持 cpa、sub2api、newapi、team_manager
api_url上传地址
api_tokenCPA 使用
api_keySub2API / Team Manager 使用
usernamenew-api 使用
passwordnew-api 使用

下载批次文件

下载不走 JSON,继续使用:

GET /download/redeem/{code}/{batch_no}

查询结果里的 active_batch.download_pathbatches[].download_path 都可以直接拼接到服务域名后使用。

curl -L -o batch_3.zip \
  'http://127.0.0.1:8080/download/redeem/ABCD-1234/3'

推荐调用流程

  1. 先调用 POST /api/public/redeem/lookup 确认兑换码状态。
  2. 领取新批次时调用 POST /api/public/redeem/claim
  3. 动作提交成功后,继续按兑换码轮询 POST /api/public/redeem/lookup
  4. 当最近任务变成 succeeded 并出现可下载批次后,再调用 GET /download/redeem/{code}/{batch_no}
同一个兑换码如果已有排队中或执行中的公开任务,新任务会被拒绝;公开下载/上传动作仍保留 1 分钟冷却。