HTTP_SUBMIT纯 HTTP 提交
目标业务及验证提交能通过 HTTP 完成,且能保持必要会话条件。有识别 API 不代表整个网站支持纯 HTTP 操作。
获取目标挑战与参数 → 创建并查询对应识别任务 → 随目标请求提交结果 → 检查验证及业务结果。
API REFERENCE / V1
使用 API Key 创建验证任务,通过 WebSocket 接收结果,或使用查询接口补查。
HTTP_SUBMIT目标业务及验证提交能通过 HTTP 完成,且能保持必要会话条件。有识别 API 不代表整个网站支持纯 HTTP 操作。
获取目标挑战与参数 → 创建并查询对应识别任务 → 随目标请求提交结果 → 检查验证及业务结果。
BROWSER_RESULT浏览器工具能读取当前接入参数,并按目标集成方式使用该产品结果。浏览器执行能力与识别服务能力需要分别判断。
读取当前原生产品参数 → 识别 → 回填规定的 Token 字段或回调,或按契约成组替换或提交匹配的挑战标识与证明或答案 → 正常提交 → 检查目标验证及业务结果。仅替换图片不等于完成接入。
BROWSER_INTERACTION当前挑战符合所选图片产品,浏览器工具可以取得正确图片,并执行所需点击、旋转或拖动。
取得当前挑战及原始题目 → 识别 → 将答案映射到当前图片 → 执行交互 → 检查换图或下一轮挑战 → 确认目标结果。
识别成功 → 目标验证通过 → 业务完成
| 失败编码 | 下一步 |
|---|---|
INVALID_INPUT | READ_PRODUCT_SCHEMA补齐或修正参数;不要原样重试错误参数或切换 GRID。 |
TRANSPORT_OR_WAF | INSPECT_REQUEST_CHAIN检查 HTTP、网络及 WAF 响应。403 不是识别结果;不确定是否送达时,用相同 requestId 和参数重试。 |
TASK_EXPIRED | RECAPTURE_CHALLENGE检查当前挑战及有效期,确认仍有需要后再创建新付费任务。 |
PROVIDER_INPUT_INVALID | READ_PRODUCT_SCHEMA上游拒绝参数,检查产品选择、当前参数及题目。 |
PROVIDER_UNSOLVABLE | INSPECT_CHALLENGE先检查图片质量、题目及挑战是否仍有效,再决定是否付费重试。 |
PROVIDER_UNAVAILABLE | RETRY_LATER服务可用性问题,不要仅因此更换验证码产品。 |
TASK_FAILED | INSPECT_CHALLENGE暂无明确公开原因。报告任务 ID 并检查上下文;不能宣称目标拒绝或推断产品不支持。 |
TARGET_REJECTED | CHECK_BINDING_AND_EXPIRY由调用方观察,不能从识别状态推断。检查目标响应、挑战关联及有效期。 |
BROWSER_APPLICATION_UNSUPPORTED | CHANGE_EXECUTION_ENVIRONMENT浏览器无法使用结果,应报告执行能力限制,不能判定识别产品不可用。 |
01 / AUTHENTICATION
创建和查询任务时,将 API Key 统一放在 HTTP apiKey 请求头中;JSON 请求体只包含业务参数。
| 请求头 | 类型 | 必填 | 说明 |
|---|---|---|---|
apiKey | string | 是 | 创建、查询任务必填;公开产品目录无需鉴权。不要放入 JSON 请求体或 URL。 |
Content-Type | string | 是 | application/json |
Accept-Language | string | 否 | zh-CN、zh-TW 或 en-US,支持 q 权重;未传时使用请求头 API Key 对应用户的配置语言。 |
Content-Type: application/json apiKey: YOUR_API_KEY Accept-Language: zh-CN
成功和错误消息优先使用 Accept-Language 请求头;未传或为空时使用请求头 API Key 对应用户的语言配置,无法识别用户或语言不受支持时使用 en-US。X-Language、URL lang 和 X-I18n-Cache 不覆盖 OpenAPI 响应;状态、产品编码与识别答案保持原值。
PRODUCT SCHEMA / DISCOVERY
/api/product/schema.cgi?productCode=GRID免费公开接口,与 MCP get_product_schema 共用定义。先查询启用产品目录,再按产品编码获取参数模型、示例、结果契约和接入流程。查询不会创建任务或扣款。
GET /api/product/schema.cgi?productCode=GRID Accept-Language: zh-CN
{
"code" : 0,
"msg" : "操作成功",
"data" : {
"productCode" : "GRID",
"schema" : {
"type" : "object",
"description" : "GRID input parameters. Read x-integration before creating a paid task. Fallback only when the matching native route is confirmed unavailable; latency and multiple rounds may exceed the target challenge deadline.",
"required" : [ "body" ],
"properties" : {
"body" : {
"type" : "string",
"description" : "图片内容或任务主体;按产品要求传入 Base64 或文本。",
"minLength" : 1
},
"comment" : {
"type" : "string",
"description" : "提交给人工识别者的说明。",
"minLength" : 1,
"examples" : [ "Select all images containing stairs." ]
},
"rows" : {
"type" : "integer",
"description" : "提交的当前网格实际行数。",
"minimum" : 1,
"examples" : [ 3 ]
},
"columns" : {
"type" : "integer",
"description" : "提交的当前网格实际列数。",
"minimum" : 1,
"examples" : [ 3 ]
},
"imgInstructions" : {
"type" : "string",
"description" : "可选的 Base64 题目图片,最多 100 kB;comment 与 imgInstructions 至少一个,使用 imgType 时必须提供英文原始题目和原始图像文件。",
"minLength" : 1,
"examples" : [ "BASE64_INSTRUCTION_IMAGE" ]
},
"imgType" : {
"type" : "string",
"description" : "可选上游计算机视觉模式:recaptcha 或 funcaptcha;不能把通用或自定义图片冒称为这些产品,必须提供英文原始题目和原始图像文件。",
"enum" : [ "recaptcha", "funcaptcha" ],
"minLength" : 1,
"examples" : [ "recaptcha" ]
},
"previousId" : {
"type" : "string",
"description" : "可选的同一持续挑战上游任务 ID,仅已知时提供;不是 Nex Captcha 平台 UUID,未取得上游 ID 时省略。不能关联其他或过期挑战。",
"minLength" : 1,
"pattern" : "^[0-9]+$",
"examples" : [ "123456789" ]
},
"minClicks" : {
"type" : "integer",
"description" : "可选 minClicks 边界,指定行列时不能超过 rows*columns,minClicks 不能大于 maxClicks。",
"minimum" : 0,
"examples" : [ 1 ]
},
"maxClicks" : {
"type" : "integer",
"description" : "可选 maxClicks 边界,指定行列时不能超过 rows*columns,minClicks 不能大于 maxClicks。",
"minimum" : 0,
"examples" : [ 9 ]
},
"canNoAnswer" : {
"type" : "integer",
"description" : "0 或 1,仅实际题目允许没有匹配图片时设为 1,不用于掩盖识别失败。",
"enum" : [ 0, 1 ],
"examples" : [ 0 ]
}
},
"additionalProperties" : false,
"anyOf" : [ {
"required" : [ "comment" ]
}, {
"required" : [ "imgInstructions" ]
} ],
"allOf" : [ {
"if" : {
"required" : [ "imgType" ]
},
"then" : {
"required" : [ "comment" ]
}
} ]
},
"example" : {
"body" : "BASE64_CONTENT",
"comment" : "Select all images containing stairs."
},
"integration" : {
"workflows" : [ "BROWSER_INTERACTION" ],
"readiness" : "CONDITIONAL",
"resultKind" : "GRID_CELLS",
"resultGuide" : "仅确认匹配原生路径不可用后作为备选。solution.click 是逐行排列的 1 起始格子编号,须使用当前未变化图片及题目,逐轮确认后续挑战。可选行列、题目图片及识别设置不会把结果变成原生 hCaptcha/reCAPTCHA Token。previousId 已知时使用上游 ID,不是平台 UUID;不保证固定耗时或目标接受。",
"requirements" : [ "GRID 仅作为备选:没有可用的匹配原生产品或接入方式,或经排查确认原生方案不适用于当前挑战时,才考虑使用。先检查参数、会话绑定及有效期;HTTP 403、超时或参数错误本身不能作为切换依据。仍须取得真实的当前网格图片、原始题目及浏览器交互能力;条件不足时停止并报告阻塞。", "GRID 的取图、识别排队与处理、轮询及浏览器点击会增加端到端耗时;动态换图和多轮挑战还会增加操作。耗时可能超过目标挑战的有效期,不宜作为时效敏感流程的默认方案,不保证固定识别时长或目标接受结果。临近识别时再取图,应用前再次检查新鲜度;挑战过期或图片变化后丢弃旧答案,不复用过期答案或自动创建新付费任务。", "从同一目标及当前挑战取得新鲜参数。遵守具体产品的域名、动作、挑战或会话、IP、User-Agent 及有效期要求,不假设结果可以通用。返回 Cookie 仅用于对应域名。", "示例使用占位值,不是可直接运行的挑战。已说明结果字段不代表目标验证已通过,也不代表完成了实时可用性测试。不要提交未支持的字段。" ],
"inputSources" : {
"body" : "按字段格式从目标取得当前挑战素材。图片须保持原图尺寸及顺序;截图只截挑战区域,不能截无关页面。AUDIO 使用实际音频内容。",
"comment" : "使用当前挑战的真实题目,不追加“返回坐标”等给 AI 的指令。依赖题意的任务不能省略此字段。",
"rows" : "提交的当前网格实际行数。",
"columns" : "提交的当前网格实际列数。",
"imgInstructions" : "可选的 Base64 题目图片,最多 100 kB;comment 与 imgInstructions 至少一个,使用 imgType 时必须提供英文原始题目和原始图像文件。",
"imgType" : "可选上游计算机视觉模式:recaptcha 或 funcaptcha;不能把通用或自定义图片冒称为这些产品,必须提供英文原始题目和原始图像文件。",
"previousId" : "可选的同一持续挑战上游任务 ID,仅已知时提供;不是 Nex Captcha 平台 UUID,未取得上游 ID 时省略。不能关联其他或过期挑战。",
"minClicks" : "可选 minClicks 边界,指定行列时不能超过 rows*columns,minClicks 不能大于 maxClicks。",
"maxClicks" : "可选 maxClicks 边界,指定行列时不能超过 rows*columns,minClicks 不能大于 maxClicks。",
"canNoAnswer" : "0 或 1,仅实际题目允许没有匹配图片时设为 1,不用于掩盖识别失败。"
},
"resultContract" : "DOCUMENTED_FIELDS",
"targetAcceptanceVerified" : false,
"indexBase" : 1,
"order" : "ROW_MAJOR",
"resultSchema" : {
"type" : "object",
"properties" : {
"click" : {
"type" : "array",
"items" : {
"type" : "integer"
}
}
},
"additionalProperties" : true
}
},
"workflowGuide" : {
"title" : "选择接入流程",
"rules" : [ "优先使用与实际挑战匹配的原生验证码产品,不默认使用通用 GRID。先确认产品及版本并读取模型和指引;目标允许时选 HTTP_SUBMIT,否则在浏览器支持回填原生结果时选 BROWSER_RESULT。页面出现图片网格不代表产品就是 GRID。取得真实参数;缺少参数时报告阻塞,不能猜测。", "按目标集成使用原生结果:回填规定的 Token 响应字段或回调;产品返回挑战标识与证明或答案字段时,按契约成组替换或提交。保持目标会话及绑定条件,不混用新旧挑战字段,不仅替换图片,也不假设识别服务能生成任意可移植的验证码与答案。", "GRID 仅作为备选:没有可用的匹配原生产品或接入方式,或经排查确认原生方案不适用于当前挑战时,才考虑使用。先检查参数、会话绑定及有效期;HTTP 403、超时或参数错误本身不能作为切换依据。仍须取得真实的当前网格图片、原始题目及浏览器交互能力;条件不足时停止并报告阻塞。", "GRID 的取图、识别排队与处理、轮询及浏览器点击会增加端到端耗时;动态换图和多轮挑战还会增加操作。耗时可能超过目标挑战的有效期,不宜作为时效敏感流程的默认方案,不保证固定识别时长或目标接受结果。临近识别时再取图,应用前再次检查新鲜度;挑战过期或图片变化后丢弃旧答案,不复用过期答案或自动创建新付费任务。", "使用目标网站发出的挑战及接入参数。识别服务不提供可任意转移的验证码与答案;替换控件或图片不会替换服务端挑战。", "MCP 同一次创建重试须复用 requestId 和完全相同的参数。挑战变化属于新任务,需新 requestId 并再次计费。按 nextPollAfterSeconds 查询,不要用创建任务代替轮询。REST 创建请求体没有 requestId 字段。", "示例使用占位值,不是可直接运行的挑战。已说明结果字段不代表目标验证已通过,也不代表完成了实时可用性测试。不要提交未支持的字段。", "SUCCEEDED 仅表示已取得识别结果;还需分别确认目标网站接受验证、目标业务操作成功。识别服务无法观察这两个结果。", "hCaptcha 使用已启用的原生 HCAPTCHA,再读取参数模型;当前目录中不存在时报告未开放。不要因为看到复选框或图片网格就替换成 RECAPTCHA_V2、IMPERVA、CUSTOM 或 GRID;付费前核对原生契约是否覆盖目标所需上下文。" ],
"workflows" : [ {
"id" : "HTTP_SUBMIT",
"title" : "纯 HTTP 提交",
"precondition" : "目标业务及验证提交能通过 HTTP 完成,且能保持必要会话条件。有识别 API 不代表整个网站支持纯 HTTP 操作。",
"steps" : "获取目标挑战与参数 → 创建并查询对应识别任务 → 随目标请求提交结果 → 检查验证及业务结果。"
}, {
"id" : "BROWSER_RESULT",
"title" : "浏览器应用识别结果",
"precondition" : "浏览器工具能读取当前接入参数,并按目标集成方式使用该产品结果。浏览器执行能力与识别服务能力需要分别判断。",
"steps" : "读取当前原生产品参数 → 识别 → 回填规定的 Token 字段或回调,或按契约成组替换或提交匹配的挑战标识与证明或答案 → 正常提交 → 检查目标验证及业务结果。仅替换图片不等于完成接入。"
}, {
"id" : "BROWSER_INTERACTION",
"title" : "浏览器图片交互",
"precondition" : "当前挑战符合所选图片产品,浏览器工具可以取得正确图片,并执行所需点击、旋转或拖动。",
"steps" : "取得当前挑战及原始题目 → 识别 → 将答案映射到当前图片 → 执行交互 → 检查换图或下一轮挑战 → 确认目标结果。"
} ],
"completionStages" : [ "SOLVER_SUCCEEDED", "CHALLENGE_ACCEPTED", "BUSINESS_COMPLETED" ],
"stageNote" : "SUCCEEDED 仅表示已取得识别结果;还需分别确认目标网站接受验证、目标业务操作成功。识别服务无法观察这两个结果。",
"failures" : [ {
"code" : "INVALID_INPUT",
"nextAction" : "READ_PRODUCT_SCHEMA",
"description" : "补齐或修正参数;不要原样重试错误参数或切换 GRID。"
}, {
"code" : "TRANSPORT_OR_WAF",
"nextAction" : "INSPECT_REQUEST_CHAIN",
"description" : "检查 HTTP、网络及 WAF 响应。403 不是识别结果;不确定是否送达时,用相同 requestId 和参数重试。"
}, {
"code" : "TASK_EXPIRED",
"nextAction" : "RECAPTURE_CHALLENGE",
"description" : "检查当前挑战及有效期,确认仍有需要后再创建新付费任务。"
}, {
"code" : "PROVIDER_INPUT_INVALID",
"nextAction" : "READ_PRODUCT_SCHEMA",
"description" : "上游拒绝参数,检查产品选择、当前参数及题目。"
}, {
"code" : "PROVIDER_UNSOLVABLE",
"nextAction" : "INSPECT_CHALLENGE",
"description" : "先检查图片质量、题目及挑战是否仍有效,再决定是否付费重试。"
}, {
"code" : "PROVIDER_UNAVAILABLE",
"nextAction" : "RETRY_LATER",
"description" : "服务可用性问题,不要仅因此更换验证码产品。"
}, {
"code" : "TASK_FAILED",
"nextAction" : "INSPECT_CHALLENGE",
"description" : "暂无明确公开原因。报告任务 ID 并检查上下文;不能宣称目标拒绝或推断产品不支持。"
}, {
"code" : "TARGET_REJECTED",
"nextAction" : "CHECK_BINDING_AND_EXPIRY",
"description" : "由调用方观察,不能从识别状态推断。检查目标响应、挑战关联及有效期。"
}, {
"code" : "BROWSER_APPLICATION_UNSUPPORTED",
"nextAction" : "CHANGE_EXECUTION_ENVIRONMENT",
"description" : "浏览器无法使用结果,应报告执行能力限制,不能判定识别产品不可用。"
} ],
"labels" : {
"result" : "结果及使用方法",
"requirements" : "前提条件",
"sources" : "参数来源",
"workflow" : "有条件支持的流程",
"unknown" : "接入契约尚未明确",
"failure" : "失败处理",
"stages" : "识别成功 → 目标验证通过 → 业务完成",
"field" : "字段",
"failureCode" : "失败编码",
"failureObject" : "仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。",
"action" : "下一步"
}
}
}
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 必填,来自产品目录的准确产品编码,区分大小写。无需请求体;API Key 仅可放在请求头,用于未传 Accept-Language 时读取用户语言。 |
| 字段 | 类型 | 说明 |
|---|---|---|
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.schema | object | 只校验 adapter 的 JSON Schema,包含必填、条件分支、类型及取值限制。 |
data.example | object | 最小参数占位示例;必须替换为当前挑战的真实内容。 |
data.integration | object | 当前产品的输入来源、适用流程、结果 Schema、使用说明及限制。 |
data.workflowGuide | object | 通用接入流程、完成层次及失败处理。 |
HTTP 业务响应包含 code、msg 和 data;code 为 0 表示成功。WebSocket 使用独立的消息结构。
消息及接入说明按 Accept-Language、请求头对应用户语言、en-US 的顺序选择。参数名、枚举、Schema 原始描述及示例值不随语言变化。支持 required、oneOf 等约束,不能只校验必填字段。
业务响应需检查 code:0 成功,-1101 缺少编码,-1100 编码无效,-1008 产品不存在或已停用。错误时 data 为 null。DOCUMENTATION_REQUIRED 表示应先补齐文档,不要自动创建付费任务。
完整接入文档02 / CREATE TASK
/api/validator/create.cgi
按 productCode 选择产品,adapter 填写该产品的专属字段。
{
"productCode": "RECAPTCHA_V2", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"websiteKey": "YOUR_WEBSITEKEY", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"pageAction": "YOUR_PAGEACTION", // 取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。
"apiDomain": "YOUR_APIDOMAIN", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"isEnterprise": false, // RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。
"minScore": 0.3, // 根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。
"isInvisible": false, // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"cookies": "challenge_cookie=CURRENT_VALUE", // v2/v2 Enterprise 可选的当前挑战 Cookie 请求头字符串,格式为 key=value; key2=value2,取自对应目标上下文;不需要时省略。v3 不公开此字段。
"proxyType": "http", // v2/v2 Enterprise 可选代理协议:http、socks4 或 socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略保留无代理模式。当前 v3 没有已确认的代理任务。
"proxyAddress": "YOUR_PROXY_HOST", // 可达的代理主机名或 IP,不含协议、端口及认证信息。目标要求 IP 绑定时,识别端与目标浏览器必须使用相同的实际出口;仅给浏览器设置代理并不足够。
"proxyPort": 8080, // 代理 TCP 端口,1 至 65535 的整数;仅在提供代理参数时必填。
"proxyLogin": "YOUR_PROXYLOGIN", // 调用方已配置代理的可选认证用户名,不要编造凭据。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一个已配置代理的可选认证密码。
"recaptchaDataSValue": "CURRENT_DATA_S_VALUE" // 普通 reCAPTCHA v2 当前控件的可选新鲜 data-s 值,须来自同一挑战并原样保留;pageAction 不能代替它。Enterprise v2 使用 enterprisePayload.s。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"uuid": null, // 创建响应中的业务 UUID,未设置时为 null。
"productCode": "RECAPTCHA_V2", // 产品编码,必须与 adapter 参数匹配。
"state": "CREATED" // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
}
}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.websiteKey | string | 是 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.pageAction | string | 否 | 取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。 |
adapter.apiDomain | string | 否 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.isEnterprise | boolean | 否 | RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。 |
adapter.minScore | number | 否 | 根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。 |
adapter.userAgent | string | 否 | 读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。 |
adapter.isInvisible | boolean | 否 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.cookies | string | 否 | v2/v2 Enterprise 可选的当前挑战 Cookie 请求头字符串,格式为 key=value; key2=value2,取自对应目标上下文;不需要时省略。v3 不公开此字段。 |
adapter.proxyType | string | 否 | v2/v2 Enterprise 可选代理协议:http、socks4 或 socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略保留无代理模式。当前 v3 没有已确认的代理任务。 |
adapter.proxyAddress | string | 否 | 可达的代理主机名或 IP,不含协议、端口及认证信息。目标要求 IP 绑定时,识别端与目标浏览器必须使用相同的实际出口;仅给浏览器设置代理并不足够。 |
adapter.proxyPort | integer | 否 | 代理 TCP 端口,1 至 65535 的整数;仅在提供代理参数时必填。 |
adapter.proxyLogin | string | 否 | 调用方已配置代理的可选认证用户名,不要编造凭据。 |
adapter.proxyPassword | string | 否 | 同一个已配置代理的可选认证密码。 |
adapter.recaptchaDataSValue | string | 否 | 普通 reCAPTCHA v2 当前控件的可选新鲜 data-s 值,须来自同一挑战并原样保留;pageAction 不能代替它。Enterprise v2 使用 enterprisePayload.s。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.uuid | string | null | 创建响应中的业务 UUID,未设置时为 null。 |
将 YOUR_API_HOST 替换为部署服务地址。
03 / QUERY RESULT
/api/validator/query.cgi
使用 taskId 查询任务;WebSocket 断线或遗漏推送时,也可以通过此接口获取最终结果。
{
"taskId": "11111111-1111-4111-8111-111111111111" // 创建任务返回的任务 ID。
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "RECAPTCHA_V2", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交到目标网站的验证令牌。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
taskId | string | 是 | 创建任务返回的任务 ID。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交到目标网站的验证令牌。 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
成功时从 data.solution 读取第三方答案。
wss://app.nexcaptcha.net/socket/task.cgi客户端或 MCP 宿主支持 WebSocket 时优先使用:先建立连接并等待 socket.ready,再创建任务。收到 task.updated 立即处理;仅在无法连接、断线或遗漏消息时使用 REST query.cgi 或 MCP get_task 兜底。
使用同一服务端口连接 /socket/task.cgi。连接后发送心跳;任务状态变更和最终结果将自动推送。
WebSocket 的 API Key 只能放在握手请求头中,不能放入 URL 参数。独立客户端使用 apiKey 请求头;浏览器使用登录 Cookie,只有 API Key 时通过带请求头的 REST 查询获取结果,因为原生 WebSocket 无法设置自定义头。推送只属于当前鉴权用户。
HTTPS 环境使用 WSS。断线后退避重连;连接会回放最近 20 条终态任务,不提供完整事件历史。遗漏的 taskId 用 query.cgi 或 get_task 恢复。凭证缺失、无效、撤销或过期时以 4003 关闭;空闲或不可靠连接以 4500 关闭。
API、MCP 等入口创建的任务,每次状态变更提交成功后都会推送给该鉴权账户。成功时读取 result,失败时读取 failure.code 和 nextAction。每 20 秒发送心跳并确认 heartbeat.ack;超过 35 秒无心跳后,由每 10 秒运行的检查断开连接。断线后退避重连,不要因断线重建收费任务。按 taskId 幂等处理,已收到终态后忽略更旧或回放的消息。
容器按用户 ID 绑定每个实例上的当前单条连接;新连接以 4009 替换旧连接。同账户的多个接入者应由宿主共享订阅,被替换端应停止自动重连。实例最多 256 条连接;收到 1013 时请退避重试。慢客户端积压超过 64 条消息或 256 KiB UTF-8 数据时,以 4500 断开,遗漏的 taskId 请通过查询恢复。单条消息上限为 256 KiB。
apiKey: YOUR_API_KEY socket.ready → create.cgi → task.updated task.taskId = create.cgi data.taskId
{"type":"socket.ready","replayLimit":20,"heartbeatSeconds":20}
{"type":"heartbeat"}
{"type":"heartbeat.ack"}
{
"type": "task.updated",
"userId": 123,
"replay": false,
"task": {
"taskId": "11111111-1111-4111-8111-111111111111",
"uuid": "11111111-1111-4111-8111-111111111111",
"state": "SUCCEEDED",
"updatedAt": "2026-10-04 12:00:00"
},
"product": {
"productCode": "TEXT",
"name": "Text Captcha",
"description": "Text question"
},
"result": {
"text": "4"
}
}
下载示例:浏览器 JavaScript、Python、Java 21
JavaScript · Python · Java 21
04 / RESPONSES
HTTP 业务响应包含 code、msg 和 data;code 为 0 表示成功。WebSocket 使用独立的消息结构。
终态包括 SUCCEEDED、FAILED 和 EXPIRED。
{"code":-1317,"msg":"API Key invalid","data":null}
-1317 |
API Key 无效。 |
-1100 / -1101 |
请求参数错误或缺失。 |
-1005 / -1008 |
任务状态或任务操作错误。 |
-1401 |
余额不足,请充值后再创建任务 |
-1400 / -1001 |
系统或创建任务错误。 |
05 / PRODUCT REFERENCE
以下字段来自当前产品适配器和第三方 task type。
/api/product/list.cgiNORMAL_CAPTCHA
{
"productCode": "NORMAL_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"phrase": false, // 是否要求完整短语。
"caseSensitive": false, // 是否区分大小写。
"numeric": false, // 是否限制为数字。
"math": false, // 是否按数学题识别。
"minLength": 1, // 答案最小长度。
"maxLength": 1, // 答案最大长度。
"comment": "YOUR_COMMENT", // 提交给人工识别者的说明。
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // 图片识别说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "NORMAL_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"text": "EXAMPLE_ANSWER" // 识别出的文字或文本答案。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.phrase | boolean | 否 | 是否要求完整短语。 |
adapter.caseSensitive | boolean | 否 | 是否区分大小写。 |
adapter.numeric | boolean | 否 | 是否限制为数字。 |
adapter.math | boolean | 否 | 是否按数学题识别。 |
adapter.minLength | integer | 否 | 答案最小长度。 |
adapter.maxLength | integer | 否 | 答案最大长度。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
adapter.imgInstructions | string | 否 | 图片识别说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 识别出的文字或文本答案。 |
RECAPTCHA_V2
{
"productCode": "RECAPTCHA_V2", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"websiteKey": "YOUR_WEBSITEKEY", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"pageAction": "YOUR_PAGEACTION", // 取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。
"apiDomain": "YOUR_APIDOMAIN", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"isEnterprise": false, // RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。
"minScore": 0.3, // 根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。
"isInvisible": false, // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"cookies": "challenge_cookie=CURRENT_VALUE", // v2/v2 Enterprise 可选的当前挑战 Cookie 请求头字符串,格式为 key=value; key2=value2,取自对应目标上下文;不需要时省略。v3 不公开此字段。
"proxyType": "http", // v2/v2 Enterprise 可选代理协议:http、socks4 或 socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略保留无代理模式。当前 v3 没有已确认的代理任务。
"proxyAddress": "YOUR_PROXY_HOST", // 可达的代理主机名或 IP,不含协议、端口及认证信息。目标要求 IP 绑定时,识别端与目标浏览器必须使用相同的实际出口;仅给浏览器设置代理并不足够。
"proxyPort": 8080, // 代理 TCP 端口,1 至 65535 的整数;仅在提供代理参数时必填。
"proxyLogin": "YOUR_PROXYLOGIN", // 调用方已配置代理的可选认证用户名,不要编造凭据。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一个已配置代理的可选认证密码。
"recaptchaDataSValue": "CURRENT_DATA_S_VALUE" // 普通 reCAPTCHA v2 当前控件的可选新鲜 data-s 值,须来自同一挑战并原样保留;pageAction 不能代替它。Enterprise v2 使用 enterprisePayload.s。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "RECAPTCHA_V2", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交到目标网站的验证令牌。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.websiteKey | string | 是 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.pageAction | string | 否 | 取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。 |
adapter.apiDomain | string | 否 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.isEnterprise | boolean | 否 | RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。 |
adapter.minScore | number | 否 | 根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。 |
adapter.userAgent | string | 否 | 读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。 |
adapter.isInvisible | boolean | 否 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.cookies | string | 否 | v2/v2 Enterprise 可选的当前挑战 Cookie 请求头字符串,格式为 key=value; key2=value2,取自对应目标上下文;不需要时省略。v3 不公开此字段。 |
adapter.proxyType | string | 否 | v2/v2 Enterprise 可选代理协议:http、socks4 或 socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略保留无代理模式。当前 v3 没有已确认的代理任务。 |
adapter.proxyAddress | string | 否 | 可达的代理主机名或 IP,不含协议、端口及认证信息。目标要求 IP 绑定时,识别端与目标浏览器必须使用相同的实际出口;仅给浏览器设置代理并不足够。 |
adapter.proxyPort | integer | 否 | 代理 TCP 端口,1 至 65535 的整数;仅在提供代理参数时必填。 |
adapter.proxyLogin | string | 否 | 调用方已配置代理的可选认证用户名,不要编造凭据。 |
adapter.proxyPassword | string | 否 | 同一个已配置代理的可选认证密码。 |
adapter.recaptchaDataSValue | string | 否 | 普通 reCAPTCHA v2 当前控件的可选新鲜 data-s 值,须来自同一挑战并原样保留;pageAction 不能代替它。Enterprise v2 使用 enterprisePayload.s。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交到目标网站的验证令牌。 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
RECAPTCHA_V3
{
"productCode": "RECAPTCHA_V3", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"websiteKey": "YOUR_WEBSITEKEY", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"pageAction": "YOUR_PAGEACTION", // 取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。
"apiDomain": "YOUR_APIDOMAIN", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"isEnterprise": false, // RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。
"minScore": 0.3, // 根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。
"userAgent": "YOUR_BROWSER_USER_AGENT" // 读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "RECAPTCHA_V3", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交到目标网站的验证令牌。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.websiteKey | string | 是 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.pageAction | string | 否 | 取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。 |
adapter.apiDomain | string | 否 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.isEnterprise | boolean | 否 | RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。 |
adapter.minScore | number | 是 | 根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。 |
adapter.userAgent | string | 否 | 读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交到目标网站的验证令牌。 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
RECAPTCHA_V2_ENTERPRISE
{
"productCode": "RECAPTCHA_V2_ENTERPRISE", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"websiteKey": "YOUR_WEBSITEKEY", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"pageAction": "YOUR_PAGEACTION", // 取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。
"apiDomain": "YOUR_APIDOMAIN", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"isEnterprise": false, // RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。
"minScore": 0.3, // 根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。
"isInvisible": false, // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"cookies": "challenge_cookie=CURRENT_VALUE", // v2/v2 Enterprise 可选的当前挑战 Cookie 请求头字符串,格式为 key=value; key2=value2,取自对应目标上下文;不需要时省略。v3 不公开此字段。
"proxyType": "http", // v2/v2 Enterprise 可选代理协议:http、socks4 或 socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略保留无代理模式。当前 v3 没有已确认的代理任务。
"proxyAddress": "YOUR_PROXY_HOST", // 可达的代理主机名或 IP,不含协议、端口及认证信息。目标要求 IP 绑定时,识别端与目标浏览器必须使用相同的实际出口;仅给浏览器设置代理并不足够。
"proxyPort": 8080, // 代理 TCP 端口,1 至 65535 的整数;仅在提供代理参数时必填。
"proxyLogin": "YOUR_PROXYLOGIN", // 调用方已配置代理的可选认证用户名,不要编造凭据。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一个已配置代理的可选认证密码。
"enterprisePayload": { // 当前 grecaptcha.enterprise.render 配置的可选附加 JSON 对象,存在 s 字符串时一并携带,保持与挑战匹配。Enterprise v2 不使用 recaptchaDataSValue;此字段不是已确认的 v3 参数。
"s": "CURRENT_ENTERPRISE_S_VALUE"
}
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "RECAPTCHA_V2_ENTERPRISE", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交到目标网站的验证令牌。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.websiteKey | string | 是 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.pageAction | string | 否 | 取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。 |
adapter.apiDomain | string | 否 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.isEnterprise | boolean | 否 | RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。 |
adapter.minScore | number | 否 | 根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。 |
adapter.userAgent | string | 否 | 读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。 |
adapter.isInvisible | boolean | 否 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.cookies | string | 否 | v2/v2 Enterprise 可选的当前挑战 Cookie 请求头字符串,格式为 key=value; key2=value2,取自对应目标上下文;不需要时省略。v3 不公开此字段。 |
adapter.proxyType | string | 否 | v2/v2 Enterprise 可选代理协议:http、socks4 或 socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略保留无代理模式。当前 v3 没有已确认的代理任务。 |
adapter.proxyAddress | string | 否 | 可达的代理主机名或 IP,不含协议、端口及认证信息。目标要求 IP 绑定时,识别端与目标浏览器必须使用相同的实际出口;仅给浏览器设置代理并不足够。 |
adapter.proxyPort | integer | 否 | 代理 TCP 端口,1 至 65535 的整数;仅在提供代理参数时必填。 |
adapter.proxyLogin | string | 否 | 调用方已配置代理的可选认证用户名,不要编造凭据。 |
adapter.proxyPassword | string | 否 | 同一个已配置代理的可选认证密码。 |
adapter.enterprisePayload | object | 否 | 当前 grecaptcha.enterprise.render 配置的可选附加 JSON 对象,存在 s 字符串时一并携带,保持与挑战匹配。Enterprise v2 不使用 recaptchaDataSValue;此字段不是已确认的 v3 参数。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交到目标网站的验证令牌。 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
RECAPTCHA_V3_ENTERPRISE
{
"productCode": "RECAPTCHA_V3_ENTERPRISE", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"websiteKey": "YOUR_WEBSITEKEY", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"pageAction": "YOUR_PAGEACTION", // 取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。
"apiDomain": "YOUR_APIDOMAIN", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"isEnterprise": true, // RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。
"minScore": 0.3, // 根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。
"userAgent": "YOUR_BROWSER_USER_AGENT" // 读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "RECAPTCHA_V3_ENTERPRISE", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交到目标网站的验证令牌。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.websiteKey | string | 是 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.pageAction | string | 否 | 取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。 |
adapter.apiDomain | string | 否 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.isEnterprise | boolean | 否 | RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。 |
adapter.minScore | number | 是 | 根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。 |
adapter.userAgent | string | 否 | 读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交到目标网站的验证令牌。 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
RECAPTCHA_ENTERPRISE
{
"productCode": "RECAPTCHA_ENTERPRISE", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"websiteKey": "YOUR_WEBSITEKEY", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"pageAction": "YOUR_PAGEACTION", // 取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。
"apiDomain": "YOUR_APIDOMAIN", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"isEnterprise": false, // RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。
"minScore": 0.3, // 根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。
"appId": "YOUR_APPID", // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"isInvisible": false, // 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
"cookies": "challenge_cookie=CURRENT_VALUE", // v2/v2 Enterprise 可选的当前挑战 Cookie 请求头字符串,格式为 key=value; key2=value2,取自对应目标上下文;不需要时省略。v3 不公开此字段。
"proxyType": "http", // v2/v2 Enterprise 可选代理协议:http、socks4 或 socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略保留无代理模式。当前 v3 没有已确认的代理任务。
"proxyAddress": "YOUR_PROXY_HOST", // 可达的代理主机名或 IP,不含协议、端口及认证信息。目标要求 IP 绑定时,识别端与目标浏览器必须使用相同的实际出口;仅给浏览器设置代理并不足够。
"proxyPort": 8080, // 代理 TCP 端口,1 至 65535 的整数;仅在提供代理参数时必填。
"proxyLogin": "YOUR_PROXYLOGIN", // 调用方已配置代理的可选认证用户名,不要编造凭据。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一个已配置代理的可选认证密码。
"enterprisePayload": { // 当前 grecaptcha.enterprise.render 配置的可选附加 JSON 对象,存在 s 字符串时一并携带,保持与挑战匹配。Enterprise v2 不使用 recaptchaDataSValue;此字段不是已确认的 v3 参数。
"s": "CURRENT_ENTERPRISE_S_VALUE"
}
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "RECAPTCHA_ENTERPRISE", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交到目标网站的验证令牌。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.websiteKey | string | 是 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.pageAction | string | 否 | 取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。 |
adapter.apiDomain | string | 否 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.isEnterprise | boolean | 否 | RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。 |
adapter.minScore | number | 否 | 根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。 |
adapter.userAgent | string | 否 | 读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。 |
adapter.appId | string | 否 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.isInvisible | boolean | 否 | 从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。 |
adapter.cookies | string | 否 | v2/v2 Enterprise 可选的当前挑战 Cookie 请求头字符串,格式为 key=value; key2=value2,取自对应目标上下文;不需要时省略。v3 不公开此字段。 |
adapter.proxyType | string | 否 | v2/v2 Enterprise 可选代理协议:http、socks4 或 socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略保留无代理模式。当前 v3 没有已确认的代理任务。 |
adapter.proxyAddress | string | 否 | 可达的代理主机名或 IP,不含协议、端口及认证信息。目标要求 IP 绑定时,识别端与目标浏览器必须使用相同的实际出口;仅给浏览器设置代理并不足够。 |
adapter.proxyPort | integer | 否 | 代理 TCP 端口,1 至 65535 的整数;仅在提供代理参数时必填。 |
adapter.proxyLogin | string | 否 | 调用方已配置代理的可选认证用户名,不要编造凭据。 |
adapter.proxyPassword | string | 否 | 同一个已配置代理的可选认证密码。 |
adapter.enterprisePayload | object | 否 | 当前 grecaptcha.enterprise.render 配置的可选附加 JSON 对象,存在 s 字符串时一并携带,保持与挑战匹配。Enterprise v2 不使用 recaptchaDataSValue;此字段不是已确认的 v3 参数。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交到目标网站的验证令牌。 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
CLOUDFLARE_TURNSTILE
{
"productCode": "CLOUDFLARE_TURNSTILE", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 实际承载该控件的完整页面 URL,取自同一目标会话。
"websiteKey": "YOUR_WEBSITEKEY", // 该 Turnstile 控件的实际 sitekey,不能使用其他站点的 Key。
"action": "YOUR_ACTION", // 实际 render action;整页挑战提供 pagedata 时必填。独立控件也可以仅设置 action,不需要因此补 pagedata。
"data": "CURRENT_CDATA", // 实际 render cData,向上游使用 data;兼容别名 cData,两者同时提供且不同会在计费前拒绝。
"pagedata": "CURRENT_CHL_PAGE_DATA", // Cloudflare 整页挑战当前 render 的 chlPageData,向上游使用 pagedata;提供时 action、data 也必须齐全。不是所有独立控件都必填。
"cData": "CURRENT_CDATA", // data 的兼容别名,建议使用 data;已提供 data 时省略此别名。
"chlPageData": "CURRENT_CHL_PAGE_DATA", // pagedata 的兼容别名,建议使用 pagedata;已提供 pagedata 时省略此别名。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 可选,实际浏览器 User-Agent。返回的 solution.userAgent 必须保留;不能假设上游一定返回输入的 UA。
"proxyType": "http", // 可选代理协议:http、socks4、socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略时沿用无代理模式。
"proxyAddress": "YOUR_PROXY_HOST", // 代理主机名或 IP,不含协议、端口及认证信息;按目标会话要求使用对应出口。
"proxyPort": 8080, // 代理 TCP 端口,1 至 65535 的整数,仅使用代理时必填。
"proxyLogin": "YOUR_PROXYLOGIN", // 仅该代理需要认证时提供的用户名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 仅该代理需要认证时提供的密码。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "CLOUDFLARE_TURNSTILE", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN", // 提交到目标网站的验证令牌。
"userAgent": "EXAMPLE_USERAGENT" // 获取答案时使用的浏览器 User-Agent。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 实际承载该控件的完整页面 URL,取自同一目标会话。 |
adapter.websiteKey | string | 是 | 该 Turnstile 控件的实际 sitekey,不能使用其他站点的 Key。 |
adapter.action | string | 否 | 实际 render action;整页挑战提供 pagedata 时必填。独立控件也可以仅设置 action,不需要因此补 pagedata。 |
adapter.data | string | 否 | 实际 render cData,向上游使用 data;兼容别名 cData,两者同时提供且不同会在计费前拒绝。 |
adapter.pagedata | string | 否 | Cloudflare 整页挑战当前 render 的 chlPageData,向上游使用 pagedata;提供时 action、data 也必须齐全。不是所有独立控件都必填。 |
adapter.cData | string | 否 | data 的兼容别名,建议使用 data;已提供 data 时省略此别名。 |
adapter.chlPageData | string | 否 | pagedata 的兼容别名,建议使用 pagedata;已提供 pagedata 时省略此别名。 |
adapter.userAgent | string | 否 | 可选,实际浏览器 User-Agent。返回的 solution.userAgent 必须保留;不能假设上游一定返回输入的 UA。 |
adapter.proxyType | string | 否 | 可选代理协议:http、socks4、socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略时沿用无代理模式。 |
adapter.proxyAddress | string | 否 | 代理主机名或 IP,不含协议、端口及认证信息;按目标会话要求使用对应出口。 |
adapter.proxyPort | integer | 否 | 代理 TCP 端口,1 至 65535 的整数,仅使用代理时必填。 |
adapter.proxyLogin | string | 否 | 仅该代理需要认证时提供的用户名。 |
adapter.proxyPassword | string | 否 | 仅该代理需要认证时提供的密码。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
data.solution.userAgent | string | 获取答案时使用的浏览器 User-Agent。 |
ARKOSE
{
"productCode": "ARKOSE", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websitePublicKey": "YOUR_WEBSITEPUBLICKEY", // Arkose 公钥。
"funcaptchaApiJSSubdomain": "YOUR_FUNCAPTCHAAPIJSSUBDOMAIN", // FunCaptcha API JS 子域名。
"data": "YOUR_DATA", // 第三方验证附加 data。
"userAgent": "YOUR_BROWSER_USER_AGENT" // 目标浏览器 User-Agent。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "ARKOSE", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websitePublicKey | string | 是 | Arkose 公钥。 |
adapter.funcaptchaApiJSSubdomain | string | 否 | FunCaptcha API JS 子域名。 |
adapter.data | string | 否 | 第三方验证附加 data。 |
adapter.userAgent | string | 否 | 目标浏览器 User-Agent。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
GEETEST
{
"productCode": "GEETEST", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"gt": "YOUR_GT", // 目标 initGeetest v3 集成签发的 gt,不是 v4 的 captcha_id。不要使用演示值或其他集成标识。
"challenge": "YOUR_CHALLENGE" // 每次新任务从目标初始化接口取得尚未使用的 v3 challenge;页面已加载过的值对识别服务不再有效。保持对应目标会话,不复用,也不按长度推断新鲜性。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "GEETEST", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"challenge": "EXAMPLE_CHALLENGE", // 产品返回的答案字段,按目标网站的验证协议使用。
"validate": "EXAMPLE_VALIDATE", // 产品返回的答案字段,按目标网站的验证协议使用。
"seccode": "EXAMPLE_SECCODE" // 产品返回的答案字段,按目标网站的验证协议使用。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.gt | string | 是 | 目标 initGeetest v3 集成签发的 gt,不是 v4 的 captcha_id。不要使用演示值或其他集成标识。 |
adapter.challenge | string | 是 | 每次新任务从目标初始化接口取得尚未使用的 v3 challenge;页面已加载过的值对识别服务不再有效。保持对应目标会话,不复用,也不按长度推断新鲜性。 |
adapter.apiServerSubdomain | string | 否 | 可选的 v3 GeeTest API 主机名,取自目标配置,例如 api-na.geetest.com。未配置或不确定时省略,不要提交 YOUR_* 占位值;现有公开字段名保持不变。 |
adapter.userAgent | string | 否 | 目标浏览器 User-Agent。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.challenge | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.validate | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.seccode | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
GEETEST_V4
{
"productCode": "GEETEST_V4", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"captchaId": "YOUR_CAPTCHAID" // 使用目标 initGeetest4 配置中的 captcha_id,不是 v3 集成的 gt 或 challenge。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "GEETEST_V4", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"captcha_id": "EXAMPLE_CAPTCHA_ID", // 产品返回的答案字段,按目标网站的验证协议使用。
"lot_number": "EXAMPLE_LOT_NUMBER", // 产品返回的答案字段,按目标网站的验证协议使用。
"pass_token": "EXAMPLE_PASS_TOKEN", // 提交到目标网站的验证令牌。
"gen_time": "EXAMPLE_GEN_TIME", // 产品返回的答案字段,按目标网站的验证协议使用。
"captcha_output": "EXAMPLE_CAPTCHA_OUTPUT" // 产品返回的答案字段,按目标网站的验证协议使用。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.captchaId | string | 是 | 使用目标 initGeetest4 配置中的 captcha_id,不是 v3 集成的 gt 或 challenge。 |
adapter.userAgent | string | 否 | 目标浏览器 User-Agent。 |
adapter.riskType | string | 否 | 可选的目标实际 GeeTest v4 risk_type,与 captcha_id 一起发送到上游 initParameters;不改变产品版本。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.captcha_id | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.lot_number | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.pass_token | string | 提交到目标网站的验证令牌。 |
data.solution.gen_time | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.captcha_output | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
CAPY_PUZZLE
{
"productCode": "CAPY_PUZZLE", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目标站点的 CAPTCHA site key。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 目标浏览器 User-Agent。
"proxyType": "http", // 代理类型,例如 http、socks4 或 socks5。 使用自有代理时必填;不传代理则使用上游代理池。
"proxyAddress": "YOUR_PROXY_HOST", // 代理主机或 IP 地址。 使用自有代理时必填;不传代理则使用上游代理池。
"proxyPort": 8080, // 代理端口。 使用自有代理时必填;不传代理则使用上游代理池。
"proxyLogin": "YOUR_PROXYLOGIN", // 代理用户名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 代理密码。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "CAPY_PUZZLE", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"captchakey": "EXAMPLE_CAPTCHAKEY", // 提交到目标网站的验证令牌。
"challengekey": "EXAMPLE_CHALLENGEKEY", // 产品返回的答案字段,按目标网站的验证协议使用。
"answer": "EXAMPLE_ANSWER", // 识别出的文字或文本答案。
"respKey": "EXAMPLE_RESPKEY" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 是 | 目标站点的 CAPTCHA site key。 |
adapter.userAgent | string | 否 | 目标浏览器 User-Agent。 |
adapter.proxyType | string | 否 | 代理类型,例如 http、socks4 或 socks5。 使用自有代理时必填;不传代理则使用上游代理池。 |
adapter.proxyAddress | string | 否 | 代理主机或 IP 地址。 使用自有代理时必填;不传代理则使用上游代理池。 |
adapter.proxyPort | integer | 否 | 代理端口。 使用自有代理时必填;不传代理则使用上游代理池。 |
adapter.proxyLogin | string | 否 | 代理用户名。 |
adapter.proxyPassword | string | 否 | 代理密码。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.captchakey | string | 提交到目标网站的验证令牌。 |
data.solution.challengekey | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.answer | string | 识别出的文字或文本答案。 |
data.solution.respKey | string | 提交到目标网站的验证令牌。 |
KEYCAPTCHA
{
"productCode": "KEYCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"s_s_c_user_id": 184015, // KeyCAPTCHA 用户 ID。
"s_s_c_session_id": "YOUR_S_S_C_SESSION_ID", // KeyCAPTCHA 会话 ID。
"s_s_c_web_server_sign": "YOUR_S_S_C_WEB_SERVER_SIGN", // KeyCAPTCHA 服务签名。
"s_s_c_web_server_sign2": "YOUR_S_S_C_WEB_SERVER_SIGN2" // KeyCAPTCHA 服务签名 2。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "KEYCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.s_s_c_user_id | integer | 是 | KeyCAPTCHA 用户 ID。 |
adapter.s_s_c_session_id | string | 是 | KeyCAPTCHA 会话 ID。 |
adapter.s_s_c_web_server_sign | string | 是 | KeyCAPTCHA 服务签名。 |
adapter.s_s_c_web_server_sign2 | string | 是 | KeyCAPTCHA 服务签名 2。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
LEMIN
{
"productCode": "LEMIN", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"captchaId": "YOUR_CAPTCHAID", // 验证码 ID。
"divId": "lemin-cropped-captcha", // 验证码父容器元素 ID。
"leminApiServerSubdomain": "api.leminnow.com" // 加载验证码的 API 域名。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "LEMIN", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"answer": "EXAMPLE_ANSWER", // 识别出的文字或文本答案。
"challenge_id": "EXAMPLE_CHALLENGE_ID" // 产品返回的答案字段,按目标网站的验证协议使用。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.captchaId | string | 是 | 验证码 ID。 |
adapter.divId | string | 是 | 验证码父容器元素 ID。 |
adapter.leminApiServerSubdomain | string | 否 | 加载验证码的 API 域名。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.answer | string | 识别出的文字或文本答案。 |
data.solution.challenge_id | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
AMAZON
{
"productCode": "AMAZON", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目标站点的 CAPTCHA site key。
"iv": "YOUR_IV", // Amazon 验证 IV。
"context": "YOUR_CONTEXT", // Amazon 验证上下文。
"challengeScript": "https://aws-waf.example.com/challengeScript.js", // 取自当前 AWS WAF 挑战的实际 challengeScript URL,不使用示例地址。
"captchaScript": "https://aws-waf.example.com/captchaScript.js", // 取自当前 AWS WAF 挑战的实际 captchaScript URL,不使用示例地址。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目标会话的实际浏览器 User-Agent。
"proxyType": "http", // 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可达代理的主机名或 IP,不含协议、凭据或端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 可选代理认证用户名,须与密码成组提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可选密码,与 proxyLogin 成组提供。
"proxyPort": 8080 // 代理 TCP 端口,1 至 65535 的整数。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "AMAZON", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"captcha_voucher": "EXAMPLE_CAPTCHA_VOUCHER", // 产品返回的答案字段,按目标网站的验证协议使用。
"existing_token": "EXAMPLE_EXISTING_TOKEN" // 产品返回的答案字段,按目标网站的验证协议使用。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 条件必填 | 目标站点的 CAPTCHA site key。 |
adapter.iv | string | 条件必填 | Amazon 验证 IV。 |
adapter.context | string | 条件必填 | Amazon 验证上下文。 |
adapter.challengeScript | string | 否 | 取自当前 AWS WAF 挑战的实际 challengeScript URL,不使用示例地址。 |
adapter.captchaScript | string | 否 | 取自当前 AWS WAF 挑战的实际 captchaScript URL,不使用示例地址。 |
adapter.jsapiScript | string | 条件必填 | 取自当前 AWS WAF 挑战的实际 jsapiScript URL,不使用示例地址。 |
adapter.userAgent | string | 否 | 取自同一目标会话的实际浏览器 User-Agent。 |
adapter.proxyType | string | 否 | 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。 |
adapter.proxyAddress | string | 否 | 可达代理的主机名或 IP,不含协议、凭据或端口。 |
adapter.proxyLogin | string | 否 | 可选代理认证用户名,须与密码成组提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可选密码,与 proxyLogin 成组提供。 |
adapter.proxyPort | integer | 否 | 代理 TCP 端口,1 至 65535 的整数。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.captcha_voucher | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.existing_token | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
IMAGE_CAPTCHA
{
"productCode": "IMAGE_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"phrase": false, // 是否要求完整短语。
"caseSensitive": false, // 是否区分大小写。
"numeric": false, // 是否限制为数字。
"math": false, // 是否按数学题识别。
"minLength": 1, // 答案最小长度。
"maxLength": 1, // 答案最大长度。
"comment": "YOUR_COMMENT", // 提交给人工识别者的说明。
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // 图片识别说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "IMAGE_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"text": "EXAMPLE_ANSWER" // 识别出的文字或文本答案。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.phrase | boolean | 否 | 是否要求完整短语。 |
adapter.caseSensitive | boolean | 否 | 是否区分大小写。 |
adapter.numeric | boolean | 否 | 是否限制为数字。 |
adapter.math | boolean | 否 | 是否按数学题识别。 |
adapter.minLength | integer | 否 | 答案最小长度。 |
adapter.maxLength | integer | 否 | 答案最大长度。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
adapter.imgInstructions | string | 否 | 图片识别说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 识别出的文字或文本答案。 |
TEXT
{
"productCode": "TEXT", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "TEXT", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"text": "EXAMPLE_ANSWER" // 识别出的文字或文本答案。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.comment | string | 是 | 提交给人工识别者的说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 识别出的文字或文本答案。 |
AUDIO
{
"productCode": "AUDIO", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"lang": "en" // 提交 MP3 的语音语言:en、fr、de、el、pt、ru;省略保持既有 en 默认值。这是素材语言,不是 API 响应语言或翻译选项。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "AUDIO", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TRANSCRIPT" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.lang | string | 否 | 提交 MP3 的语音语言:en、fr、de、el、pt、ru;省略保持既有 en 默认值。这是素材语言,不是 API 响应语言或翻译选项。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
ROTATE
{
"productCode": "ROTATE", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "ROTATE", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"rotate": 180 // 旋转角度。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.rotate | integer | 旋转角度。 |
GRID
{
"productCode": "GRID", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"comment": "Select all images containing stairs.", // 提交给人工识别者的说明。
"rows": 3, // 提交的当前网格实际行数。
"columns": 3, // 提交的当前网格实际列数。
"imgType": "recaptcha", // 可选上游计算机视觉模式:recaptcha 或 funcaptcha;不能把通用或自定义图片冒称为这些产品,必须提供英文原始题目和原始图像文件。
"previousId": "123456789", // 可选的同一持续挑战上游任务 ID,仅已知时提供;不是 Nex Captcha 平台 UUID,未取得上游 ID 时省略。不能关联其他或过期挑战。
"minClicks": 1, // 可选 minClicks 边界,指定行列时不能超过 rows*columns,minClicks 不能大于 maxClicks。
"maxClicks": 9, // 可选 maxClicks 边界,指定行列时不能超过 rows*columns,minClicks 不能大于 maxClicks。
"canNoAnswer": 0 // 0 或 1,仅实际题目允许没有匹配图片时设为 1,不用于掩盖识别失败。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "GRID", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"click": [ // 需要点击的网格序号列表。
1, // 产品返回的答案字段,按目标网站的验证协议使用。
5, // 产品返回的答案字段,按目标网站的验证协议使用。
9 // 产品返回的答案字段,按目标网站的验证协议使用。
]
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.comment | string | 条件必填 | 提交给人工识别者的说明。 |
adapter.rows | integer | 否 | 提交的当前网格实际行数。 |
adapter.columns | integer | 否 | 提交的当前网格实际列数。 |
adapter.imgInstructions | string | 条件必填 | 可选的 Base64 题目图片,最多 100 kB;comment 与 imgInstructions 至少一个,使用 imgType 时必须提供英文原始题目和原始图像文件。 |
adapter.imgType | string | 否 | 可选上游计算机视觉模式:recaptcha 或 funcaptcha;不能把通用或自定义图片冒称为这些产品,必须提供英文原始题目和原始图像文件。 |
adapter.previousId | string | 否 | 可选的同一持续挑战上游任务 ID,仅已知时提供;不是 Nex Captcha 平台 UUID,未取得上游 ID 时省略。不能关联其他或过期挑战。 |
adapter.minClicks | integer | 否 | 可选 minClicks 边界,指定行列时不能超过 rows*columns,minClicks 不能大于 maxClicks。 |
adapter.maxClicks | integer | 否 | 可选 maxClicks 边界,指定行列时不能超过 rows*columns,minClicks 不能大于 maxClicks。 |
adapter.canNoAnswer | integer | 否 | 0 或 1,仅实际题目允许没有匹配图片时设为 1,不用于掩盖识别失败。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.click | array | 需要点击的网格序号列表。 |
data.solution.click[] | integer | 产品返回的答案字段,按目标网站的验证协议使用。 |
CLICK
{
"productCode": "CLICK", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "CLICK", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"coordinates": [ // 点击坐标列表,原点为图片左上角。
{ // 产品返回的答案字段,按目标网站的验证协议使用。
"x": 358, // 横坐标,单位为像素。
"y": 268 // 纵坐标,单位为像素。
}
]
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.coordinates | array | 点击坐标列表,原点为图片左上角。 |
data.solution.coordinates[] | object | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.coordinates[].x | integer | 横坐标,单位为像素。 |
data.solution.coordinates[].y | integer | 纵坐标,单位为像素。 |
COORDINATES
{
"productCode": "COORDINATES", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "COORDINATES", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"coordinates": [ // 点击坐标列表,原点为图片左上角。
{ // 产品返回的答案字段,按目标网站的验证协议使用。
"x": 358, // 横坐标,单位为像素。
"y": 268 // 纵坐标,单位为像素。
}
]
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.coordinates | array | 点击坐标列表,原点为图片左上角。 |
data.solution.coordinates[] | object | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.coordinates[].x | integer | 横坐标,单位为像素。 |
data.solution.coordinates[].y | integer | 纵坐标,单位为像素。 |
DRAW_AROUND
{
"productCode": "DRAW_AROUND", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "DRAW_AROUND", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"canvas": [ // 绘制轨迹的坐标列表。
[ // 产品返回的答案字段,按目标网站的验证协议使用。
{ // 产品返回的答案字段,按目标网站的验证协议使用。
"x": 20, // 横坐标,单位为像素。
"y": 30 // 纵坐标,单位为像素。
},
{ // 产品返回的答案字段,按目标网站的验证协议使用。
"x": 40, // 横坐标,单位为像素。
"y": 60 // 纵坐标,单位为像素。
}
]
]
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.canvas | array | 绘制轨迹的坐标列表。 |
data.solution.canvas[] | array | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.canvas[][] | object | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.canvas[][].x | integer | 横坐标,单位为像素。 |
data.solution.canvas[][].y | integer | 纵坐标,单位为像素。 |
DRAG_AND_DROP
{
"productCode": "DRAG_AND_DROP", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"comment": "YOUR_COMMENT", // 提交给人工识别者的说明。
"background": "BASE64_IMAGE", // 背景图 Base64。
"images": [ // 待拖图片 Base64,返回坐标与本数组顺序一致。
"BASE64_IMAGE"
]
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "DRAG_AND_DROP", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"coordinates": [ // 点击坐标列表,原点为图片左上角。
{ // 产品返回的答案字段,按目标网站的验证协议使用。
"x": 100, // 横坐标,单位为像素。
"y": 80 // 纵坐标,单位为像素。
}
]
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
adapter.background | string | 是 | 背景图 Base64。 |
adapter.images | array | 是 | 待拖图片 Base64,返回坐标与本数组顺序一致。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.coordinates | array | 点击坐标列表,原点为图片左上角。 |
data.solution.coordinates[] | object | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.coordinates[].x | integer | 横坐标,单位为像素。 |
data.solution.coordinates[].y | integer | 纵坐标,单位为像素。 |
BOUNDING_BOX
{
"productCode": "BOUNDING_BOX", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "BOUNDING_BOX", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"bounding_boxes": [ // 目标对象的边界框列表。
{ // 产品返回的答案字段,按目标网站的验证协议使用。
"xMin": 310, // 横坐标,单位为像素。
"xMax": 385, // 横坐标,单位为像素。
"yMin": 231, // 纵坐标,单位为像素。
"yMax": 308 // 纵坐标,单位为像素。
}
]
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.bounding_boxes | array | 目标对象的边界框列表。 |
data.solution.bounding_boxes[] | object | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.bounding_boxes[].xMin | integer | 横坐标,单位为像素。 |
data.solution.bounding_boxes[].xMax | integer | 横坐标,单位为像素。 |
data.solution.bounding_boxes[].yMin | integer | 纵坐标,单位为像素。 |
data.solution.bounding_boxes[].yMax | integer | 纵坐标,单位为像素。 |
SLIDER_CAPTCHA
{
"productCode": "SLIDER_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 当前自定义滑块挑战的 JPEG、PNG 或 GIF Base64;上游也接受 data URI。保持原图像素。上游限制:解码后 600 kB,任一边最多 1000 像素。这不是 GeeTest、DataDome 等厂商的 Token 识别契约。
"comment": "YOUR_COMMENT" // 可选的人工识别说明,准确描述应点击的位置,例如匹配目标槽的中心。省略时图片本身须含充分题意。自有测试应提供明确英文说明及已知目标点。返回坐标相对于此图片。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "SLIDER_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"coordinates": [ // 点击坐标列表,原点为图片左上角。
{ // 产品返回的答案字段,按目标网站的验证协议使用。
"x": 240, // 横坐标,单位为像素。
"y": 100 // 纵坐标,单位为像素。
}
]
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
答案字段文档待补充,当前示例仅展示响应外层结构。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 当前自定义滑块挑战的 JPEG、PNG 或 GIF Base64;上游也接受 data URI。保持原图像素。上游限制:解码后 600 kB,任一边最多 1000 像素。这不是 GeeTest、DataDome 等厂商的 Token 识别契约。 |
adapter.comment | string | 否 | 可选的人工识别说明,准确描述应点击的位置,例如匹配目标槽的中心。省略时图片本身须含充分题意。自有测试应提供明确英文说明及已知目标点。返回坐标相对于此图片。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.coordinates | array | 点击坐标列表,原点为图片左上角。 |
data.solution.coordinates[] | object | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.coordinates[].x | integer | 横坐标,单位为像素。 |
data.solution.coordinates[].y | integer | 纵坐标,单位为像素。 |
CYBERSIARA
{
"productCode": "CYBERSIARA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 目标浏览器 User-Agent。
"SlideMasterUrlId": "YOUR_SLIDEMASTERURLID" // 页面 InitCaptcha 的 MasterUrlId,来自 GetCyberSiara 请求。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "CYBERSIARA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.userAgent | string | 是 | 目标浏览器 User-Agent。 |
adapter.SlideMasterUrlId | string | 是 | 页面 InitCaptcha 的 MasterUrlId,来自 GetCyberSiara 请求。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
MTCAPTCHA
{
"productCode": "MTCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY" // 目标站点的 CAPTCHA site key。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "MTCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 是 | 目标站点的 CAPTCHA site key。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
DATADOME
{
"productCode": "DATADOME", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"captchaUrl": "https://example.com/captcha", // DataDome 验证 iframe 的 URL。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 目标浏览器 User-Agent。
"proxyType": "http", // 代理类型,例如 http、socks4 或 socks5。
"proxyAddress": "YOUR_PROXY_HOST", // 代理主机或 IP 地址。
"proxyPort": 8080, // 代理端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 代理用户名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 代理密码。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "DATADOME", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"cookie": "EXAMPLE_COOKIE" // 目标域名对应的验证 Cookie。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.captchaUrl | string | 是 | DataDome 验证 iframe 的 URL。 |
adapter.userAgent | string | 是 | 目标浏览器 User-Agent。 |
adapter.proxyType | string | 是 | 代理类型,例如 http、socks4 或 socks5。 |
adapter.proxyAddress | string | 是 | 代理主机或 IP 地址。 |
adapter.proxyPort | integer | 是 | 代理端口。 |
adapter.proxyLogin | string | 否 | 代理用户名。 |
adapter.proxyPassword | string | 否 | 代理密码。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.cookie | string | 目标域名对应的验证 Cookie。 |
FRIENDLY_CAPTCHA
{
"productCode": "FRIENDLY_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目标站点的 CAPTCHA site key。
"version": "YOUR_VERSION", // Friendly Captcha 版本。
"moduleScript": "YOUR_MODULESCRIPT", // Friendly Captcha module 脚本地址。
"nomoduleScript": "YOUR_NOMODULESCRIPT" // Friendly Captcha nomodule 脚本地址。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "FRIENDLY_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 是 | 目标站点的 CAPTCHA site key。 |
adapter.version | string | 否 | Friendly Captcha 版本。 |
adapter.moduleScript | string | 否 | Friendly Captcha module 脚本地址。 |
adapter.nomoduleScript | string | 否 | Friendly Captcha nomodule 脚本地址。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
CUTCAPTCHA
{
"productCode": "CUTCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 保留以兼容旧请求的历史字段,不向上游发送;不能代替当前说明的产品必需参数。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目标会话的实际浏览器 User-Agent。
"miseryKey": "CURRENT_MISERY_KEY", // 当前目标页面 CUTCAPTCHA_MISERY_KEY 的值。
"siteApiKey": "CURRENT_PUBLIC_SITE_API_KEY", // Cutcaptcha iframe 或脚本中的目标公开 data-apikey,向上游映射为 apiKey;这不是 Nex Captcha 鉴权 Key,平台 Key 仍只放请求头。
"proxyType": "http", // 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可达代理的主机名或 IP,不含协议、凭据或端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 可选代理认证用户名,须与密码成组提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可选密码,与 proxyLogin 成组提供。
"proxyPort": 8080 // 代理 TCP 端口,1 至 65535 的整数。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "CUTCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 否 | 保留以兼容旧请求的历史字段,不向上游发送;不能代替当前说明的产品必需参数。 |
adapter.userAgent | string | 否 | 取自同一目标会话的实际浏览器 User-Agent。 |
adapter.miseryKey | string | 是 | 当前目标页面 CUTCAPTCHA_MISERY_KEY 的值。 |
adapter.siteApiKey | string | 是 | Cutcaptcha iframe 或脚本中的目标公开 data-apikey,向上游映射为 apiKey;这不是 Nex Captcha 鉴权 Key,平台 Key 仍只放请求头。 |
adapter.proxyType | string | 否 | 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。 |
adapter.proxyAddress | string | 否 | 可达代理的主机名或 IP,不含协议、凭据或端口。 |
adapter.proxyLogin | string | 否 | 可选代理认证用户名,须与密码成组提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可选密码,与 proxyLogin 成组提供。 |
adapter.proxyPort | integer | 否 | 代理 TCP 端口,1 至 65535 的整数。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
ATBCAPTCHA
{
"productCode": "ATBCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 保留以兼容旧请求的历史字段,不向上游发送;不能代替当前说明的产品必需参数。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目标会话的实际浏览器 User-Agent。
"appId": "CURRENT_APP_ID", // 目标 atbCAPTCHA 初始化中的实际 appId。
"apiServer": "https://captcha-api.example.com", // 同一目标控件配置中的实际 apiServer;API v2 接入需显式提供。
"proxyType": "http", // 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可达代理的主机名或 IP,不含协议、凭据或端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 可选代理认证用户名,须与密码成组提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可选密码,与 proxyLogin 成组提供。
"proxyPort": 8080 // 代理 TCP 端口,1 至 65535 的整数。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "ATBCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 否 | 保留以兼容旧请求的历史字段,不向上游发送;不能代替当前说明的产品必需参数。 |
adapter.userAgent | string | 否 | 取自同一目标会话的实际浏览器 User-Agent。 |
adapter.appId | string | 是 | 目标 atbCAPTCHA 初始化中的实际 appId。 |
adapter.apiServer | string | 是 | 同一目标控件配置中的实际 apiServer;API v2 接入需显式提供。 |
adapter.proxyType | string | 否 | 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。 |
adapter.proxyAddress | string | 否 | 可达代理的主机名或 IP,不含协议、凭据或端口。 |
adapter.proxyLogin | string | 否 | 可选代理认证用户名,须与密码成组提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可选密码,与 proxyLogin 成组提供。 |
adapter.proxyPort | integer | 否 | 代理 TCP 端口,1 至 65535 的整数。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
TENCENT
{
"productCode": "TENCENT", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"appId": "YOUR_APPID", // Enterprise 应用 ID。
"captchaScript": "YOUR_CAPTCHASCRIPT", // Tencent CAPTCHA 脚本 URL。
"proxyType": "http", // 代理类型,例如 http、socks4 或 socks5。
"proxyAddress": "YOUR_PROXY_HOST", // 代理主机或 IP 地址。
"proxyPort": 8080, // 代理端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 代理用户名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 代理密码。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "TENCENT", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"appid": "EXAMPLE_APPID", // 产品返回的答案字段,按目标网站的验证协议使用。
"ret": 0, // 产品返回的答案字段,按目标网站的验证协议使用。
"ticket": "EXAMPLE_TICKET", // 提交到目标网站的验证令牌。
"randstr": "EXAMPLE_RANDSTR" // 产品返回的答案字段,按目标网站的验证协议使用。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.appId | string | 是 | Enterprise 应用 ID。 |
adapter.captchaScript | string | 否 | Tencent CAPTCHA 脚本 URL。 |
adapter.proxyType | string | 否 | 代理类型,例如 http、socks4 或 socks5。 |
adapter.proxyAddress | string | 否 | 代理主机或 IP 地址。 |
adapter.proxyPort | integer | 否 | 代理端口。 |
adapter.proxyLogin | string | 否 | 代理用户名。 |
adapter.proxyPassword | string | 否 | 代理密码。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.appid | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.ret | integer | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.ticket | string | 提交到目标网站的验证令牌。 |
data.solution.randstr | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
PROSOPO
{
"productCode": "PROSOPO", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目标站点的 CAPTCHA site key。
"userAgent": "YOUR_BROWSER_USER_AGENT" // 目标浏览器 User-Agent。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "PROSOPO", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 是 | 目标站点的 CAPTCHA site key。 |
adapter.userAgent | string | 否 | 目标浏览器 User-Agent。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
CAPTCHAFOX
{
"productCode": "CAPTCHAFOX", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目标站点的 CAPTCHA site key。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目标会话的实际浏览器 User-Agent。
"proxyType": "http", // 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可达代理的主机名或 IP,不含协议、凭据或端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 可选代理认证用户名,须与密码成组提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可选密码,与 proxyLogin 成组提供。
"proxyPort": 8080, // 代理 TCP 端口,1 至 65535 的整数。
"apiServer": "https://cdn.captchafox.com/" // 可选,取自目标实际加载脚本的 SDK 资源前缀。普通 SDK 为 https://cdn.captchafox.com/,MAM SDK 为 https://s.uicdn.com/mampkg/@mamdev/core.frontend.libs.captchafox/。不是 api.captchafox.com 的 challenge/config HTTP API 域名;MAM 与普通 Token 不可混用。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "CAPTCHAFOX", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 是 | 目标站点的 CAPTCHA site key。 |
adapter.userAgent | string | 是 | 取自同一目标会话的实际浏览器 User-Agent。 |
adapter.proxyType | string | 是 | 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。 |
adapter.proxyAddress | string | 是 | 可达代理的主机名或 IP,不含协议、凭据或端口。 |
adapter.proxyLogin | string | 否 | 可选代理认证用户名,须与密码成组提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可选密码,与 proxyLogin 成组提供。 |
adapter.proxyPort | integer | 是 | 代理 TCP 端口,1 至 65535 的整数。 |
adapter.apiServer | string | 否 | 可选,取自目标实际加载脚本的 SDK 资源前缀。普通 SDK 为 https://cdn.captchafox.com/,MAM SDK 为 https://s.uicdn.com/mampkg/@mamdev/core.frontend.libs.captchafox/。不是 api.captchafox.com 的 challenge/config HTTP API 域名;MAM 与普通 Token 不可混用。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
VK_CAPTCHA
{
"productCode": "VK_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"image": "BASE64_IMAGE", // VK 旋转验证码图片的 Base64 内容。
"steps": [ // 来自同一次 VK captchaNotRobot.getContent 响应、与 image 配对的非负整数有序非空数组,不是最大旋转次数或角度。保持原序列。兼容包含 JSON 整数数组的旧字符串并转换为数组;单个 "3" 无效。
5,
19,
14,
0
],
"proxyLogin": "YOUR_PROXYLOGIN", // 需要代理认证时填写用户名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 需要代理认证时填写密码。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "VK_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"best_step": 2, // 完成验证所需的步骤或操作。
"solution": [ // 完成验证所需的步骤或操作。
5, // 产品返回的答案字段,按目标网站的验证协议使用。
19 // 产品返回的答案字段,按目标网站的验证协议使用。
],
"answer": "EXAMPLE_VK_FORMATTED_ANSWER", // 识别出的文字或文本答案。
"preview": "BASE64_PREVIEW" // 产品返回的答案字段,按目标网站的验证协议使用。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
答案字段文档待补充,当前示例仅展示响应外层结构。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.image | string | 条件必填 | VK 旋转验证码图片的 Base64 内容。 |
adapter.steps | string | 条件必填 | 来自同一次 VK captchaNotRobot.getContent 响应、与 image 配对的非负整数有序非空数组,不是最大旋转次数或角度。保持原序列。兼容包含 JSON 整数数组的旧字符串并转换为数组;单个 "3" 无效。 |
adapter.redirectUri | string | 条件必填 | 刚获取的 VK 令牌挑战跳转 URL;与 image + steps 图片模式二选一。 |
adapter.userAgent | string | 条件必填 | 获取挑战时浏览器使用的 User-Agent。 |
adapter.proxyType | string | 条件必填 | 获取挑战时使用的代理协议,例如 http。 |
adapter.proxyAddress | string | 条件必填 | 获取挑战时使用的代理主机或 IP 地址。 |
adapter.proxyPort | integer | 条件必填 | 获取挑战时使用的代理端口。 |
adapter.proxyLogin | string | 否 | 需要代理认证时填写用户名。 |
adapter.proxyPassword | string | 否 | 需要代理认证时填写密码。 |
任选以下一组字段,并填完整组内字段: image + steps / redirectUri + userAgent + proxyType + proxyAddress + proxyPort
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.best_step | integer | 完成验证所需的步骤或操作。 |
data.solution.solution | array | 完成验证所需的步骤或操作。 |
data.solution.solution[] | integer | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.answer | string | 识别出的文字或文本答案。 |
data.solution.preview | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
TEMU
{
"productCode": "TEMU", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"image": "BASE64_IMAGE", // 背景图片 Base64。
"parts": [ // 可移动图片片段 Base64,顺序对应响应坐标。
"BASE64_IMAGE"
]
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "TEMU", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"coordinates": [ // 点击坐标列表,原点为图片左上角。
{ // 产品返回的答案字段,按目标网站的验证协议使用。
"x": 20, // 横坐标,单位为像素。
"y": 30 // 纵坐标,单位为像素。
},
{ // 产品返回的答案字段,按目标网站的验证协议使用。
"x": 50, // 横坐标,单位为像素。
"y": 60 // 纵坐标,单位为像素。
},
{ // 产品返回的答案字段,按目标网站的验证协议使用。
"x": 80, // 横坐标,单位为像素。
"y": 90 // 纵坐标,单位为像素。
}
]
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.image | string | 是 | 背景图片 Base64。 |
adapter.parts | array | 是 | 可移动图片片段 Base64,顺序对应响应坐标。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.coordinates | array | 点击坐标列表,原点为图片左上角。 |
data.solution.coordinates[] | object | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.coordinates[].x | integer | 横坐标,单位为像素。 |
data.solution.coordinates[].y | integer | 纵坐标,单位为像素。 |
ALTCHA
{
"productCode": "ALTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"challengeURL": "https://example.com/altcha/challenge", // ALTCHA challenge URL;与 challengeJSON 二选一。
"proxyType": "http", // 代理类型,例如 http、socks4 或 socks5。 使用自有代理时必填;不传代理则使用上游代理池。
"proxyAddress": "YOUR_PROXY_HOST", // 代理主机或 IP 地址。 使用自有代理时必填;不传代理则使用上游代理池。
"proxyPort": 8080, // 代理端口。 使用自有代理时必填;不传代理则使用上游代理池。
"proxyLogin": "YOUR_PROXYLOGIN", // 代理用户名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 代理密码。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "ALTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.challengeURL | string | 条件必填 | ALTCHA challenge URL;与 challengeJSON 二选一。 |
adapter.challengeJSON | string | 条件必填 | ALTCHA challenge JSON;与 challengeURL 二选一。 |
adapter.proxyType | string | 否 | 代理类型,例如 http、socks4 或 socks5。 使用自有代理时必填;不传代理则使用上游代理池。 |
adapter.proxyAddress | string | 否 | 代理主机或 IP 地址。 使用自有代理时必填;不传代理则使用上游代理池。 |
adapter.proxyPort | integer | 否 | 代理端口。 使用自有代理时必填;不传代理则使用上游代理池。 |
adapter.proxyLogin | string | 否 | 代理用户名。 |
adapter.proxyPassword | string | 否 | 代理密码。 |
任选以下一组字段,并填完整组内字段: challengeURL / challengeJSON
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
YIDUN_NE_CAPTCHA
{
"productCode": "YIDUN_NE_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目标站点的 CAPTCHA site key。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目标会话的实际浏览器 User-Agent。
"yidunGetLib": "YOUR_YIDUNGETLIB", // 取自同一当前易盾初始化或网络上下文的实际 yidunGetLib,目标未使用时省略。
"yidunApiServerSubdomain": "YOUR_YIDUNAPISERVERSUBDOMAIN", // 取自同一当前易盾初始化或网络上下文的实际 yidunApiServerSubdomain,目标未使用时省略。
"challenge": "YOUR_CHALLENGE", // 取自同一当前易盾初始化或网络上下文的实际 challenge,目标未使用时省略。
"hcg": "YOUR_HCG", // 取自同一当前易盾初始化或网络上下文的实际 hcg,目标未使用时省略。
"hct": 1779358333191, // 同一目标请求中的 Enterprise 数字时间标识,不是字符串或本机时间。
"proxyType": "http", // 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可达代理的主机名或 IP,不含协议、凭据或端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 可选代理认证用户名,须与密码成组提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可选密码,与 proxyLogin 成组提供。
"proxyPort": 8080 // 代理 TCP 端口,1 至 65535 的整数。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "YIDUN_NE_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 是 | 目标站点的 CAPTCHA site key。 |
adapter.userAgent | string | 否 | 取自同一目标会话的实际浏览器 User-Agent。 |
adapter.yidunGetLib | string | 否 | 取自同一当前易盾初始化或网络上下文的实际 yidunGetLib,目标未使用时省略。 |
adapter.yidunApiServerSubdomain | string | 否 | 取自同一当前易盾初始化或网络上下文的实际 yidunApiServerSubdomain,目标未使用时省略。 |
adapter.challenge | string | 否 | 取自同一当前易盾初始化或网络上下文的实际 challenge,目标未使用时省略。 |
adapter.hcg | string | 否 | 取自同一当前易盾初始化或网络上下文的实际 hcg,目标未使用时省略。 |
adapter.hct | integer | 否 | 同一目标请求中的 Enterprise 数字时间标识,不是字符串或本机时间。 |
adapter.proxyType | string | 否 | 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。 |
adapter.proxyAddress | string | 否 | 可达代理的主机名或 IP,不含协议、凭据或端口。 |
adapter.proxyLogin | string | 否 | 可选代理认证用户名,须与密码成组提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可选密码,与 proxyLogin 成组提供。 |
adapter.proxyPort | integer | 否 | 代理 TCP 端口,1 至 65535 的整数。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
BINANCE
{
"productCode": "BINANCE", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "login", // 当前 Binance 原生验证码的 bizId、bizType 或 bizCode(例如 login),与同次 validateId 配对;不是 Google reCAPTCHA 或 hCaptcha 的公开 key。先读取预检实际 captchaType 再选产品,Binance 页面也可能展示其他提供商的验证码。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目标会话的实际浏览器 User-Agent。
"validateId": "CURRENT_VALIDATE_ID", // 同一当前目标预检或验证码响应中的新鲜 validateId、securityId 或 securityCheckResponseValidateId,不复用其他会话或过期值。
"proxyType": "http", // 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可达代理的主机名或 IP,不含协议、凭据或端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 可选代理认证用户名,须与密码成组提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可选密码,与 proxyLogin 成组提供。
"proxyPort": 8080 // 代理 TCP 端口,1 至 65535 的整数。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "BINANCE", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN", // 提交到目标网站的验证令牌。
"userAgent": "EXAMPLE_USERAGENT" // 获取答案时使用的浏览器 User-Agent。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 是 | 当前 Binance 原生验证码的 bizId、bizType 或 bizCode(例如 login),与同次 validateId 配对;不是 Google reCAPTCHA 或 hCaptcha 的公开 key。先读取预检实际 captchaType 再选产品,Binance 页面也可能展示其他提供商的验证码。 |
adapter.userAgent | string | 否 | 取自同一目标会话的实际浏览器 User-Agent。 |
adapter.validateId | string | 是 | 同一当前目标预检或验证码响应中的新鲜 validateId、securityId 或 securityCheckResponseValidateId,不复用其他会话或过期值。 |
adapter.proxyType | string | 否 | 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。 |
adapter.proxyAddress | string | 否 | 可达代理的主机名或 IP,不含协议、凭据或端口。 |
adapter.proxyLogin | string | 否 | 可选代理认证用户名,须与密码成组提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可选密码,与 proxyLogin 成组提供。 |
adapter.proxyPort | integer | 否 | 代理 TCP 端口,1 至 65535 的整数。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
data.solution.userAgent | string | 获取答案时使用的浏览器 User-Agent。 |
HUNT
{
"productCode": "HUNT", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 保留以兼容旧请求的历史字段,不向上游发送;不能代替当前说明的产品必需参数。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目标会话的实际浏览器 User-Agent。
"apiGetLib": "https://example.com/hd-api/external/apps/APP_ID/api.js", // 当前目标页面加载的 Hunt api.js 完整新鲜 URL。
"data": "CURRENT_META_TOKEN", // 带 X-HD 请求目标后返回的第二阶段 meta.token;第一阶段指纹任务省略此字段。
"proxyType": "http", // 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可达代理的主机名或 IP,不含协议、凭据或端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 可选代理认证用户名,须与密码成组提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可选密码,与 proxyLogin 成组提供。
"proxyPort": 8080 // 代理 TCP 端口,1 至 65535 的整数。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "HUNT", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 否 | 保留以兼容旧请求的历史字段,不向上游发送;不能代替当前说明的产品必需参数。 |
adapter.userAgent | string | 否 | 取自同一目标会话的实际浏览器 User-Agent。 |
adapter.apiGetLib | string | 是 | 当前目标页面加载的 Hunt api.js 完整新鲜 URL。 |
adapter.data | string | 否 | 带 X-HD 请求目标后返回的第二阶段 meta.token;第一阶段指纹任务省略此字段。 |
adapter.proxyType | string | 是 | 代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。 |
adapter.proxyAddress | string | 是 | 可达代理的主机名或 IP,不含协议、凭据或端口。 |
adapter.proxyLogin | string | 否 | 可选代理认证用户名,须与密码成组提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可选密码,与 proxyLogin 成组提供。 |
adapter.proxyPort | integer | 是 | 代理 TCP 端口,1 至 65535 的整数。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
TSPD
{
"productCode": "TSPD", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 目标浏览器 User-Agent。
"tspdCookie": "YOUR_FRESH_TSPD_COOKIE", // 刚获取的 TSPD 挑战 Cookie。
"htmlPageBase64": "YOUR_FRESH_CHALLENGE_HTML_BASE64", // 同一会话的挑战页面 HTML 的 Base64。
"proxyType": "http", // 同一会话使用的代理类型。
"proxyAddress": "YOUR_PROXY_HOST", // 代理地址。
"proxyPort": 8080, // 代理端口。
"proxyLogin": "YOUR_PROXY_LOGIN", // 代理用户名。
"proxyPassword": "YOUR_PROXY_PASSWORD" // 代理密码。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "TSPD", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"Domains": { // 按目标域名分组的验证结果。
"example.com": { // 产品返回的答案字段,按目标网站的验证协议使用。
"Cookies": { // 目标域名对应的验证 Cookie。
"TS386a400d029": "EXAMPLE_TS386A400D029", // 产品返回的答案字段,按目标网站的验证协议使用。
"TS386a400d078": "EXAMPLE_TS386A400D078", // 产品返回的答案字段,按目标网站的验证协议使用。
"tspd_101_DID": "EXAMPLE_TSPD_101_DID" // 产品返回的答案字段,按目标网站的验证协议使用。
}
}
}
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.userAgent | string | 否 | 目标浏览器 User-Agent。 |
adapter.tspdCookie | string | 是 | 刚获取的 TSPD 挑战 Cookie。 |
adapter.htmlPageBase64 | string | 是 | 同一会话的挑战页面 HTML 的 Base64。 |
adapter.proxyType | string | 是 | 同一会话使用的代理类型。 |
adapter.proxyAddress | string | 是 | 代理地址。 |
adapter.proxyPort | integer | 是 | 代理端口。 |
adapter.proxyLogin | string | 否 | 代理用户名。 |
adapter.proxyPassword | string | 否 | 代理密码。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.Domains | object | 按目标域名分组的验证结果。 |
data.solution.Domains.example.com | object | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.Domains.example.com.Cookies | object | 目标域名对应的验证 Cookie。 |
data.solution.Domains.example.com.Cookies.TS386a400d029 | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.Domains.example.com.Cookies.TS386a400d078 | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.Domains.example.com.Cookies.tspd_101_DID | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
BASILISK
{
"productCode": "BASILISK", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目标站点的 CAPTCHA site key。
"userAgent": "YOUR_BROWSER_USER_AGENT" // 目标浏览器 User-Agent。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "BASILISK", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"data": { // 产品返回的答案字段,按目标网站的验证协议使用。
"captcha_response": "EXAMPLE_CAPTCHA_RESPONSE" // 提交到目标网站的验证令牌。
},
"headers": { // 配合验证结果使用的 HTTP 请求头。
"User-Agent": "EXAMPLE_USER_AGENT" // 获取答案时使用的浏览器 User-Agent。
}
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 是 | 目标站点的 CAPTCHA site key。 |
adapter.userAgent | string | 否 | 目标浏览器 User-Agent。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.data | object | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.data.captcha_response | string | 提交到目标网站的验证令牌。 |
data.solution.headers | object | 配合验证结果使用的 HTTP 请求头。 |
data.solution.headers.User-Agent | string | 获取答案时使用的浏览器 User-Agent。 |
IMPERVA
{
"productCode": "IMPERVA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 实际受 Imperva 保护的完整页面 URL;脚本和 Cookie 必须来自该目标的同一会话。
"websiteKey": "YOUR_WEBSITEKEY", // 仅兼容历史客户端,Imperva 不使用此字段;site key 不能代替必需的脚本、Cookie 或代理。
"incapsulaScriptUrl": "/_Incapsula_Resource?SWJIYLWA=YOUR_CURRENT_SCRIPT_ID", // 从当前目标页面或网络请求取得新鲜的 Incapsula 脚本 URL 或路径,保留查询参数,例如 /_Incapsula_Resource?SWJIYLWA=...;不能使用 site key 代替。
"incapsulaCookies": "incap_ses_YOUR_ID=YOUR_SESSION_VALUE; visid_incap_YOUR_ID=YOUR_VISITOR_VALUE", // 同一次新鲜目标会话的 Cookie 请求头字符串,包含实际签发的 incap_ses_*、visid_incap_* 等值;原样保留,不要复制示例 Cookie。
"reese84UrlEndpoint": "YOUR_REESE84URLENDPOINT", // 可选,取自目标网络请求中的实际 Reese84 端点,通常以 ?d=目标主机 结尾;不存在时省略,不要猜测。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取得该会话时实际使用的 User-Agent;使用结果 Cookie 时保持一致,上游返回 User-Agent 时按其要求使用。
"proxyType": "http", // 上游必需的代理协议:http、socks4 或 socks5;当前 Imperva 接入没有文档化的免代理模式。
"proxyAddress": "YOUR_PROXY_HOST", // 可达的代理主机名或 IP,不包含端口或认证信息;采集挑战、处理挑战及后续访问使用同一代理出口。
"proxyPort": 8080, // 代理 TCP 端口,1 至 65535 的整数;不是 URL 或 host:port 字符串。
"proxyLogin": "YOUR_PROXYLOGIN", // 该代理需要认证时的用户名,不是 Nex Captcha API Key。
"proxyPassword": "YOUR_PROXYPASSWORD" // 该代理需要认证时的密码,原样保留认证值。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "IMPERVA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"domains": { // 按目标域名分组的验证结果。
"https://site-example.com": { // 产品返回的答案字段,按目标网站的验证协议使用。
"cookies": { // 目标域名对应的验证 Cookie。
"___utmvc": "EXAMPLE____UTMVC" // 产品返回的答案字段,按目标网站的验证协议使用。
}
}
}
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 实际受 Imperva 保护的完整页面 URL;脚本和 Cookie 必须来自该目标的同一会话。 |
adapter.websiteKey | string | 否 | 仅兼容历史客户端,Imperva 不使用此字段;site key 不能代替必需的脚本、Cookie 或代理。 |
adapter.incapsulaScriptUrl | string | 是 | 从当前目标页面或网络请求取得新鲜的 Incapsula 脚本 URL 或路径,保留查询参数,例如 /_Incapsula_Resource?SWJIYLWA=...;不能使用 site key 代替。 |
adapter.incapsulaCookies | string | 是 | 同一次新鲜目标会话的 Cookie 请求头字符串,包含实际签发的 incap_ses_*、visid_incap_* 等值;原样保留,不要复制示例 Cookie。 |
adapter.reese84UrlEndpoint | string | 否 | 可选,取自目标网络请求中的实际 Reese84 端点,通常以 ?d=目标主机 结尾;不存在时省略,不要猜测。 |
adapter.userAgent | string | 否 | 取得该会话时实际使用的 User-Agent;使用结果 Cookie 时保持一致,上游返回 User-Agent 时按其要求使用。 |
adapter.proxyType | string | 是 | 上游必需的代理协议:http、socks4 或 socks5;当前 Imperva 接入没有文档化的免代理模式。 |
adapter.proxyAddress | string | 是 | 可达的代理主机名或 IP,不包含端口或认证信息;采集挑战、处理挑战及后续访问使用同一代理出口。 |
adapter.proxyPort | integer | 是 | 代理 TCP 端口,1 至 65535 的整数;不是 URL 或 host:port 字符串。 |
adapter.proxyLogin | string | 否 | 该代理需要认证时的用户名,不是 Nex Captcha API Key。 |
adapter.proxyPassword | string | 否 | 该代理需要认证时的密码,原样保留认证值。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.domains | object | 按目标域名分组的验证结果。 |
data.solution.domains.https://site-example.com | object | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.domains.https://site-example.com.cookies | object | 目标域名对应的验证 Cookie。 |
data.solution.domains.https://site-example.com.cookies.___utmvc | string | 产品返回的答案字段,按目标网站的验证协议使用。 |
ALIBABA
{
"productCode": "ALIBABA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"sceneId": "YOUR_SCENEID", // 阿里验证码场景 ID。
"prefix": "YOUR_PREFIX", // 阿里验证码前缀。
"userId": "YOUR_USERID", // 第三方用户 ID。
"userUserId": "YOUR_USERUSERID", // 第三方 user user ID。
"verifyType": "YOUR_VERIFYTYPE", // 验证类型。
"region": "YOUR_REGION", // 服务区域。
"userCertifyId": "YOUR_USERCERTIFYID", // 用户认证 ID。
"apiGetLib": "YOUR_APIGETLIB", // 验证码脚本地址。
"userAgent": "YOUR_BROWSER_USER_AGENT" // 目标浏览器 User-Agent。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "ALIBABA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"data": { // 产品返回的答案字段,按目标网站的验证协议使用。
"tokens": "{\"sceneId\":\"EXAMPLE_SCENE_ID\",\"certifyId\":\"EXAMPLE_CERTIFY_ID\",\"deviceToken\":\"EXAMPLE_DEVICE_TOKEN\",\"data\":\"EXAMPLE_DATA\"}" // 提交到目标网站的验证令牌。
}
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.sceneId | string | 是 | 阿里验证码场景 ID。 |
adapter.prefix | string | 是 | 阿里验证码前缀。 |
adapter.userId | string | 否 | 第三方用户 ID。 |
adapter.userUserId | string | 否 | 第三方 user user ID。 |
adapter.verifyType | string | 否 | 验证类型。 |
adapter.region | string | 否 | 服务区域。 |
adapter.userCertifyId | string | 否 | 用户认证 ID。 |
adapter.apiGetLib | string | 否 | 验证码脚本地址。 |
adapter.userAgent | string | 否 | 目标浏览器 User-Agent。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.data | object | 产品返回的答案字段,按目标网站的验证协议使用。 |
data.solution.data.tokens | string | 提交到目标网站的验证令牌。 |
YANDEX_SMARTCAPTCHA
{
"productCode": "YANDEX_SMARTCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 目标网站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目标站点的 CAPTCHA site key。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 目标浏览器 User-Agent。
"cookies": "YOUR_COOKIES", // 目标页面需要携带的 Cookie。
"proxyType": "http", // 代理类型,例如 http、socks4 或 socks5。
"proxyAddress": "YOUR_PROXY_HOST", // 代理主机或 IP 地址。
"proxyPort": 8080, // 代理端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 代理用户名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 代理密码。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "YANDEX_SMARTCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"token": "EXAMPLE_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 目标网站完整 URL。 |
adapter.websiteKey | string | 是 | 目标站点的 CAPTCHA site key。 |
adapter.userAgent | string | 否 | 目标浏览器 User-Agent。 |
adapter.cookies | string | 否 | 目标页面需要携带的 Cookie。 |
adapter.proxyType | string | 否 | 代理类型,例如 http、socks4 或 socks5。 |
adapter.proxyAddress | string | 否 | 代理主机或 IP 地址。 |
adapter.proxyPort | integer | 否 | 代理端口。 |
adapter.proxyLogin | string | 否 | 代理用户名。 |
adapter.proxyPassword | string | 否 | 代理密码。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交到目标网站的验证令牌。 |
RUSSIAN_CAPTCHA
{
"productCode": "RUSSIAN_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"phrase": false, // 是否要求完整短语。
"caseSensitive": false, // 是否区分大小写。
"numeric": false, // 是否限制为数字。
"math": false, // 是否按数学题识别。
"minLength": 1, // 答案最小长度。
"maxLength": 1, // 答案最大长度。
"comment": "YOUR_COMMENT", // 提交给人工识别者的说明。
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // 图片识别说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "RUSSIAN_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"text": "EXAMPLE_ANSWER" // 识别出的文字或文本答案。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.phrase | boolean | 否 | 是否要求完整短语。 |
adapter.caseSensitive | boolean | 否 | 是否区分大小写。 |
adapter.numeric | boolean | 否 | 是否限制为数字。 |
adapter.math | boolean | 否 | 是否按数学题识别。 |
adapter.minLength | integer | 否 | 答案最小长度。 |
adapter.maxLength | integer | 否 | 答案最大长度。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
adapter.imgInstructions | string | 否 | 图片识别说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 识别出的文字或文本答案。 |
CHINESE_CAPTCHA
{
"productCode": "CHINESE_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"phrase": false, // 是否要求完整短语。
"caseSensitive": false, // 是否区分大小写。
"numeric": false, // 是否限制为数字。
"math": false, // 是否按数学题识别。
"minLength": 1, // 答案最小长度。
"maxLength": 1, // 答案最大长度。
"comment": "YOUR_COMMENT", // 提交给人工识别者的说明。
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // 图片识别说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "CHINESE_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"text": "EXAMPLE_ANSWER" // 识别出的文字或文本答案。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.phrase | boolean | 否 | 是否要求完整短语。 |
adapter.caseSensitive | boolean | 否 | 是否区分大小写。 |
adapter.numeric | boolean | 否 | 是否限制为数字。 |
adapter.math | boolean | 否 | 是否按数学题识别。 |
adapter.minLength | integer | 否 | 答案最小长度。 |
adapter.maxLength | integer | 否 | 答案最大长度。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
adapter.imgInstructions | string | 否 | 图片识别说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 识别出的文字或文本答案。 |
NUMBER_CAPTCHA
{
"productCode": "NUMBER_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"phrase": false, // 是否要求完整短语。
"caseSensitive": false, // 是否区分大小写。
"numeric": false, // 是否限制为数字。
"math": false, // 是否按数学题识别。
"minLength": 1, // 答案最小长度。
"maxLength": 1, // 答案最大长度。
"comment": "YOUR_COMMENT", // 提交给人工识别者的说明。
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // 图片识别说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "NUMBER_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"text": "EXAMPLE_ANSWER" // 识别出的文字或文本答案。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.phrase | boolean | 否 | 是否要求完整短语。 |
adapter.caseSensitive | boolean | 否 | 是否区分大小写。 |
adapter.numeric | boolean | 否 | 是否限制为数字。 |
adapter.math | boolean | 否 | 是否按数学题识别。 |
adapter.minLength | integer | 否 | 答案最小长度。 |
adapter.maxLength | integer | 否 | 答案最大长度。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
adapter.imgInstructions | string | 否 | 图片识别说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 识别出的文字或文本答案。 |
MATH_CAPTCHA
{
"productCode": "MATH_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"phrase": false, // 是否要求完整短语。
"caseSensitive": false, // 是否区分大小写。
"numeric": false, // 是否限制为数字。
"math": false, // 是否按数学题识别。
"minLength": 1, // 答案最小长度。
"maxLength": 1, // 答案最大长度。
"comment": "YOUR_COMMENT", // 提交给人工识别者的说明。
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // 图片识别说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "MATH_CAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"text": "EXAMPLE_ANSWER" // 识别出的文字或文本答案。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 是 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.phrase | boolean | 否 | 是否要求完整短语。 |
adapter.caseSensitive | boolean | 否 | 是否区分大小写。 |
adapter.numeric | boolean | 否 | 是否限制为数字。 |
adapter.math | boolean | 否 | 是否按数学题识别。 |
adapter.minLength | integer | 否 | 答案最小长度。 |
adapter.maxLength | integer | 否 | 答案最大长度。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
adapter.imgInstructions | string | 否 | 图片识别说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 识别出的文字或文本答案。 |
CUSTOM
{
"productCode": "CUSTOM", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
"comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "CUSTOM", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": {} // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
答案字段文档待补充,当前示例仅展示响应外层结构。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.body | string | 否 | 图片内容或任务主体;按产品要求传入 Base64 或文本。 |
adapter.comment | string | 否 | 提交给人工识别者的说明。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
HCAPTCHA
{
"productCode": "HCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"adapter": { // 产品专属参数对象。
"websiteURL": "https://example.com/register", // 当前 hCaptcha 控件所在目标页面的完整 URL,不是 hcaptcha.com 的 iframe URL。
"websiteKey": "YOUR_WEBSITEKEY" // 当前目标控件 data-sitekey 或 hcaptcha.render 配置中的公开 hCaptcha sitekey;不可使用 reCAPTCHA key 或账户 secret。
}
}
请求头: apiKey: YOUR_API_KEY
注释用于说明字段,复制后得到不含注释的标准 JSON。
{
"code": 0, // 业务返回码,0 表示成功,其他值表示错误。
"msg": "操作成功", // 结果说明,成功时可能为空。
"data": { // 响应数据,接口报错时可能为 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 创建任务返回的任务 ID。
"productCode": "HCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
"state": "SUCCEEDED", // 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 时的产品答案;处理中或失败时为空对象。
"gRecaptchaResponse": "EXAMPLE_HCAPTCHA_TOKEN" // 提交到目标网站的验证令牌。
}
}
}
创建任务返回任务 ID 和初始状态。下方为查询接口的完成结果,也可通过 WebSocket 接收答案。
答案字段文档待补充,当前示例仅展示响应外层结构。
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
productCode | string | 是 | 产品编码,必须与 adapter 参数匹配。 |
adapter | object | 是 | 产品专属参数对象。 |
adapter.websiteURL | string | 是 | 当前 hCaptcha 控件所在目标页面的完整 URL,不是 hcaptcha.com 的 iframe URL。 |
adapter.websiteKey | string | 是 | 当前目标控件 data-sitekey 或 hcaptcha.render 配置中的公开 hCaptcha sitekey;不可使用 reCAPTCHA key 或账户 secret。 |
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 业务返回码,0 表示成功,其他值表示错误。 |
msg | string | 结果说明,成功时可能为空。 |
data | object | null | 响应数据,接口报错时可能为 null。 |
data.taskId | string | 创建任务返回的任务 ID。 |
data.productCode | string | 产品编码,必须与 adapter 参数匹配。 |
data.state | string | 任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 时的产品答案;处理中或失败时为空对象。 |
data.failure | object | omitted | 仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。 |
data.failure.code | string | 失败编码 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交到目标网站的验证令牌。 |