API 调用说明
REST提交 Access Token 创建异步 UPI 任务,再通过任务 ID 查询状态和结果。
服务约束
固定 UPI · 30 个并发 worker · 单任务最长 300 秒 · 网络配置由后端自动处理
先把 BASE_URL 设置为当前服务地址:
BASE_URL="http://127.0.0.1:8891"
创建任务
/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
}
查看作业详情日志
/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、代理凭据和账单身份。
查询任务
/api/tasks/{task_id}
curl "${BASE_URL}/api/tasks/upi_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
成功任务在 result 中返回 UPI instructions 链接;失败、超时或取消任务在 error 中返回错误码和说明。
任务列表与状态统计
GET /api/tasks
只返回聚合队列统计和成功率,不返回任务 ID。网页任务列表由各浏览器在本地保存自己的任务 ID,再通过批量查询接口获取状态。
停止任务
/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 或代理凭据。