跳转到内容

createTask 创建任务

createTask 创建一个识别任务,在 task.type 里指定识别哪一种验证码。异步类型返回 taskId,之后用 getTaskResult 取结果;同步类型直接返回结果。任务创建成功时扣点,余额必须大于 10 点。

POSThttps://api.yescaptcha.com/createTask国际节点
POSThttps://cn.yescaptcha.com/createTask国内节点
字段 类型 必填 说明
clientKey string 是 账户密钥,在 yescaptcha.com 后台复制
task object 是 任务对象,必须有 type;其他字段按任务类型填,见各任务类型页
softID integer 否 开发者 ID。你开发的软件给别人用时带上它,可以得到分成,见 开发者分成

识别一张图片验证码(同步):

{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "ImageToTextTaskOcrBase",
"body": "BASE64_IMAGE"
}
}

获取 reCAPTCHA v2 的 token(异步):

{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "NoCaptchaTaskProxyless",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
}
}

各任务类型的 task 字段见 任务类型与价格 下的各页。

异步类型:

{ "errorId": 0, "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006" }

记下 taskId,5 秒后开始用 getTaskResult 查询。

同步类型:

{
"errorId": 0,
"status": "ready",
"taskId": "2376919c-1863-11ec-a012-94e6f7355a0b",
"solution": { "text": "LMResm" }
}

失败:

{ "errorId": 1, "errorCode": "ERROR_TASK_NOT_SUPPORTED", "errorDescription": "任务类型不正确或不受支持" }

服务端按这个顺序检查请求,遇到第一个问题就返回对应的错误码,不扣点:

  1. 请求体是合法的 JSON:ERROR_REQUEST_FORMATS
  2. 带了 clientKey:ERROR_REQUIRED_FIELDS
  3. clientKey 存在:ERROR_KEY_DOES_NOT_EXIST
  4. 没有被自动暂停:ERROR_IP_BLOCKED_5MIN(见 并发限制与自动暂停)
  5. 余额大于 10 点:ERROR_ZERO_BALANCE
  6. 带了 task:ERROR_TASK_ABSENT
  7. task.type 存在:ERROR_TASK_NOT_SUPPORTED
  8. 必填字段齐全:ERROR_REQUIRED_FIELDS(errorDescription 里写了缺哪个字段)
  9. 图片类任务的图片合法:ERROR_ZERO_CAPTCHA_FILESIZE、ERROR_IMAGE_TYPE_NOT_SUPPORTED 等

创建任务并轮询结果(异步类型):

终端窗口
curl -s https://api.yescaptcha.com/createTask \
-H 'Content-Type: application/json' \
-d '{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "NoCaptchaTaskProxyless",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
}
}'
# 返回 {"errorId":0,"taskId":"..."},然后每 5 秒查询一次结果:
curl -s https://api.yescaptcha.com/getTaskResult \
-H 'Content-Type: application/json' \
-d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'