API 调用说明

REST

提交 Access Token 创建异步 UPI 任务,再通过任务 ID 查询状态和结果。

返回提取页面
服务约束 固定 UPI · 30 个并发 worker · 单任务最长 300 秒 · 网络配置由后端自动处理

先把 BASE_URL 设置为当前服务地址:

BASE_URL="http://127.0.0.1:8891"
POST

创建任务

/api/tasks

curl -X POST "${BASE_URL}/api/tasks" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: optional-request-id" \
  -d '{
    "access_token": "[OPENAI_ACCESS_TOKEN]"
  }'

响应示例

{
  "ok": true,
  "task_id": "upi_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "status": "queued",
  "status_url": "/api/tasks/upi_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "logs_url": "/api/tasks/upi_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/logs",
  "workers": 30,
  "timeout_seconds": 300
}
GET

查看作业详情日志

/api/tasks/{task_id}/logs?after=0&limit=200

curl "${BASE_URL}/api/tasks/upi_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/logs?after=0&limit=200"

日志包含排队、worker、代理切换、Checkout/Stripe 阶段、错误原因和最终结果。使用响应的 next_after 继续增量查询;服务端持久化前会脱敏 Token、代理凭据和账单身份。

GET

查询任务

/api/tasks/{task_id}

curl "${BASE_URL}/api/tasks/upi_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

成功任务在 result 中返回 UPI instructions 链接;失败、超时或取消任务在 error 中返回错误码和说明。

GET

任务列表与状态统计

GET /api/tasks

只返回聚合队列统计和成功率,不返回任务 ID。网页任务列表由各浏览器在本地保存自己的任务 ID,再通过批量查询接口获取状态。

POST

停止任务

/api/tasks/{task_id}/cancel

curl -X POST "${BASE_URL}/api/tasks/upi_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/cancel"

任务状态

queued 等待执行 running 执行中 cancelling 正在停止 succeeded 已成功 failed 执行失败 timed_out 超过 300 秒 cancelled 已取消 interrupted 服务重启时已进入外部流程,为避免重复 Checkout 未自动重放

安全说明

任务 API 不接收代理参数。活动任务正文使用本机密钥加密后持久化,进入终态后立即清除密文;聚合统计接口不会返回任何任务 ID、Token 或代理凭据。