当前调用策略
单 IP 每 10 分钟 600 次;单兑换码每 5 分钟 360 次;批量接口单次最多 20 条。
GET/api/v1/redeem/inventory
查询统一直充库存
只返回库存充足、少量现货或暂时无货,不暴露具体数量。Plus 与 Pro 套餐共享同一状态。
curl "https://your-domain/api/v1/redeem/inventory"
POST/api/v1/redeem/verify
根据兑换码自动识别产品
只提交完整兑换码,即可获得产品品牌、具体套餐、交付类型和应提交的充值凭证字段。已使用兑换码还会返回关联订单与最终结果;该查询不创建订单、不占库存。
curl -X POST "https://your-domain/api/v1/redeem/verify" \
  -H "Content-Type: application/json" \
  -d '{ "redeemCode": "GATAI-XXXXX-XXXXX-XXXXX-XXXXX" }'

识别结果示例

{
  "code": 0,
  "data": {
    "product": {
      "family": "claude",
      "name": "Claude",
      "plan_code": "claude-max-5x",
      "plan_name": "Claude Max 5x",
      "delivery_type": "activation_code"
    },
    "required_credential": {
      "type": "claude_session_key",
      "label": "Claude SessionKey",
      "request_field": "credential.sessionInfo"
    },
    "code_status": "unused",
    "can_recharge": true
  }
}
POST/api/v1/redeem/verify/batch
批量识别最多 20 个兑换码
支持 redeemCodes 字符串数组、items 对象数组,以及同行兼容字段 card_keys;每项都返回自己的 product 与 required_credential,不会因单项错误中断整批。
curl -X POST "https://your-domain/api/v1/redeem/verify/batch" \
  -H "Content-Type: application/json" \
  -d '{
    "redeemCodes": [
      "GATAI-XXXXX-XXXXX-XXXXX-XXXXX",
      "GATAI-YYYYY-YYYYY-YYYYY-YYYYY"
    ]
  }'
POST/api/v1/redeem/session/validate
提交前预检 ChatGPT Session
不创建订单、不占库存,仅识别 Session JSON 必要结构与账号姓名、邮箱;Claude 或 UID 产品请直接按 verify 返回的 required_credential 提交。
curl -X POST "https://your-domain/api/v1/redeem/session/validate" \
  -H "Content-Type: application/json" \
  -d '{ "redeemCode": "GATAI-...", "token": { "user": { "email": "user@example.com" }, "account": { "id": "account-example" }, "accessToken": "<access-token>" } }'
POST/api/v1/redeem/direct
按兑换码产品创建直充订单
服务端会再次根据兑换码确定产品,并按 required_credential 验证资料;调用方不需要传套餐才能路由。
curl -X POST "https://your-domain/api/v1/redeem/direct" \
  -H "Content-Type: application/json" \
  -d '{
    "redeemCode": "GATAI-XXXXX-XXXXX-XXXXX-XXXXX",
    "subscriptionExpiredConfirmed": false,
    "credential": {
      "sessionInfo": {
        "user": { "email": "user@example.com" },
        "account": { "id": "account-example" },
        "accessToken": "<chatgpt_access_token>"
      }
    }
  }'
redeemCode

必填,后台生成的完整兑换码

credential

必填,按 verify 返回的 required_credential.request_field 提交

expectedPlanCode

可选安全校验;服务端会自动根据兑换码识别产品,不需要依赖该字段

subscriptionExpiredConfirmed

仅重试“会员未到期”时使用,必须由用户确认已到期且取消后传 true

credential.sessionInfo

ChatGPT Session JSON 或 Claude SessionKey 等会话凭证

credential.uid

仅 ID 类型产品使用;Claude 填写 Organization ID(UUID),例如 01a07318-304f-4deb-98ef-448c3723b4b0

POST/api/v1/redeem/status
查询充值状态与最终结果
未使用、处理中或已使用的兑换码都可作为查询凭证;可额外传 orderNo 防止串单。sync=false 只读本地最新状态。
curl -X POST "https://your-domain/api/v1/redeem/status" \
  -H "Content-Type: application/json" \
  -d '{ "redeemCode": "GATAI-XXXXX-XXXXX-XXXXX-XXXXX", "orderNo": "MC...", "sync": true }'
pendingprocessingsuccessfailed
POST/api/v1/redeem/status/batch
批量查询最多 20 笔
适合商城定时对账;默认不强制同步上游,每笔成功或失败独立返回。除 items 外也兼容 redeemCodes 与 card_keys 字符串数组。
curl -X POST "https://your-domain/api/v1/redeem/status/batch" \
  -H "Content-Type: application/json" \
  -d '{
    "sync": false,
    "items": [
      { "redeemCode": "GATAI-XXXXX-XXXXX-XXXXX-XXXXX", "orderNo": "MC..." },
      { "redeemCode": "GATAI-YYYYY-YYYYY-YYYYY-YYYYY" }
    ]
  }'
POST/api/v1/redeem/attempts
查询完整重试链
返回每次提交、上游尝试和已脱敏失败原因,不暴露银行卡和上游凭证。
curl -X POST "https://your-domain/api/v1/redeem/attempts" \
  -H "Content-Type: application/json" \
  -d '{ "redeemCode": "GATAI-XXXXX-XXXXX-XXXXX-XXXXX", "orderNo": "MC..." }'
统一响应
同时判断 HTTP 状态码和业务 code,并保留 X-Request-Id 供售后排查。
{
  "code": 0,
  "message": "success",
  "data": {
    "api_version": "1.4",
    "request_id": "req_...",
    "order_no": "MC...",
    "task_id": "MC...",
    "status": "processing",
    "terminal": false,
    "progress_percent": 70,
    "next_action": { "code": "poll_status", "poll_after_ms": 2500 }
  }
}

2xx + code=0

业务成功

4xx

参数、兑换码或状态错误

5xx

保留兑换码与订单号后补查

安全要求
不要在日志、埋点、工单或截图中记录 accessToken、sessionToken、银行卡或完整兑换码。生产环境必须使用 HTTPS。