开始接入
验证码识别 API 快速开始:三步创建任务
几分钟内接入 SolveHub 验证码识别 API:获取 API Key,带幂等键调用 POST /v1/tasks,轮询 GET /v1/tasks/{taskId} 读取结果。附 cURL 示例。
适用于授权自动化测试、风控 QA 与浏览器集成。请仅在有权测试的站点和业务流程中使用。
账户、Key 与可用余额
先注册账户并验证邮箱(注册必须通过邮箱验证码);新用户还可以绑定 Telegram 领取 0.10 USD 试用余额,无需充值即可先跑通流程。控制台开放自助服务时,可开通账户并获得首把 Key;也可绑定 SolveHub 已签发的 Key。自助服务暂未开放时,请联系 SolveHub 获取 Key,不要假定邮箱注册后即可直接调用任务接口。在控制台的 Key 页面确认 tasks 权限、有效期、IP 限制与消费额度,按当前提供的方式充值。价格接口无需登录,余额与 Key 状态则以自己的账户为准。
- 从控制台取得具有
tasks权限的 API Key,并查询GET /v1/prices,确认目标type的available为true。生产环境 Base URL 为https://www.tiam.codes。本机 API 地址为http://127.0.0.1:8080。 - 按左侧验证码类型栏目准备
task参数。向POST /v1/tasks提交外层type、内层task,同时传Authorization: Bearer <API_KEY>、Content-Type: application/json和 8–128 字符的Idempotency-Key。不要在请求中填写clientKey、taskType或其他服务的密钥。 - 保存返回的
taskId。每约 2–3 秒查询GET /v1/tasks/{taskId},直到completed、failed或cancelled;读取完成任务的solution。queued、dispatching、processing继续等待;uncertain需要保留原任务并继续查询或联系客服,不能换新幂等键盲目重建。
export SOLVEHUB_URL='https://www.tiam.codes'
export SOLVEHUB_API_KEY='sh_REPLACE_ME'
curl -sS -X POST "$SOLVEHUB_URL/v1/tasks" \
-H "Authorization: Bearer $SOLVEHUB_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: your-order-12345' \
-d '{"type":"turnstile","task":{"websiteURL":"https://example.com","websiteKey":"SITE_KEY"}}'
# 从响应保存 taskId,再查询:
curl -sS -H "Authorization: Bearer $SOLVEHUB_API_KEY" \
"$SOLVEHUB_URL/v1/tasks/TASK_ID"
创建成功返回 HTTP 202,包含 taskId,status,priceMicros,traceId 等字段。完成后 solution 按验证码类型返回结果;不同类型的结果字段不同。任务成功时按创建时冻结的价格扣费,明确失败或取消时退回预占。网络超时或 5xx 时,使用相同幂等键和相同请求体重试,再查询原任务;幂等记录仅保留约 25 小时,长期去重应保存 taskId。
下列“结果示意”只展示已完成任务中的 solution 字段。令牌、Cookie、识别文字及代理均为占位值;真正的结果应从你自己的 GET /v1/tasks/{taskId} 响应读取。不要依赖示例值或把不同类型的 solution 解析为同一种格式。
需要自定义代理的类型使用 proxyType:"http"、proxyAddress、字符串 proxyPort;地址与端口必须一起提供。可选代理不填写时由平台处理网络请求。使用代理解题后,消费 Cookie、令牌或验证载荷时,通常还需保持相同出口 IP 和返回的 useragent。API Key 与代理口令只应保存在服务端。
平台创建与查询响应
创建成功(HTTP 202)返回平台任务对象:
{"taskId":"00000000-0000-4000-8000-000000000001","type":"turnstile","status":"queued","priceMicros":200,"traceId":"00000000-0000-4000-8000-000000000002","createdAt":"2026-10-05T00:00:00Z"}
查询 GET /v1/tasks/{taskId} 成功时返回同一个任务对象。status=completed 时读取 solution;failed 时查看 TASK_FAILED 或 TASK_TIMEOUT;uncertain 时为 TASK_UNCERTAIN,金额仍预占,继续查原任务。priceMicros 是创建时冻结的单次价格,金额单位为 USD 微美元。
可在 实时价格 查看公开标价,或直接请求 GET /v1/prices。签有协议价的客户可用自己的 API Key 请求 GET /v1/me/prices 查看生效单价;最终扣费以创建任务响应的 priceMicros 为准。
相关文档
最近更新: