Nex Captcha

API REFERENCE / V1

API文档

使用 API Key 创建验证任务,通过 WebSocket 接收结果,或使用查询接口补查。

51产品
5接口
JSON数据格式

选择接入流程

  • 优先使用与实际挑战匹配的原生验证码产品,不默认使用通用 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;付费前核对原生契约是否覆盖目标所需上下文。
HTTP_SUBMIT

纯 HTTP 提交

目标业务及验证提交能通过 HTTP 完成,且能保持必要会话条件。有识别 API 不代表整个网站支持纯 HTTP 操作。

获取目标挑战与参数 → 创建并查询对应识别任务 → 随目标请求提交结果 → 检查验证及业务结果。

BROWSER_RESULT

浏览器应用识别结果

浏览器工具能读取当前接入参数,并按目标集成方式使用该产品结果。浏览器执行能力与识别服务能力需要分别判断。

读取当前原生产品参数 → 识别 → 回填规定的 Token 字段或回调,或按契约成组替换或提交匹配的挑战标识与证明或答案 → 正常提交 → 检查目标验证及业务结果。仅替换图片不等于完成接入。

BROWSER_INTERACTION

浏览器图片交互

当前挑战符合所选图片产品,浏览器工具可以取得正确图片,并执行所需点击、旋转或拖动。

取得当前挑战及原始题目 → 识别 → 将答案映射到当前图片 → 执行交互 → 检查换图或下一轮挑战 → 确认目标结果。

识别成功 → 目标验证通过 → 业务完成

失败处理
失败编码下一步
INVALID_INPUTREAD_PRODUCT_SCHEMA

补齐或修正参数;不要原样重试错误参数或切换 GRID。

TRANSPORT_OR_WAFINSPECT_REQUEST_CHAIN

检查 HTTP、网络及 WAF 响应。403 不是识别结果;不确定是否送达时,用相同 requestId 和参数重试。

TASK_EXPIREDRECAPTURE_CHALLENGE

检查当前挑战及有效期,确认仍有需要后再创建新付费任务。

PROVIDER_INPUT_INVALIDREAD_PRODUCT_SCHEMA

上游拒绝参数,检查产品选择、当前参数及题目。

PROVIDER_UNSOLVABLEINSPECT_CHALLENGE

先检查图片质量、题目及挑战是否仍有效,再决定是否付费重试。

PROVIDER_UNAVAILABLERETRY_LATER

服务可用性问题,不要仅因此更换验证码产品。

TASK_FAILEDINSPECT_CHALLENGE

暂无明确公开原因。报告任务 ID 并检查上下文;不能宣称目标拒绝或推断产品不支持。

TARGET_REJECTEDCHECK_BINDING_AND_EXPIRY

由调用方观察,不能从识别状态推断。检查目标响应、挑战关联及有效期。

BROWSER_APPLICATION_UNSUPPORTEDCHANGE_EXECUTION_ENVIRONMENT

浏览器无法使用结果,应报告执行能力限制,不能判定识别产品不可用。

01 / AUTHENTICATION

API Key

创建和查询任务时,将 API Key 统一放在 HTTP apiKey 请求头中;JSON 请求体只包含业务参数。

请求头类型必填说明
apiKeystring是创建、查询任务必填;公开产品目录无需鉴权。不要放入 JSON 请求体或 URL。
Content-Typestring是application/json
Accept-Languagestring否zh-CN、zh-TW 或 en-US,支持 q 权重;未传时使用请求头 API Key 对应用户的配置语言。
HTTP
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

产品参数模型

GET/api/product/schema.cgi?productCode=GRID

免费公开接口,与 MCP get_product_schema 共用定义。先查询启用产品目录,再按产品编码获取参数模型、示例、结果契约和接入流程。查询不会创建任务或扣款。

请求示例

HTTP
GET /api/product/schema.cgi?productCode=GRID
Accept-Language: zh-CN

响应示例

JSON
{
  "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" : "下一步"
      }
    }
  }
}
完整响应示例(JSON)

请求参数说明

字段类型必填说明
productCodestring是必填,来自产品目录的准确产品编码,区分大小写。无需请求体;API Key 仅可放在请求头,用于未传 Accept-Language 时读取用户语言。

响应参数说明

字段类型说明
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.schemaobject只校验 adapter 的 JSON Schema,包含必填、条件分支、类型及取值限制。
data.exampleobject最小参数占位示例;必须替换为当前挑战的真实内容。
data.integrationobject当前产品的输入来源、适用流程、结果 Schema、使用说明及限制。
data.workflowGuideobject通用接入流程、完成层次及失败处理。

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

创建任务

POST/api/validator/create.cgi

按 productCode 选择产品,adapter 填写该产品的专属字段。

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/create.cgi · JSONC
{
  "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。
  }
}

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.websiteKeystring是从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.pageActionstring否取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。
adapter.apiDomainstring否从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.isEnterpriseboolean否RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。
adapter.minScorenumber否根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。
adapter.userAgentstring否读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。
adapter.isInvisibleboolean否从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.cookiesstring否v2/v2 Enterprise 可选的当前挑战 Cookie 请求头字符串,格式为 key=value; key2=value2,取自对应目标上下文;不需要时省略。v3 不公开此字段。
adapter.proxyTypestring否v2/v2 Enterprise 可选代理协议:http、socks4 或 socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略保留无代理模式。当前 v3 没有已确认的代理任务。
adapter.proxyAddressstring否可达的代理主机名或 IP,不含协议、端口及认证信息。目标要求 IP 绑定时,识别端与目标浏览器必须使用相同的实际出口;仅给浏览器设置代理并不足够。
adapter.proxyPortinteger否代理 TCP 端口,1 至 65535 的整数;仅在提供代理参数时必填。
adapter.proxyLoginstring否调用方已配置代理的可选认证用户名,不要编造凭据。
adapter.proxyPasswordstring否同一个已配置代理的可选认证密码。
adapter.recaptchaDataSValuestring否普通 reCAPTCHA v2 当前控件的可选新鲜 data-s 值,须来自同一挑战并原样保留;pageAction 不能代替它。Enterprise v2 使用 enterprisePayload.s。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.uuidstring | null创建响应中的业务 UUID,未设置时为 null。

将 YOUR_API_HOST 替换为部署服务地址。

03 / QUERY RESULT

查询结果

POST/api/validator/query.cgi

使用 taskId 查询任务;WebSocket 断线或遗漏推送时,也可以通过此接口获取最终结果。

请求示例

POST /api/validator/query.cgi · JSONC
{
  "taskId": "11111111-1111-4111-8111-111111111111" // 创建任务返回的任务 ID。
}

请求头: apiKey: YOUR_API_KEY

注释用于说明字段,复制后得到不含注释的标准 JSON。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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" // 提交到目标网站的验证令牌。
    }
  }
}

请求参数说明

字段类型必填说明
taskIdstring是创建任务返回的任务 ID。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.gRecaptchaResponsestring提交到目标网站的验证令牌。
data.solution.tokenstring提交到目标网站的验证令牌。

成功时从 data.solution 读取第三方答案。

WebSocket 结果推送

WSwss://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 使用独立的消息结构。

CREATED → SUBMITTING → PROCESSING → SUCCEEDED

终态包括 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。

GET/api/product/list.cgi

NORMAL_CAPTCHA

Normal Captcha

已启用

超时 144 s · 第三方 task type ImageToTextTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.phraseboolean否是否要求完整短语。
adapter.caseSensitiveboolean否是否区分大小写。
adapter.numericboolean否是否限制为数字。
adapter.mathboolean否是否按数学题识别。
adapter.minLengthinteger否答案最小长度。
adapter.maxLengthinteger否答案最大长度。
adapter.commentstring否提交给人工识别者的说明。
adapter.imgInstructionsstring否图片识别说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.textstring识别出的文字或文本答案。

RECAPTCHA_V2

reCAPTCHA v2

已启用

超时 720 s · 第三方 task type RecaptchaV2TaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.websiteKeystring是从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.pageActionstring否取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。
adapter.apiDomainstring否从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.isEnterpriseboolean否RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。
adapter.minScorenumber否根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。
adapter.userAgentstring否读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。
adapter.isInvisibleboolean否从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.cookiesstring否v2/v2 Enterprise 可选的当前挑战 Cookie 请求头字符串,格式为 key=value; key2=value2,取自对应目标上下文;不需要时省略。v3 不公开此字段。
adapter.proxyTypestring否v2/v2 Enterprise 可选代理协议:http、socks4 或 socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略保留无代理模式。当前 v3 没有已确认的代理任务。
adapter.proxyAddressstring否可达的代理主机名或 IP,不含协议、端口及认证信息。目标要求 IP 绑定时,识别端与目标浏览器必须使用相同的实际出口;仅给浏览器设置代理并不足够。
adapter.proxyPortinteger否代理 TCP 端口,1 至 65535 的整数;仅在提供代理参数时必填。
adapter.proxyLoginstring否调用方已配置代理的可选认证用户名,不要编造凭据。
adapter.proxyPasswordstring否同一个已配置代理的可选认证密码。
adapter.recaptchaDataSValuestring否普通 reCAPTCHA v2 当前控件的可选新鲜 data-s 值,须来自同一挑战并原样保留;pageAction 不能代替它。Enterprise v2 使用 enterprisePayload.s。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.gRecaptchaResponsestring提交到目标网站的验证令牌。
data.solution.tokenstring提交到目标网站的验证令牌。

RECAPTCHA_V3

reCAPTCHA v3

已启用

超时 720 s · 第三方 task type RecaptchaV3TaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.websiteKeystring是从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.pageActionstring否取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。
adapter.apiDomainstring否从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.isEnterpriseboolean否RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。
adapter.minScorenumber是根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。
adapter.userAgentstring否读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.gRecaptchaResponsestring提交到目标网站的验证令牌。
data.solution.tokenstring提交到目标网站的验证令牌。

RECAPTCHA_V2_ENTERPRISE

reCAPTCHA v2 Enterprise

已启用

超时 720 s · 第三方 task type RecaptchaV2EnterpriseTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.websiteKeystring是从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.pageActionstring否取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。
adapter.apiDomainstring否从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.isEnterpriseboolean否RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。
adapter.minScorenumber否根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。
adapter.userAgentstring否读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。
adapter.isInvisibleboolean否从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.cookiesstring否v2/v2 Enterprise 可选的当前挑战 Cookie 请求头字符串,格式为 key=value; key2=value2,取自对应目标上下文;不需要时省略。v3 不公开此字段。
adapter.proxyTypestring否v2/v2 Enterprise 可选代理协议:http、socks4 或 socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略保留无代理模式。当前 v3 没有已确认的代理任务。
adapter.proxyAddressstring否可达的代理主机名或 IP,不含协议、端口及认证信息。目标要求 IP 绑定时,识别端与目标浏览器必须使用相同的实际出口;仅给浏览器设置代理并不足够。
adapter.proxyPortinteger否代理 TCP 端口,1 至 65535 的整数;仅在提供代理参数时必填。
adapter.proxyLoginstring否调用方已配置代理的可选认证用户名,不要编造凭据。
adapter.proxyPasswordstring否同一个已配置代理的可选认证密码。
adapter.enterprisePayloadobject否当前 grecaptcha.enterprise.render 配置的可选附加 JSON 对象,存在 s 字符串时一并携带,保持与挑战匹配。Enterprise v2 不使用 recaptchaDataSValue;此字段不是已确认的 v3 参数。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.gRecaptchaResponsestring提交到目标网站的验证令牌。
data.solution.tokenstring提交到目标网站的验证令牌。

RECAPTCHA_V3_ENTERPRISE

reCAPTCHA v3 Enterprise

已启用

超时 720 s · 第三方 task type RecaptchaV3TaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.websiteKeystring是从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.pageActionstring否取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。
adapter.apiDomainstring否从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.isEnterpriseboolean否RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。
adapter.minScorenumber是根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。
adapter.userAgentstring否读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.gRecaptchaResponsestring提交到目标网站的验证令牌。
data.solution.tokenstring提交到目标网站的验证令牌。

RECAPTCHA_ENTERPRISE

reCAPTCHA Enterprise

已启用

超时 720 s · 第三方 task type RecaptchaV2EnterpriseTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.websiteKeystring是从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.pageActionstring否取自目标 execute 配置的实际 v3 动作。v2 为历史兼容保留此字段,但它不能替代 data-s 或 enterprisePayload.s,也不能用于选择产品版本。
adapter.apiDomainstring否从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.isEnterpriseboolean否RECAPTCHA_V3_ENTERPRISE 上游标记始终为 true,旧请求传 false 也不会降级;RECAPTCHA_V3 保持原有选填标记行为。Enterprise 控件应选明确的 v2 Enterprise 产品,此标记不能补足会话参数。
adapter.minScorenumber否根据实际题目及产品字段含义设置。这些是识别选项,不能随意猜测来修复失败请求。
adapter.userAgentstring否读取取得当前挑战时实际使用的 User-Agent;产品要求一致时保持不变。
adapter.appIdstring否从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.isInvisibleboolean否从实际目标页面、控件配置或接入协议读取,确认具体产品与版本;不能替换为占位值或其他网站的 key。
adapter.cookiesstring否v2/v2 Enterprise 可选的当前挑战 Cookie 请求头字符串,格式为 key=value; key2=value2,取自对应目标上下文;不需要时省略。v3 不公开此字段。
adapter.proxyTypestring否v2/v2 Enterprise 可选代理协议:http、socks4 或 socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略保留无代理模式。当前 v3 没有已确认的代理任务。
adapter.proxyAddressstring否可达的代理主机名或 IP,不含协议、端口及认证信息。目标要求 IP 绑定时,识别端与目标浏览器必须使用相同的实际出口;仅给浏览器设置代理并不足够。
adapter.proxyPortinteger否代理 TCP 端口,1 至 65535 的整数;仅在提供代理参数时必填。
adapter.proxyLoginstring否调用方已配置代理的可选认证用户名,不要编造凭据。
adapter.proxyPasswordstring否同一个已配置代理的可选认证密码。
adapter.enterprisePayloadobject否当前 grecaptcha.enterprise.render 配置的可选附加 JSON 对象,存在 s 字符串时一并携带,保持与挑战匹配。Enterprise v2 不使用 recaptchaDataSValue;此字段不是已确认的 v3 参数。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.gRecaptchaResponsestring提交到目标网站的验证令牌。
data.solution.tokenstring提交到目标网站的验证令牌。

CLOUDFLARE_TURNSTILE

Cloudflare Turnstile

已启用

超时 144 s · 第三方 task type TurnstileTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是实际承载该控件的完整页面 URL,取自同一目标会话。
adapter.websiteKeystring是该 Turnstile 控件的实际 sitekey,不能使用其他站点的 Key。
adapter.actionstring否实际 render action;整页挑战提供 pagedata 时必填。独立控件也可以仅设置 action,不需要因此补 pagedata。
adapter.datastring否实际 render cData,向上游使用 data;兼容别名 cData,两者同时提供且不同会在计费前拒绝。
adapter.pagedatastring否Cloudflare 整页挑战当前 render 的 chlPageData,向上游使用 pagedata;提供时 action、data 也必须齐全。不是所有独立控件都必填。
adapter.cDatastring否data 的兼容别名,建议使用 data;已提供 data 时省略此别名。
adapter.chlPageDatastring否pagedata 的兼容别名,建议使用 pagedata;已提供 pagedata 时省略此别名。
adapter.userAgentstring否可选,实际浏览器 User-Agent。返回的 solution.userAgent 必须保留;不能假设上游一定返回输入的 UA。
adapter.proxyTypestring否可选代理协议:http、socks4、socks5。提供任一代理字段时,proxyType、proxyAddress、proxyPort 必须齐全;全部省略时沿用无代理模式。
adapter.proxyAddressstring否代理主机名或 IP,不含协议、端口及认证信息;按目标会话要求使用对应出口。
adapter.proxyPortinteger否代理 TCP 端口,1 至 65535 的整数,仅使用代理时必填。
adapter.proxyLoginstring否仅该代理需要认证时提供的用户名。
adapter.proxyPasswordstring否仅该代理需要认证时提供的密码。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。
data.solution.userAgentstring获取答案时使用的浏览器 User-Agent。

ARKOSE

Arkose Captcha

已启用

超时 144 s · 第三方 task type FunCaptchaTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websitePublicKeystring是Arkose 公钥。
adapter.funcaptchaApiJSSubdomainstring否FunCaptcha API JS 子域名。
adapter.datastring否第三方验证附加 data。
adapter.userAgentstring否目标浏览器 User-Agent。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

GEETEST

GeeTest

已启用

超时 144 s · 第三方 task type GeeTestTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.gtstring是目标 initGeetest v3 集成签发的 gt,不是 v4 的 captcha_id。不要使用演示值或其他集成标识。
adapter.challengestring是每次新任务从目标初始化接口取得尚未使用的 v3 challenge;页面已加载过的值对识别服务不再有效。保持对应目标会话,不复用,也不按长度推断新鲜性。
adapter.apiServerSubdomainstring否可选的 v3 GeeTest API 主机名,取自目标配置,例如 api-na.geetest.com。未配置或不确定时省略,不要提交 YOUR_* 占位值;现有公开字段名保持不变。
adapter.userAgentstring否目标浏览器 User-Agent。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.challengestring产品返回的答案字段,按目标网站的验证协议使用。
data.solution.validatestring产品返回的答案字段,按目标网站的验证协议使用。
data.solution.seccodestring产品返回的答案字段,按目标网站的验证协议使用。

GEETEST_V4

GeeTest v4

已启用

超时 144 s · 第三方 task type GeeTestTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.captchaIdstring是使用目标 initGeetest4 配置中的 captcha_id,不是 v3 集成的 gt 或 challenge。
adapter.userAgentstring否目标浏览器 User-Agent。
adapter.riskTypestring否可选的目标实际 GeeTest v4 risk_type,与 captcha_id 一起发送到上游 initParameters;不改变产品版本。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.captcha_idstring产品返回的答案字段,按目标网站的验证协议使用。
data.solution.lot_numberstring产品返回的答案字段,按目标网站的验证协议使用。
data.solution.pass_tokenstring提交到目标网站的验证令牌。
data.solution.gen_timestring产品返回的答案字段,按目标网站的验证协议使用。
data.solution.captcha_outputstring产品返回的答案字段,按目标网站的验证协议使用。

CAPY_PUZZLE

Capy Puzzle

已启用

超时 144 s · 第三方 task type CapyTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring是目标站点的 CAPTCHA site key。
adapter.userAgentstring否目标浏览器 User-Agent。
adapter.proxyTypestring否代理类型,例如 http、socks4 或 socks5。 使用自有代理时必填;不传代理则使用上游代理池。
adapter.proxyAddressstring否代理主机或 IP 地址。 使用自有代理时必填;不传代理则使用上游代理池。
adapter.proxyPortinteger否代理端口。 使用自有代理时必填;不传代理则使用上游代理池。
adapter.proxyLoginstring否代理用户名。
adapter.proxyPasswordstring否代理密码。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.captchakeystring提交到目标网站的验证令牌。
data.solution.challengekeystring产品返回的答案字段,按目标网站的验证协议使用。
data.solution.answerstring识别出的文字或文本答案。
data.solution.respKeystring提交到目标网站的验证令牌。

KEYCAPTCHA

KeyCAPTCHA

已启用

超时 144 s · 第三方 task type KeyCaptchaTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.s_s_c_user_idinteger是KeyCAPTCHA 用户 ID。
adapter.s_s_c_session_idstring是KeyCAPTCHA 会话 ID。
adapter.s_s_c_web_server_signstring是KeyCAPTCHA 服务签名。
adapter.s_s_c_web_server_sign2string是KeyCAPTCHA 服务签名 2。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

LEMIN

Lemin Captcha

已启用

超时 144 s · 第三方 task type LeminTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.captchaIdstring是验证码 ID。
adapter.divIdstring是验证码父容器元素 ID。
adapter.leminApiServerSubdomainstring否加载验证码的 API 域名。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.answerstring识别出的文字或文本答案。
data.solution.challenge_idstring产品返回的答案字段,按目标网站的验证协议使用。

AMAZON

Amazon Captcha

已启用

超时 144 s · 第三方 task type AmazonTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring条件必填目标站点的 CAPTCHA site key。
adapter.ivstring条件必填Amazon 验证 IV。
adapter.contextstring条件必填Amazon 验证上下文。
adapter.challengeScriptstring否取自当前 AWS WAF 挑战的实际 challengeScript URL,不使用示例地址。
adapter.captchaScriptstring否取自当前 AWS WAF 挑战的实际 captchaScript URL,不使用示例地址。
adapter.jsapiScriptstring条件必填取自当前 AWS WAF 挑战的实际 jsapiScript URL,不使用示例地址。
adapter.userAgentstring否取自同一目标会话的实际浏览器 User-Agent。
adapter.proxyTypestring否代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
adapter.proxyAddressstring否可达代理的主机名或 IP,不含协议、凭据或端口。
adapter.proxyLoginstring否可选代理认证用户名,须与密码成组提供。
adapter.proxyPasswordstring否同一代理的可选密码,与 proxyLogin 成组提供。
adapter.proxyPortinteger否代理 TCP 端口,1 至 65535 的整数。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.captcha_voucherstring产品返回的答案字段,按目标网站的验证协议使用。
data.solution.existing_tokenstring产品返回的答案字段,按目标网站的验证协议使用。

IMAGE_CAPTCHA

Image Captcha

已启用

超时 144 s · 第三方 task type ImageToTextTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.phraseboolean否是否要求完整短语。
adapter.caseSensitiveboolean否是否区分大小写。
adapter.numericboolean否是否限制为数字。
adapter.mathboolean否是否按数学题识别。
adapter.minLengthinteger否答案最小长度。
adapter.maxLengthinteger否答案最大长度。
adapter.commentstring否提交给人工识别者的说明。
adapter.imgInstructionsstring否图片识别说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.textstring识别出的文字或文本答案。

TEXT

Text Captcha

已启用

超时 144 s · 第三方 task type TextCaptchaTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "productCode": "TEXT", // 产品编码,必须与 adapter 参数匹配。
  "adapter": { // 产品专属参数对象。
    "comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
  }
}

请求头: apiKey: YOUR_API_KEY

注释用于说明字段,复制后得到不含注释的标准 JSON。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.commentstring是提交给人工识别者的说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.textstring识别出的文字或文本答案。

AUDIO

Audio Captcha

已启用

超时 144 s · 第三方 task type AudioTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "productCode": "AUDIO", // 产品编码,必须与 adapter 参数匹配。
  "adapter": { // 产品专属参数对象。
    "body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
    "lang": "en" // 提交 MP3 的语音语言:en、fr、de、el、pt、ru;省略保持既有 en 默认值。这是素材语言,不是 API 响应语言或翻译选项。
  }
}

请求头: apiKey: YOUR_API_KEY

注释用于说明字段,复制后得到不含注释的标准 JSON。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.langstring否提交 MP3 的语音语言:en、fr、de、el、pt、ru;省略保持既有 en 默认值。这是素材语言,不是 API 响应语言或翻译选项。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

ROTATE

Rotate Captcha

已启用

超时 144 s · 第三方 task type RotateTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "productCode": "ROTATE", // 产品编码,必须与 adapter 参数匹配。
  "adapter": { // 产品专属参数对象。
    "body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
    "comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
  }
}

请求头: apiKey: YOUR_API_KEY

注释用于说明字段,复制后得到不含注释的标准 JSON。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.commentstring否提交给人工识别者的说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.rotateinteger旋转角度。

GRID

Grid Captcha

已启用

超时 144 s · 第三方 task type GridTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.commentstring条件必填提交给人工识别者的说明。
adapter.rowsinteger否提交的当前网格实际行数。
adapter.columnsinteger否提交的当前网格实际列数。
adapter.imgInstructionsstring条件必填可选的 Base64 题目图片,最多 100 kB;comment 与 imgInstructions 至少一个,使用 imgType 时必须提供英文原始题目和原始图像文件。
adapter.imgTypestring否可选上游计算机视觉模式:recaptcha 或 funcaptcha;不能把通用或自定义图片冒称为这些产品,必须提供英文原始题目和原始图像文件。
adapter.previousIdstring否可选的同一持续挑战上游任务 ID,仅已知时提供;不是 Nex Captcha 平台 UUID,未取得上游 ID 时省略。不能关联其他或过期挑战。
adapter.minClicksinteger否可选 minClicks 边界,指定行列时不能超过 rows*columns,minClicks 不能大于 maxClicks。
adapter.maxClicksinteger否可选 maxClicks 边界,指定行列时不能超过 rows*columns,minClicks 不能大于 maxClicks。
adapter.canNoAnswerinteger否0 或 1,仅实际题目允许没有匹配图片时设为 1,不用于掩盖识别失败。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.clickarray需要点击的网格序号列表。
data.solution.click[]integer产品返回的答案字段,按目标网站的验证协议使用。

CLICK

Click Captcha

已启用

超时 144 s · 第三方 task type CoordinatesTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "productCode": "CLICK", // 产品编码,必须与 adapter 参数匹配。
  "adapter": { // 产品专属参数对象。
    "body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
    "comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
  }
}

请求头: apiKey: YOUR_API_KEY

注释用于说明字段,复制后得到不含注释的标准 JSON。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.commentstring否提交给人工识别者的说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.coordinatesarray点击坐标列表,原点为图片左上角。
data.solution.coordinates[]object产品返回的答案字段,按目标网站的验证协议使用。
data.solution.coordinates[].xinteger横坐标,单位为像素。
data.solution.coordinates[].yinteger纵坐标,单位为像素。

COORDINATES

Coordinates Captcha

已启用

超时 144 s · 第三方 task type CoordinatesTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "productCode": "COORDINATES", // 产品编码,必须与 adapter 参数匹配。
  "adapter": { // 产品专属参数对象。
    "body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
    "comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
  }
}

请求头: apiKey: YOUR_API_KEY

注释用于说明字段,复制后得到不含注释的标准 JSON。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.commentstring否提交给人工识别者的说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.coordinatesarray点击坐标列表,原点为图片左上角。
data.solution.coordinates[]object产品返回的答案字段,按目标网站的验证协议使用。
data.solution.coordinates[].xinteger横坐标,单位为像素。
data.solution.coordinates[].yinteger纵坐标,单位为像素。

DRAW_AROUND

Draw Around Captcha

已启用

超时 144 s · 第三方 task type DrawAroundTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "productCode": "DRAW_AROUND", // 产品编码,必须与 adapter 参数匹配。
  "adapter": { // 产品专属参数对象。
    "body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
    "comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
  }
}

请求头: apiKey: YOUR_API_KEY

注释用于说明字段,复制后得到不含注释的标准 JSON。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.commentstring否提交给人工识别者的说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.canvasarray绘制轨迹的坐标列表。
data.solution.canvas[]array产品返回的答案字段,按目标网站的验证协议使用。
data.solution.canvas[][]object产品返回的答案字段,按目标网站的验证协议使用。
data.solution.canvas[][].xinteger横坐标,单位为像素。
data.solution.canvas[][].yinteger纵坐标,单位为像素。

DRAG_AND_DROP

Drag and Drop Captcha

已启用

超时 144 s · 第三方 task type DragAndDropTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "productCode": "DRAG_AND_DROP", // 产品编码,必须与 adapter 参数匹配。
  "adapter": { // 产品专属参数对象。
    "comment": "YOUR_COMMENT", // 提交给人工识别者的说明。
    "background": "BASE64_IMAGE", // 背景图 Base64。
    "images": [ // 待拖图片 Base64,返回坐标与本数组顺序一致。
      "BASE64_IMAGE"
    ]
  }
}

请求头: apiKey: YOUR_API_KEY

注释用于说明字段,复制后得到不含注释的标准 JSON。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.commentstring否提交给人工识别者的说明。
adapter.backgroundstring是背景图 Base64。
adapter.imagesarray是待拖图片 Base64,返回坐标与本数组顺序一致。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.coordinatesarray点击坐标列表,原点为图片左上角。
data.solution.coordinates[]object产品返回的答案字段,按目标网站的验证协议使用。
data.solution.coordinates[].xinteger横坐标,单位为像素。
data.solution.coordinates[].yinteger纵坐标,单位为像素。

BOUNDING_BOX

Bounding Box Captcha

已启用

超时 144 s · 第三方 task type BoundingBoxTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "productCode": "BOUNDING_BOX", // 产品编码,必须与 adapter 参数匹配。
  "adapter": { // 产品专属参数对象。
    "body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
    "comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
  }
}

请求头: apiKey: YOUR_API_KEY

注释用于说明字段,复制后得到不含注释的标准 JSON。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.commentstring否提交给人工识别者的说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.bounding_boxesarray目标对象的边界框列表。
data.solution.bounding_boxes[]object产品返回的答案字段,按目标网站的验证协议使用。
data.solution.bounding_boxes[].xMininteger横坐标,单位为像素。
data.solution.bounding_boxes[].xMaxinteger横坐标,单位为像素。
data.solution.bounding_boxes[].yMininteger纵坐标,单位为像素。
data.solution.bounding_boxes[].yMaxinteger纵坐标,单位为像素。

SLIDER_CAPTCHA

Slider Captcha

已启用

超时 144 s · 第三方 task type CoordinatesTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

答案字段文档待补充,当前示例仅展示响应外层结构。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是当前自定义滑块挑战的 JPEG、PNG 或 GIF Base64;上游也接受 data URI。保持原图像素。上游限制:解码后 600 kB,任一边最多 1000 像素。这不是 GeeTest、DataDome 等厂商的 Token 识别契约。
adapter.commentstring否可选的人工识别说明,准确描述应点击的位置,例如匹配目标槽的中心。省略时图片本身须含充分题意。自有测试应提供明确英文说明及已知目标点。返回坐标相对于此图片。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.coordinatesarray点击坐标列表,原点为图片左上角。
data.solution.coordinates[]object产品返回的答案字段,按目标网站的验证协议使用。
data.solution.coordinates[].xinteger横坐标,单位为像素。
data.solution.coordinates[].yinteger纵坐标,单位为像素。

CYBERSIARA

CyberSiARA

已启用

超时 144 s · 第三方 task type CyberSiAraTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.userAgentstring是目标浏览器 User-Agent。
adapter.SlideMasterUrlIdstring是页面 InitCaptcha 的 MasterUrlId,来自 GetCyberSiara 请求。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

MTCAPTCHA

MTCaptcha

已启用

超时 144 s · 第三方 task type MtCaptchaTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "productCode": "MTCAPTCHA", // 产品编码,必须与 adapter 参数匹配。
  "adapter": { // 产品专属参数对象。
    "websiteURL": "https://example.com/register", // 目标网站完整 URL。
    "websiteKey": "YOUR_WEBSITEKEY" // 目标站点的 CAPTCHA site key。
  }
}

请求头: apiKey: YOUR_API_KEY

注释用于说明字段,复制后得到不含注释的标准 JSON。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring是目标站点的 CAPTCHA site key。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

DATADOME

DataDome

已启用

超时 144 s · 第三方 task type DataDomeSliderTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.captchaUrlstring是DataDome 验证 iframe 的 URL。
adapter.userAgentstring是目标浏览器 User-Agent。
adapter.proxyTypestring是代理类型,例如 http、socks4 或 socks5。
adapter.proxyAddressstring是代理主机或 IP 地址。
adapter.proxyPortinteger是代理端口。
adapter.proxyLoginstring否代理用户名。
adapter.proxyPasswordstring否代理密码。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.cookiestring目标域名对应的验证 Cookie。

FRIENDLY_CAPTCHA

Friendly Captcha

已启用

超时 144 s · 第三方 task type FriendlyCaptchaTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring是目标站点的 CAPTCHA site key。
adapter.versionstring否Friendly Captcha 版本。
adapter.moduleScriptstring否Friendly Captcha module 脚本地址。
adapter.nomoduleScriptstring否Friendly Captcha nomodule 脚本地址。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

CUTCAPTCHA

Cutcaptcha

已启用

超时 144 s · 第三方 task type CutCaptchaTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring否保留以兼容旧请求的历史字段,不向上游发送;不能代替当前说明的产品必需参数。
adapter.userAgentstring否取自同一目标会话的实际浏览器 User-Agent。
adapter.miseryKeystring是当前目标页面 CUTCAPTCHA_MISERY_KEY 的值。
adapter.siteApiKeystring是Cutcaptcha iframe 或脚本中的目标公开 data-apikey,向上游映射为 apiKey;这不是 Nex Captcha 鉴权 Key,平台 Key 仍只放请求头。
adapter.proxyTypestring否代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
adapter.proxyAddressstring否可达代理的主机名或 IP,不含协议、凭据或端口。
adapter.proxyLoginstring否可选代理认证用户名,须与密码成组提供。
adapter.proxyPasswordstring否同一代理的可选密码,与 proxyLogin 成组提供。
adapter.proxyPortinteger否代理 TCP 端口,1 至 65535 的整数。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

ATBCAPTCHA

atbCAPTCHA

已启用

超时 144 s · 第三方 task type AtbCaptchaTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring否保留以兼容旧请求的历史字段,不向上游发送;不能代替当前说明的产品必需参数。
adapter.userAgentstring否取自同一目标会话的实际浏览器 User-Agent。
adapter.appIdstring是目标 atbCAPTCHA 初始化中的实际 appId。
adapter.apiServerstring是同一目标控件配置中的实际 apiServer;API v2 接入需显式提供。
adapter.proxyTypestring否代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
adapter.proxyAddressstring否可达代理的主机名或 IP,不含协议、凭据或端口。
adapter.proxyLoginstring否可选代理认证用户名,须与密码成组提供。
adapter.proxyPasswordstring否同一代理的可选密码,与 proxyLogin 成组提供。
adapter.proxyPortinteger否代理 TCP 端口,1 至 65535 的整数。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

TENCENT

Tencent Captcha

已启用

超时 144 s · 第三方 task type TencentTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.appIdstring是Enterprise 应用 ID。
adapter.captchaScriptstring否Tencent CAPTCHA 脚本 URL。
adapter.proxyTypestring否代理类型,例如 http、socks4 或 socks5。
adapter.proxyAddressstring否代理主机或 IP 地址。
adapter.proxyPortinteger否代理端口。
adapter.proxyLoginstring否代理用户名。
adapter.proxyPasswordstring否代理密码。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.appidstring产品返回的答案字段,按目标网站的验证协议使用。
data.solution.retinteger产品返回的答案字段,按目标网站的验证协议使用。
data.solution.ticketstring提交到目标网站的验证令牌。
data.solution.randstrstring产品返回的答案字段,按目标网站的验证协议使用。

PROSOPO

Prosopo Captcha

已启用

超时 144 s · 第三方 task type ProsopoTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring是目标站点的 CAPTCHA site key。
adapter.userAgentstring否目标浏览器 User-Agent。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

CAPTCHAFOX

CaptchaFox

已启用

超时 144 s · 第三方 task type CaptchaFoxTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring是目标站点的 CAPTCHA site key。
adapter.userAgentstring是取自同一目标会话的实际浏览器 User-Agent。
adapter.proxyTypestring是代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
adapter.proxyAddressstring是可达代理的主机名或 IP,不含协议、凭据或端口。
adapter.proxyLoginstring否可选代理认证用户名,须与密码成组提供。
adapter.proxyPasswordstring否同一代理的可选密码,与 proxyLogin 成组提供。
adapter.proxyPortinteger是代理 TCP 端口,1 至 65535 的整数。
adapter.apiServerstring否可选,取自目标实际加载脚本的 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 不可混用。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

VK_CAPTCHA

VK Captcha

已启用

超时 144 s · 第三方 task type VKCaptchaTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

答案字段文档待补充,当前示例仅展示响应外层结构。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.imagestring条件必填VK 旋转验证码图片的 Base64 内容。
adapter.stepsstring条件必填来自同一次 VK captchaNotRobot.getContent 响应、与 image 配对的非负整数有序非空数组,不是最大旋转次数或角度。保持原序列。兼容包含 JSON 整数数组的旧字符串并转换为数组;单个 "3" 无效。
adapter.redirectUristring条件必填刚获取的 VK 令牌挑战跳转 URL;与 image + steps 图片模式二选一。
adapter.userAgentstring条件必填获取挑战时浏览器使用的 User-Agent。
adapter.proxyTypestring条件必填获取挑战时使用的代理协议,例如 http。
adapter.proxyAddressstring条件必填获取挑战时使用的代理主机或 IP 地址。
adapter.proxyPortinteger条件必填获取挑战时使用的代理端口。
adapter.proxyLoginstring否需要代理认证时填写用户名。
adapter.proxyPasswordstring否需要代理认证时填写密码。

任选以下一组字段,并填完整组内字段: image + steps / redirectUri + userAgent + proxyType + proxyAddress + proxyPort

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.best_stepinteger完成验证所需的步骤或操作。
data.solution.solutionarray完成验证所需的步骤或操作。
data.solution.solution[]integer产品返回的答案字段,按目标网站的验证协议使用。
data.solution.answerstring识别出的文字或文本答案。
data.solution.previewstring产品返回的答案字段,按目标网站的验证协议使用。

TEMU

Temu Captcha

已启用

超时 144 s · 第三方 task type TemuImageTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "productCode": "TEMU", // 产品编码,必须与 adapter 参数匹配。
  "adapter": { // 产品专属参数对象。
    "image": "BASE64_IMAGE", // 背景图片 Base64。
    "parts": [ // 可移动图片片段 Base64,顺序对应响应坐标。
      "BASE64_IMAGE"
    ]
  }
}

请求头: apiKey: YOUR_API_KEY

注释用于说明字段,复制后得到不含注释的标准 JSON。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.imagestring是背景图片 Base64。
adapter.partsarray是可移动图片片段 Base64,顺序对应响应坐标。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.coordinatesarray点击坐标列表,原点为图片左上角。
data.solution.coordinates[]object产品返回的答案字段,按目标网站的验证协议使用。
data.solution.coordinates[].xinteger横坐标,单位为像素。
data.solution.coordinates[].yinteger纵坐标,单位为像素。

ALTCHA

Altcha Captcha

已启用

超时 144 s · 第三方 task type AltchaTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.challengeURLstring条件必填ALTCHA challenge URL;与 challengeJSON 二选一。
adapter.challengeJSONstring条件必填ALTCHA challenge JSON;与 challengeURL 二选一。
adapter.proxyTypestring否代理类型,例如 http、socks4 或 socks5。 使用自有代理时必填;不传代理则使用上游代理池。
adapter.proxyAddressstring否代理主机或 IP 地址。 使用自有代理时必填;不传代理则使用上游代理池。
adapter.proxyPortinteger否代理端口。 使用自有代理时必填;不传代理则使用上游代理池。
adapter.proxyLoginstring否代理用户名。
adapter.proxyPasswordstring否代理密码。

任选以下一组字段,并填完整组内字段: challengeURL / challengeJSON

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

YIDUN_NE_CAPTCHA

Yidun Captcha

已启用

超时 144 s · 第三方 task type YidunTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring是目标站点的 CAPTCHA site key。
adapter.userAgentstring否取自同一目标会话的实际浏览器 User-Agent。
adapter.yidunGetLibstring否取自同一当前易盾初始化或网络上下文的实际 yidunGetLib,目标未使用时省略。
adapter.yidunApiServerSubdomainstring否取自同一当前易盾初始化或网络上下文的实际 yidunApiServerSubdomain,目标未使用时省略。
adapter.challengestring否取自同一当前易盾初始化或网络上下文的实际 challenge,目标未使用时省略。
adapter.hcgstring否取自同一当前易盾初始化或网络上下文的实际 hcg,目标未使用时省略。
adapter.hctinteger否同一目标请求中的 Enterprise 数字时间标识,不是字符串或本机时间。
adapter.proxyTypestring否代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
adapter.proxyAddressstring否可达代理的主机名或 IP,不含协议、凭据或端口。
adapter.proxyLoginstring否可选代理认证用户名,须与密码成组提供。
adapter.proxyPasswordstring否同一代理的可选密码,与 proxyLogin 成组提供。
adapter.proxyPortinteger否代理 TCP 端口,1 至 65535 的整数。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

BINANCE

Binance Captcha

已启用

超时 144 s · 第三方 task type BinanceTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring是当前 Binance 原生验证码的 bizId、bizType 或 bizCode(例如 login),与同次 validateId 配对;不是 Google reCAPTCHA 或 hCaptcha 的公开 key。先读取预检实际 captchaType 再选产品,Binance 页面也可能展示其他提供商的验证码。
adapter.userAgentstring否取自同一目标会话的实际浏览器 User-Agent。
adapter.validateIdstring是同一当前目标预检或验证码响应中的新鲜 validateId、securityId 或 securityCheckResponseValidateId,不复用其他会话或过期值。
adapter.proxyTypestring否代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
adapter.proxyAddressstring否可达代理的主机名或 IP,不含协议、凭据或端口。
adapter.proxyLoginstring否可选代理认证用户名,须与密码成组提供。
adapter.proxyPasswordstring否同一代理的可选密码,与 proxyLogin 成组提供。
adapter.proxyPortinteger否代理 TCP 端口,1 至 65535 的整数。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。
data.solution.userAgentstring获取答案时使用的浏览器 User-Agent。

HUNT

Hunt Captcha

已启用

超时 144 s · 第三方 task type HuntTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring否保留以兼容旧请求的历史字段,不向上游发送;不能代替当前说明的产品必需参数。
adapter.userAgentstring否取自同一目标会话的实际浏览器 User-Agent。
adapter.apiGetLibstring是当前目标页面加载的 Hunt api.js 完整新鲜 URL。
adapter.datastring否带 X-HD 请求目标后返回的第二阶段 meta.token;第一阶段指纹任务省略此字段。
adapter.proxyTypestring是代理协议:http、socks4 或 socks5;目标有绑定要求时保持与目标会话相同的实际出口。
adapter.proxyAddressstring是可达代理的主机名或 IP,不含协议、凭据或端口。
adapter.proxyLoginstring否可选代理认证用户名,须与密码成组提供。
adapter.proxyPasswordstring否同一代理的可选密码,与 proxyLogin 成组提供。
adapter.proxyPortinteger是代理 TCP 端口,1 至 65535 的整数。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

TSPD

TSPD Captcha

已启用

超时 144 s · 第三方 task type TspdTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.userAgentstring否目标浏览器 User-Agent。
adapter.tspdCookiestring是刚获取的 TSPD 挑战 Cookie。
adapter.htmlPageBase64string是同一会话的挑战页面 HTML 的 Base64。
adapter.proxyTypestring是同一会话使用的代理类型。
adapter.proxyAddressstring是代理地址。
adapter.proxyPortinteger是代理端口。
adapter.proxyLoginstring否代理用户名。
adapter.proxyPasswordstring否代理密码。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.Domainsobject按目标域名分组的验证结果。
data.solution.Domains.example.comobject产品返回的答案字段,按目标网站的验证协议使用。
data.solution.Domains.example.com.Cookiesobject目标域名对应的验证 Cookie。
data.solution.Domains.example.com.Cookies.TS386a400d029string产品返回的答案字段,按目标网站的验证协议使用。
data.solution.Domains.example.com.Cookies.TS386a400d078string产品返回的答案字段,按目标网站的验证协议使用。
data.solution.Domains.example.com.Cookies.tspd_101_DIDstring产品返回的答案字段,按目标网站的验证协议使用。

BASILISK

Basilisk Captcha

已启用

超时 144 s · 第三方 task type BasiliskTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring是目标站点的 CAPTCHA site key。
adapter.userAgentstring否目标浏览器 User-Agent。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.dataobject产品返回的答案字段,按目标网站的验证协议使用。
data.solution.data.captcha_responsestring提交到目标网站的验证令牌。
data.solution.headersobject配合验证结果使用的 HTTP 请求头。
data.solution.headers.User-Agentstring获取答案时使用的浏览器 User-Agent。

IMPERVA

Imperva Captcha

已启用

超时 144 s · 第三方 task type ImpervaTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是实际受 Imperva 保护的完整页面 URL;脚本和 Cookie 必须来自该目标的同一会话。
adapter.websiteKeystring否仅兼容历史客户端,Imperva 不使用此字段;site key 不能代替必需的脚本、Cookie 或代理。
adapter.incapsulaScriptUrlstring是从当前目标页面或网络请求取得新鲜的 Incapsula 脚本 URL 或路径,保留查询参数,例如 /_Incapsula_Resource?SWJIYLWA=...;不能使用 site key 代替。
adapter.incapsulaCookiesstring是同一次新鲜目标会话的 Cookie 请求头字符串,包含实际签发的 incap_ses_*、visid_incap_* 等值;原样保留,不要复制示例 Cookie。
adapter.reese84UrlEndpointstring否可选,取自目标网络请求中的实际 Reese84 端点,通常以 ?d=目标主机 结尾;不存在时省略,不要猜测。
adapter.userAgentstring否取得该会话时实际使用的 User-Agent;使用结果 Cookie 时保持一致,上游返回 User-Agent 时按其要求使用。
adapter.proxyTypestring是上游必需的代理协议:http、socks4 或 socks5;当前 Imperva 接入没有文档化的免代理模式。
adapter.proxyAddressstring是可达的代理主机名或 IP,不包含端口或认证信息;采集挑战、处理挑战及后续访问使用同一代理出口。
adapter.proxyPortinteger是代理 TCP 端口,1 至 65535 的整数;不是 URL 或 host:port 字符串。
adapter.proxyLoginstring否该代理需要认证时的用户名,不是 Nex Captcha API Key。
adapter.proxyPasswordstring否该代理需要认证时的密码,原样保留认证值。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.domainsobject按目标域名分组的验证结果。
data.solution.domains.https://site-example.comobject产品返回的答案字段,按目标网站的验证协议使用。
data.solution.domains.https://site-example.com.cookiesobject目标域名对应的验证 Cookie。
data.solution.domains.https://site-example.com.cookies.___utmvcstring产品返回的答案字段,按目标网站的验证协议使用。

ALIBABA

Alibaba Captcha

已启用

超时 144 s · 第三方 task type AlibabaTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.sceneIdstring是阿里验证码场景 ID。
adapter.prefixstring是阿里验证码前缀。
adapter.userIdstring否第三方用户 ID。
adapter.userUserIdstring否第三方 user user ID。
adapter.verifyTypestring否验证类型。
adapter.regionstring否服务区域。
adapter.userCertifyIdstring否用户认证 ID。
adapter.apiGetLibstring否验证码脚本地址。
adapter.userAgentstring否目标浏览器 User-Agent。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.dataobject产品返回的答案字段,按目标网站的验证协议使用。
data.solution.data.tokensstring提交到目标网站的验证令牌。

YANDEX_SMARTCAPTCHA

Yandex SmartCaptcha

已启用

超时 144 s · 第三方 task type YandexSmartCaptchaTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是目标网站完整 URL。
adapter.websiteKeystring是目标站点的 CAPTCHA site key。
adapter.userAgentstring否目标浏览器 User-Agent。
adapter.cookiesstring否目标页面需要携带的 Cookie。
adapter.proxyTypestring否代理类型,例如 http、socks4 或 socks5。
adapter.proxyAddressstring否代理主机或 IP 地址。
adapter.proxyPortinteger否代理端口。
adapter.proxyLoginstring否代理用户名。
adapter.proxyPasswordstring否代理密码。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.tokenstring提交到目标网站的验证令牌。

RUSSIAN_CAPTCHA

Russian Captcha

已启用

超时 144 s · 第三方 task type ImageToTextTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.phraseboolean否是否要求完整短语。
adapter.caseSensitiveboolean否是否区分大小写。
adapter.numericboolean否是否限制为数字。
adapter.mathboolean否是否按数学题识别。
adapter.minLengthinteger否答案最小长度。
adapter.maxLengthinteger否答案最大长度。
adapter.commentstring否提交给人工识别者的说明。
adapter.imgInstructionsstring否图片识别说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.textstring识别出的文字或文本答案。

CHINESE_CAPTCHA

Chinese Captcha

已启用

超时 144 s · 第三方 task type ImageToTextTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.phraseboolean否是否要求完整短语。
adapter.caseSensitiveboolean否是否区分大小写。
adapter.numericboolean否是否限制为数字。
adapter.mathboolean否是否按数学题识别。
adapter.minLengthinteger否答案最小长度。
adapter.maxLengthinteger否答案最大长度。
adapter.commentstring否提交给人工识别者的说明。
adapter.imgInstructionsstring否图片识别说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.textstring识别出的文字或文本答案。

NUMBER_CAPTCHA

Number Captcha

已启用

超时 144 s · 第三方 task type ImageToTextTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.phraseboolean否是否要求完整短语。
adapter.caseSensitiveboolean否是否区分大小写。
adapter.numericboolean否是否限制为数字。
adapter.mathboolean否是否按数学题识别。
adapter.minLengthinteger否答案最小长度。
adapter.maxLengthinteger否答案最大长度。
adapter.commentstring否提交给人工识别者的说明。
adapter.imgInstructionsstring否图片识别说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.textstring识别出的文字或文本答案。

MATH_CAPTCHA

Math Captcha

已启用

超时 144 s · 第三方 task type ImageToTextTask

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring是图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.phraseboolean否是否要求完整短语。
adapter.caseSensitiveboolean否是否区分大小写。
adapter.numericboolean否是否限制为数字。
adapter.mathboolean否是否按数学题识别。
adapter.minLengthinteger否答案最小长度。
adapter.maxLengthinteger否答案最大长度。
adapter.commentstring否提交给人工识别者的说明。
adapter.imgInstructionsstring否图片识别说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.textstring识别出的文字或文本答案。

CUSTOM

Custom Captcha

已启用

超时 144 s

请求示例

POST /api/validator/create.cgi · JSONC
{
  "productCode": "CUSTOM", // 产品编码,必须与 adapter 参数匹配。
  "adapter": { // 产品专属参数对象。
    "body": "BASE64_CONTENT", // 图片内容或任务主体;按产品要求传入 Base64 或文本。
    "comment": "YOUR_COMMENT" // 提交给人工识别者的说明。
  }
}

请求头: apiKey: YOUR_API_KEY

注释用于说明字段,复制后得到不含注释的标准 JSON。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

答案字段文档待补充,当前示例仅展示响应外层结构。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.bodystring否图片内容或任务主体;按产品要求传入 Base64 或文本。
adapter.commentstring否提交给人工识别者的说明。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步

HCAPTCHA

hCaptcha

已启用

超时 600 s · 第三方 task type HCaptchaTaskProxyless

请求示例

POST /api/validator/create.cgi · JSONC
{
  "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。

响应示例

POST /api/validator/query.cgi · JSONC
{
  "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 接收答案。

答案字段文档待补充,当前示例仅展示响应外层结构。

请求参数说明

字段类型必填说明
productCodestring是产品编码,必须与 adapter 参数匹配。
adapterobject是产品专属参数对象。
adapter.websiteURLstring是当前 hCaptcha 控件所在目标页面的完整 URL,不是 hcaptcha.com 的 iframe URL。
adapter.websiteKeystring是当前目标控件 data-sitekey 或 hcaptcha.render 配置中的公开 hCaptcha sitekey;不可使用 reCAPTCHA key 或账户 secret。

响应参数说明

字段类型说明
codeinteger业务返回码,0 表示成功,其他值表示错误。
msgstring结果说明,成功时可能为空。
dataobject | null响应数据,接口报错时可能为 null。
data.taskIdstring创建任务返回的任务 ID。
data.productCodestring产品编码,必须与 adapter 参数匹配。
data.statestring任务状态:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
data.solutionobjectSUCCEEDED 时的产品答案;处理中或失败时为空对象。
data.failureobject | omitted仅 FAILED 或 EXPIRED 返回的公开诊断,不含上游原始消息;按失败处理指引操作。
data.failure.codestring失败编码
data.failure.nextActionstring下一步
data.solution.gRecaptchaResponsestring提交到目标网站的验证令牌。