跳转到内容

图片英数字识别

把一张字符验证码图片转成 Base64 发过来,返回图片里的英文和数字(solution.text)。ImageToTextTaskOcrBase 每张 2 点(0.002 元),同步返回:一次 createTask 请求就拿到结果。需要指定大小写、纯数字、算式等要求时,用异步的 ImageToTextTask。

POSThttps://api.yescaptcha.com/createTask国际节点
POSThttps://cn.yescaptcha.com/createTask国内节点

请求体是 JSON,用 clientKey 鉴权。

任务类型价格返回方式说明
ImageToTextTaskOcrBase2 点(0.002 元)同步
ImageToTextTaskMuggle2 点(0.002 元)同步不支持 case、numeric 等附加要求;可以用 project_name 指定定制模型
ImageToTextTask4 点(0.004 元)异步
ImageToTextTaskM115 点(0.015 元)异步
需要 用哪个
普通的英数字验证码,最便宜、最快 ImageToTextTaskOcrBase、ImageToTextTaskMuggle(同步)
用为你定制的模型识别 ImageToTextTaskMuggle 加 project_name
要求区分大小写、只有数字、算式求值、限定长度 ImageToTextTask、ImageToTextTaskM1(异步)

不同类型的模型和线路不同,同一类图片的效果可能不一样,可以都测试一下再选。

字段类型必填说明
typestring是任务类型,取值见本页"类型与价格"
bodystring是图片的 Base64 编码,不带 data:image/...;base64, 前缀,不要有换行
project_namestring否定制模型的名称,只有 ImageToTextTaskMuggle 支持;不传时用通用英文数字模型。需要定制模型请联系客服(仅 ImageToTextTaskMuggle)
phraseboolean否true 表示答案至少包含一个空格(仅 ImageToTextTask、ImageToTextTaskM1)
caseboolean否true 表示区分大小写(仅 ImageToTextTask、ImageToTextTaskM1)
numericinteger否0 没有要求;1 只有数字;2 不含数字(仅 ImageToTextTask、ImageToTextTaskM1)
mathboolean否true 表示图片是算式,返回计算结果(仅 ImageToTextTask、ImageToTextTaskM1)
minLengthinteger否答案的最小长度,0 表示不限(仅 ImageToTextTask、ImageToTextTaskM1)
maxLengthinteger否答案的最大长度,0 表示不限(仅 ImageToTextTask、ImageToTextTaskM1)

body 是图片文件的 Base64 编码:不带 data:image/...;base64, 前缀,不要有换行。WebP 图片会自动转换。

POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "ImageToTextTaskOcrBase",
"body": "BASE64_IMAGE"
}
}

完整代码(读取当前目录下的 captcha.png):

终端窗口
# 把 BASE64_IMAGE 换成图片的 Base64 编码
curl -s https://api.yescaptcha.com/createTask \
-H 'Content-Type: application/json' \
-d '{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "ImageToTextTaskOcrBase",
"body": "BASE64_IMAGE"
}
}'

带要求的异步任务:

POST https://api.yescaptcha.com/createTask
{
"clientKey": "YOUR_CLIENT_KEY",
"task": {
"type": "ImageToTextTask",
"body": "BASE64_IMAGE",
"case": true,
"numeric": 0,
"minLength": 4,
"maxLength": 6
}
}

同步类型在 createTask 里直接返回:

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

异步类型(ImageToTextTask、ImageToTextTaskM1)先返回 taskId,再每 5 秒用 getTaskResult 查询,完成时 solution 的格式相同。

字段类型说明
textstring识别出的文字

通用模型对所有英数字验证码都能用,准确率比专门训练的模型略低。如果你要识别的图片固定是某一种样式,可以 联系客服 定制模型,之后用 ImageToTextTaskMuggle 加 project_name 指定。

同步类型识别出结果就扣点,即使结果不对。可以换一个类型对比效果,或者定制模型。

返回 ERROR_ZERO_CAPTCHA_FILESIZE 或 ERROR_PARSE_IMAGE_FAIL?

Section titled “返回 ERROR_ZERO_CAPTCHA_FILESIZE 或 ERROR_PARSE_IMAGE_FAIL?”

图片的 Base64 不完整,或者带了 data: 前缀、换行。检查编码,见 错误码。