HTTP_SUBMIT純 HTTP 提交
目標業務及驗證提交能透過 HTTP 完成,且能保持必要會話條件。有識別 API 不代表整個網站支援純 HTTP 操作。
取得目標挑戰與參數 → 建立並查詢對應識別任務 → 隨目標請求提交結果 → 檢查驗證及業務結果。
API REFERENCE / V1
使用 API Key 創建驗證任務,通過 WebSocket 接收結果,或使用查詢接口補查。
HTTP_SUBMIT目標業務及驗證提交能透過 HTTP 完成,且能保持必要會話條件。有識別 API 不代表整個網站支援純 HTTP 操作。
取得目標挑戰與參數 → 建立並查詢對應識別任務 → 隨目標請求提交結果 → 檢查驗證及業務結果。
BROWSER_RESULT瀏覽器工具能讀取目前接入參數,並按目標整合方式使用該產品結果。瀏覽器執行能力與識別服務能力需要分別判斷。
讀取目前原生產品參數 → 識別 → 回填規定的 Token 欄位或回呼,或按契約成組替換或提交匹配的挑戰標識與證明或答案 → 正常提交 → 檢查目標驗證及業務結果。僅替換圖片不等於完成接入。
BROWSER_INTERACTION目前挑戰符合所選圖片產品,瀏覽器工具可以取得正確圖片,並執行所需點擊、旋轉或拖曳。
取得目前挑戰及原始題目 → 識別 → 將答案映射到目前圖片 → 執行互動 → 檢查換圖或下一輪挑戰 → 確認目標結果。
識別成功 → 目標驗證通過 → 業務完成
| 失敗編碼 | 下一步 |
|---|---|
INVALID_INPUT | READ_PRODUCT_SCHEMA補齊或修正參數;不要原樣重試錯誤參數或切換 GRID。 |
TRANSPORT_OR_WAF | INSPECT_REQUEST_CHAIN檢查 HTTP、網路及 WAF 回應。403 不是識別結果;不確定是否送達時,用相同 requestId 和參數重試。 |
TASK_EXPIRED | RECAPTURE_CHALLENGE檢查目前挑戰及有效期,確認仍有需要後再建立新付費任務。 |
PROVIDER_INPUT_INVALID | READ_PRODUCT_SCHEMA上游拒絕參數,檢查產品選擇、目前參數及題目。 |
PROVIDER_UNSOLVABLE | INSPECT_CHALLENGE先檢查圖片品質、題目及挑戰是否仍有效,再決定是否付費重試。 |
PROVIDER_UNAVAILABLE | RETRY_LATER服務可用性問題,不要僅因此更換驗證碼產品。 |
TASK_FAILED | INSPECT_CHALLENGE暫無明確公開原因。回報任務 ID 並檢查上下文;不能宣稱目標拒絕或推斷產品不支援。 |
TARGET_REJECTED | CHECK_BINDING_AND_EXPIRY由呼叫方觀察,不能從識別狀態推斷。檢查目標回應、挑戰關聯及有效期。 |
BROWSER_APPLICATION_UNSUPPORTED | CHANGE_EXECUTION_ENVIRONMENT瀏覽器無法使用結果,應回報執行能力限制,不能判定識別產品不可用。 |
01 / AUTHENTICATION
建立與查詢任務時,將 API Key 統一放在 HTTP apiKey 請求標頭中;JSON 請求本文只包含業務參數。
| 請求標頭 | 類型 | 必填 | 說明 |
|---|---|---|---|
apiKey | string | 是 | 建立、查詢任務必填;公開產品目錄無需驗證。不要放入 JSON 請求本文或 URL。 |
Content-Type | string | 是 | application/json |
Accept-Language | string | 否 | zh-CN、zh-TW 或 en-US,支援 q 權重;未傳時使用請求標頭 API Key 對應使用者的設定語言。 |
Content-Type: application/json apiKey: YOUR_API_KEY Accept-Language: zh-TW
成功與錯誤訊息優先使用 Accept-Language 請求標頭;未傳或為空時使用請求標頭 API Key 對應使用者的語言設定,無法識別使用者或語言不受支援時使用 en-US。X-Language、URL lang 及 X-I18n-Cache 不覆寫 OpenAPI 回應;狀態、產品編碼與識別答案保持原值。
PRODUCT SCHEMA / DISCOVERY
/api/product/schema.cgi?productCode=GRID免費公開介面,與 MCP get_product_schema 共用定義。先查詢啟用產品目錄,再依產品編碼取得參數模型、範例、結果契約與接入流程。查詢不會建立任務或扣款。
GET /api/product/schema.cgi?productCode=GRID Accept-Language: zh-TW
{
"code" : 0,
"msg" : "操作成功",
"data" : {
"productCode" : "GRID",
"schema" : {
"type" : "object",
"description" : "GRID input parameters. Read x-integration before creating a paid task. Fallback only when the matching native route is confirmed unavailable; latency and multiple rounds may exceed the target challenge deadline.",
"required" : [ "body" ],
"properties" : {
"body" : {
"type" : "string",
"description" : "圖片內容或任務主體;按產品要求傳入 Base64 或文本。",
"minLength" : 1
},
"comment" : {
"type" : "string",
"description" : "提交給人工識別者的說明。",
"minLength" : 1,
"examples" : [ "Select all images containing stairs." ]
},
"rows" : {
"type" : "integer",
"description" : "提交的目前網格實際行數。",
"minimum" : 1,
"examples" : [ 3 ]
},
"columns" : {
"type" : "integer",
"description" : "提交的目前網格實際列數。",
"minimum" : 1,
"examples" : [ 3 ]
},
"imgInstructions" : {
"type" : "string",
"description" : "可選的 Base64 題目圖片,最多 100 kB;comment 與 imgInstructions 至少一個,使用 imgType 時必須提供英文原始題目和原始圖像檔案。",
"minLength" : 1,
"examples" : [ "BASE64_INSTRUCTION_IMAGE" ]
},
"imgType" : {
"type" : "string",
"description" : "可選上游電腦視覺模式:recaptcha 或 funcaptcha;不能把通用或自訂圖片冒稱為這些產品,必須提供英文原始題目和原始圖像檔案。",
"enum" : [ "recaptcha", "funcaptcha" ],
"minLength" : 1,
"examples" : [ "recaptcha" ]
},
"previousId" : {
"type" : "string",
"description" : "可選的同一持續挑戰上游任務 ID,僅已知時提供;不是 Nex Captcha 平台 UUID,未取得上游 ID 時省略。不能關聯其他或過期挑戰。",
"minLength" : 1,
"pattern" : "^[0-9]+$",
"examples" : [ "123456789" ]
},
"minClicks" : {
"type" : "integer",
"description" : "可選 minClicks 邊界,指定行列時不能超過 rows*columns,minClicks 不能大於 maxClicks。",
"minimum" : 0,
"examples" : [ 1 ]
},
"maxClicks" : {
"type" : "integer",
"description" : "可選 maxClicks 邊界,指定行列時不能超過 rows*columns,minClicks 不能大於 maxClicks。",
"minimum" : 0,
"examples" : [ 9 ]
},
"canNoAnswer" : {
"type" : "integer",
"description" : "0 或 1,僅實際題目允許沒有匹配圖片時設為 1,不用於掩蓋識別失敗。",
"enum" : [ 0, 1 ],
"examples" : [ 0 ]
}
},
"additionalProperties" : false,
"anyOf" : [ {
"required" : [ "comment" ]
}, {
"required" : [ "imgInstructions" ]
} ],
"allOf" : [ {
"if" : {
"required" : [ "imgType" ]
},
"then" : {
"required" : [ "comment" ]
}
} ]
},
"example" : {
"body" : "BASE64_CONTENT",
"comment" : "Select all images containing stairs."
},
"integration" : {
"workflows" : [ "BROWSER_INTERACTION" ],
"readiness" : "CONDITIONAL",
"resultKind" : "GRID_CELLS",
"resultGuide" : "僅確認匹配原生路徑不可用後作為備選。solution.click 是逐行排列的 1 起始格子編號,須使用目前未變化圖片及題目,逐輪確認後續挑戰。可選行列、題目圖片及識別設定不會把結果變成原生 hCaptcha/reCAPTCHA Token。previousId 已知時使用上游 ID,不是平台 UUID;不保證固定耗時或目標接受。",
"requirements" : [ "GRID 僅作為備選:沒有可用的匹配原生產品或接入方式,或經排查確認原生方案不適用於目前挑戰時,才考慮使用。先檢查參數、會話綁定及有效期;HTTP 403、逾時或參數錯誤本身不能作為切換依據。仍須取得真實的目前網格圖片、原始題目及瀏覽器互動能力;條件不足時停止並回報阻塞。", "GRID 的取圖、識別排隊與處理、輪詢及瀏覽器點擊會增加端到端耗時;動態換圖和多輪挑戰還會增加操作。耗時可能超過目標挑戰的有效期,不宜作為時效敏感流程的預設方案,不保證固定識別時長或目標接受結果。接近識別時再取圖,套用前再次檢查新鮮度;挑戰過期或圖片變化後捨棄舊答案,不重用過期答案或自動建立新付費任務。", "從同一目標及目前挑戰取得新鮮參數。遵守具體產品的網域、動作、挑戰或會話、IP、User-Agent 及有效期要求,不假設結果可以通用。回傳 Cookie 僅用於對應網域。", "範例使用佔位值,不是可直接執行的挑戰。已說明結果欄位不代表目標驗證已通過,也不代表完成了即時可用性測試。不要提交未支援的欄位。" ],
"inputSources" : {
"body" : "按欄位格式從目標取得目前挑戰素材。圖片須保持原圖尺寸及順序;截圖只截挑戰區域,不能截無關頁面。AUDIO 使用實際音訊內容。",
"comment" : "使用目前挑戰的真實題目,不追加「回傳座標」等給 AI 的指令。依賴題意的任務不能省略此欄位。",
"rows" : "提交的目前網格實際行數。",
"columns" : "提交的目前網格實際列數。",
"imgInstructions" : "可選的 Base64 題目圖片,最多 100 kB;comment 與 imgInstructions 至少一個,使用 imgType 時必須提供英文原始題目和原始圖像檔案。",
"imgType" : "可選上游電腦視覺模式:recaptcha 或 funcaptcha;不能把通用或自訂圖片冒稱為這些產品,必須提供英文原始題目和原始圖像檔案。",
"previousId" : "可選的同一持續挑戰上游任務 ID,僅已知時提供;不是 Nex Captcha 平台 UUID,未取得上游 ID 時省略。不能關聯其他或過期挑戰。",
"minClicks" : "可選 minClicks 邊界,指定行列時不能超過 rows*columns,minClicks 不能大於 maxClicks。",
"maxClicks" : "可選 maxClicks 邊界,指定行列時不能超過 rows*columns,minClicks 不能大於 maxClicks。",
"canNoAnswer" : "0 或 1,僅實際題目允許沒有匹配圖片時設為 1,不用於掩蓋識別失敗。"
},
"resultContract" : "DOCUMENTED_FIELDS",
"targetAcceptanceVerified" : false,
"indexBase" : 1,
"order" : "ROW_MAJOR",
"resultSchema" : {
"type" : "object",
"properties" : {
"click" : {
"type" : "array",
"items" : {
"type" : "integer"
}
}
},
"additionalProperties" : true
}
},
"workflowGuide" : {
"title" : "選擇接入流程",
"rules" : [ "優先使用與實際挑戰匹配的原生驗證碼產品,不預設使用通用 GRID。先確認產品及版本並讀取模型和指引;目標允許時選 HTTP_SUBMIT,否則在瀏覽器支援回填原生結果時選 BROWSER_RESULT。頁面出現圖片網格不代表產品就是 GRID。取得真實參數;缺少參數時回報阻塞,不能猜測。", "按目標整合使用原生結果:回填規定的 Token 回應欄位或回呼;產品回傳挑戰標識與證明或答案欄位時,按契約成組替換或提交。保持目標會話及綁定條件,不混用新舊挑戰欄位,不僅替換圖片,也不假設識別服務能產生任意可移植的驗證碼與答案。", "GRID 僅作為備選:沒有可用的匹配原生產品或接入方式,或經排查確認原生方案不適用於目前挑戰時,才考慮使用。先檢查參數、會話綁定及有效期;HTTP 403、逾時或參數錯誤本身不能作為切換依據。仍須取得真實的目前網格圖片、原始題目及瀏覽器互動能力;條件不足時停止並回報阻塞。", "GRID 的取圖、識別排隊與處理、輪詢及瀏覽器點擊會增加端到端耗時;動態換圖和多輪挑戰還會增加操作。耗時可能超過目標挑戰的有效期,不宜作為時效敏感流程的預設方案,不保證固定識別時長或目標接受結果。接近識別時再取圖,套用前再次檢查新鮮度;挑戰過期或圖片變化後捨棄舊答案,不重用過期答案或自動建立新付費任務。", "使用目標網站發出的挑戰及接入參數。識別服務不提供可任意轉移的驗證碼與答案;替換控件或圖片不會替換伺服器挑戰。", "MCP 同一次建立重試須重用 requestId 和完全相同的參數。挑戰變化屬於新任務,需新 requestId 並再次計費。按 nextPollAfterSeconds 查詢,不要用建立任務代替輪詢。REST 建立請求本文沒有 requestId 欄位。", "範例使用佔位值,不是可直接執行的挑戰。已說明結果欄位不代表目標驗證已通過,也不代表完成了即時可用性測試。不要提交未支援的欄位。", "SUCCEEDED 僅表示已取得識別結果;還需分別確認目標網站接受驗證、目標業務操作成功。識別服務無法觀察這兩個結果。", "hCaptcha 使用已啟用的原生 HCAPTCHA,再讀取參數模型;目前目錄中不存在時回報未開放。不要因看到核取方塊或圖片網格就替換成 RECAPTCHA_V2、IMPERVA、CUSTOM 或 GRID;付費前核對原生契約是否涵蓋目標所需上下文。" ],
"workflows" : [ {
"id" : "HTTP_SUBMIT",
"title" : "純 HTTP 提交",
"precondition" : "目標業務及驗證提交能透過 HTTP 完成,且能保持必要會話條件。有識別 API 不代表整個網站支援純 HTTP 操作。",
"steps" : "取得目標挑戰與參數 → 建立並查詢對應識別任務 → 隨目標請求提交結果 → 檢查驗證及業務結果。"
}, {
"id" : "BROWSER_RESULT",
"title" : "瀏覽器套用識別結果",
"precondition" : "瀏覽器工具能讀取目前接入參數,並按目標整合方式使用該產品結果。瀏覽器執行能力與識別服務能力需要分別判斷。",
"steps" : "讀取目前原生產品參數 → 識別 → 回填規定的 Token 欄位或回呼,或按契約成組替換或提交匹配的挑戰標識與證明或答案 → 正常提交 → 檢查目標驗證及業務結果。僅替換圖片不等於完成接入。"
}, {
"id" : "BROWSER_INTERACTION",
"title" : "瀏覽器圖片互動",
"precondition" : "目前挑戰符合所選圖片產品,瀏覽器工具可以取得正確圖片,並執行所需點擊、旋轉或拖曳。",
"steps" : "取得目前挑戰及原始題目 → 識別 → 將答案映射到目前圖片 → 執行互動 → 檢查換圖或下一輪挑戰 → 確認目標結果。"
} ],
"completionStages" : [ "SOLVER_SUCCEEDED", "CHALLENGE_ACCEPTED", "BUSINESS_COMPLETED" ],
"stageNote" : "SUCCEEDED 僅表示已取得識別結果;還需分別確認目標網站接受驗證、目標業務操作成功。識別服務無法觀察這兩個結果。",
"failures" : [ {
"code" : "INVALID_INPUT",
"nextAction" : "READ_PRODUCT_SCHEMA",
"description" : "補齊或修正參數;不要原樣重試錯誤參數或切換 GRID。"
}, {
"code" : "TRANSPORT_OR_WAF",
"nextAction" : "INSPECT_REQUEST_CHAIN",
"description" : "檢查 HTTP、網路及 WAF 回應。403 不是識別結果;不確定是否送達時,用相同 requestId 和參數重試。"
}, {
"code" : "TASK_EXPIRED",
"nextAction" : "RECAPTURE_CHALLENGE",
"description" : "檢查目前挑戰及有效期,確認仍有需要後再建立新付費任務。"
}, {
"code" : "PROVIDER_INPUT_INVALID",
"nextAction" : "READ_PRODUCT_SCHEMA",
"description" : "上游拒絕參數,檢查產品選擇、目前參數及題目。"
}, {
"code" : "PROVIDER_UNSOLVABLE",
"nextAction" : "INSPECT_CHALLENGE",
"description" : "先檢查圖片品質、題目及挑戰是否仍有效,再決定是否付費重試。"
}, {
"code" : "PROVIDER_UNAVAILABLE",
"nextAction" : "RETRY_LATER",
"description" : "服務可用性問題,不要僅因此更換驗證碼產品。"
}, {
"code" : "TASK_FAILED",
"nextAction" : "INSPECT_CHALLENGE",
"description" : "暫無明確公開原因。回報任務 ID 並檢查上下文;不能宣稱目標拒絕或推斷產品不支援。"
}, {
"code" : "TARGET_REJECTED",
"nextAction" : "CHECK_BINDING_AND_EXPIRY",
"description" : "由呼叫方觀察,不能從識別狀態推斷。檢查目標回應、挑戰關聯及有效期。"
}, {
"code" : "BROWSER_APPLICATION_UNSUPPORTED",
"nextAction" : "CHANGE_EXECUTION_ENVIRONMENT",
"description" : "瀏覽器無法使用結果,應回報執行能力限制,不能判定識別產品不可用。"
} ],
"labels" : {
"result" : "結果及使用方法",
"requirements" : "前提條件",
"sources" : "參數來源",
"workflow" : "有條件支援的流程",
"unknown" : "接入契約尚未明確",
"failure" : "失敗處理",
"stages" : "識別成功 → 目標驗證通過 → 業務完成",
"field" : "欄位",
"failureCode" : "失敗編碼",
"failureObject" : "僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。",
"action" : "下一步"
}
}
}
}| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 必填,來自產品目錄的正確產品編碼,區分大小寫。無需請求本文;API Key 僅可放在請求標頭,用於未傳 Accept-Language 時讀取使用者語言。 |
| 字段 | 類型 | 說明 |
|---|---|---|
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.schema | object | 僅驗證 adapter 的 JSON Schema,包含必填、條件分支、型別與取值限制。 |
data.example | object | 最小參數預留範例;必須替換為目前挑戰的真實內容。 |
data.integration | object | 目前產品的輸入來源、適用流程、結果 Schema、使用說明與限制。 |
data.workflowGuide | object | 通用串接流程、完成階段與失敗處理。 |
HTTP 業務響應包含 code、msg 和 data;code 爲 0 表示成功。WebSocket 使用獨立的消息結構。
訊息與接入說明依 Accept-Language、請求標頭對應使用者語言、en-US 的順序選擇。參數名稱、列舉、Schema 原始描述與範例值不隨語言變更。支援 required、oneOf 等約束,不能只驗證必填欄位。
業務回應須檢查 code:0 成功,-1101 缺少編碼,-1100 編碼無效,-1008 產品不存在或已停用。錯誤時 data 為 null。DOCUMENTATION_REQUIRED 表示應先補齊文件,不要自動建立付費任務。
完整串接文件02 / CREATE TASK
/api/validator/create.cgi
按 productCode 選擇產品,adapter 填寫該產品的專屬字段。
{
"productCode": "RECAPTCHA_V2", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"websiteKey": "YOUR_WEBSITEKEY", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"pageAction": "YOUR_PAGEACTION", // 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。
"apiDomain": "YOUR_APIDOMAIN", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"isEnterprise": false, // RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。
"minScore": 0.3, // 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。
"isInvisible": false, // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"cookies": "challenge_cookie=CURRENT_VALUE", // v2/v2 Enterprise 可選的目前挑戰 Cookie 請求標頭字串,格式為 key=value; key2=value2,取自對應目標上下文;不需要時省略。v3 不公開此欄位。
"proxyType": "http", // v2/v2 Enterprise 可選代理協定:http、socks4 或 socks5。提供任一代理欄位時,proxyType、proxyAddress、proxyPort 必須齊全;全部省略保留無代理模式。目前 v3 沒有已確認的代理任務。
"proxyAddress": "YOUR_PROXY_HOST", // 可達的代理主機名稱或 IP,不含協定、連接埠及認證資訊。目標要求 IP 綁定時,識別端與目標瀏覽器必須使用相同的實際出口;僅為瀏覽器設定代理並不足夠。
"proxyPort": 8080, // 代理 TCP 連接埠,1 至 65535 的整數;僅在提供代理參數時必填。
"proxyLogin": "YOUR_PROXYLOGIN", // 呼叫方已設定代理的可選認證使用者名稱,不要編造憑證。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一個已設定代理的可選認證密碼。
"recaptchaDataSValue": "CURRENT_DATA_S_VALUE" // 一般 reCAPTCHA v2 目前控件的可選新鮮 data-s 值,須來自同一挑戰並原樣保留;pageAction 不能代替它。Enterprise v2 使用 enterprisePayload.s。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"uuid": null, // 建立回應中的業務 UUID,未設定時為 null。
"productCode": "RECAPTCHA_V2", // 產品編碼,必須與 adapter 參數匹配。
"state": "CREATED" // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
}
}
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.websiteKey | string | 是 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.pageAction | string | 否 | 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。 |
adapter.apiDomain | string | 否 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.isEnterprise | boolean | 否 | RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。 |
adapter.minScore | number | 否 | 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。 |
adapter.userAgent | string | 否 | 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。 |
adapter.isInvisible | boolean | 否 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.cookies | string | 否 | v2/v2 Enterprise 可選的目前挑戰 Cookie 請求標頭字串,格式為 key=value; key2=value2,取自對應目標上下文;不需要時省略。v3 不公開此欄位。 |
adapter.proxyType | string | 否 | v2/v2 Enterprise 可選代理協定:http、socks4 或 socks5。提供任一代理欄位時,proxyType、proxyAddress、proxyPort 必須齊全;全部省略保留無代理模式。目前 v3 沒有已確認的代理任務。 |
adapter.proxyAddress | string | 否 | 可達的代理主機名稱或 IP,不含協定、連接埠及認證資訊。目標要求 IP 綁定時,識別端與目標瀏覽器必須使用相同的實際出口;僅為瀏覽器設定代理並不足夠。 |
adapter.proxyPort | integer | 否 | 代理 TCP 連接埠,1 至 65535 的整數;僅在提供代理參數時必填。 |
adapter.proxyLogin | string | 否 | 呼叫方已設定代理的可選認證使用者名稱,不要編造憑證。 |
adapter.proxyPassword | string | 否 | 同一個已設定代理的可選認證密碼。 |
adapter.recaptchaDataSValue | string | 否 | 一般 reCAPTCHA v2 目前控件的可選新鮮 data-s 值,須來自同一挑戰並原樣保留;pageAction 不能代替它。Enterprise v2 使用 enterprisePayload.s。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.uuid | string | null | 建立回應中的業務 UUID,未設定時為 null。 |
將 YOUR_API_HOST 替換爲部署服務地址。
03 / QUERY RESULT
/api/validator/query.cgi
使用 taskId 查詢任務;WebSocket 斷線或遺漏推送時,也可以通過此接口獲取最終結果。
{
"taskId": "11111111-1111-4111-8111-111111111111" // 創建任務返回的任務 ID。
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "RECAPTCHA_V2", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交至目標網站的驗證權杖。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
taskId | string | 是 | 創建任務返回的任務 ID。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交至目標網站的驗證權杖。 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
成功時從 data.solution 讀取第三方答案。
wss://app.nexcaptcha.net/socket/task.cgi客戶端或 MCP 宿主支援 WebSocket 時優先使用:先建立連線並等待 socket.ready,再建立任務。收到 task.updated 立即處理;僅在無法連線、斷線或遺漏訊息時使用 REST query.cgi 或 MCP get_task 備援。
使用同一服務端口連接 /socket/task.cgi。連接後發送心跳;任務狀態變更和最終結果將自動推送。
WebSocket 的 API Key 只能放在握手請求標頭中,不能放入 URL 參數。獨立客戶端使用 apiKey 請求標頭;瀏覽器使用登入 Cookie,只有 API Key 時透過帶請求標頭的 REST 查詢取得結果,因為原生 WebSocket 無法設定自訂標頭。推送只屬於目前驗證使用者。
HTTPS 環境使用 WSS。斷線後退避重連;連線會重播最近 20 條終態任務,不提供完整事件歷史。遺漏的 taskId 以 query.cgi 或 get_task 復原。憑證缺失、無效、撤銷或過期時以 4003 關閉;閒置或不可靠連線以 4500 關閉。
API、MCP 等入口建立的任務,每次狀態變更提交成功後都會推送給該驗證帳戶。成功時讀取 result,失敗時讀取 failure.code 和 nextAction。每 20 秒傳送心跳並確認 heartbeat.ack;超過 35 秒無心跳後,由每 10 秒執行的檢查中斷連線。斷線後退避重連,不要因斷線重建收費任務。依 taskId 冪等處理,已收到終態後忽略更舊或重播的訊息。
容器依使用者 ID 綁定每個執行個體上的目前單一連線;新連線以 4009 替換舊連線。同帳戶的多個接入者應由宿主共用訂閱,被替換端應停止自動重連。執行個體最多 256 條連線;收到 1013 時請退避重試。慢客戶端積壓超過 64 條訊息或 256 KiB UTF-8 資料時,以 4500 中斷,遺漏的 taskId 請透過查詢復原。單條訊息上限為 256 KiB。
apiKey: YOUR_API_KEY socket.ready → create.cgi → task.updated task.taskId = create.cgi data.taskId
{"type":"socket.ready","replayLimit":20,"heartbeatSeconds":20}
{"type":"heartbeat"}
{"type":"heartbeat.ack"}
{
"type": "task.updated",
"userId": 123,
"replay": false,
"task": {
"taskId": "11111111-1111-4111-8111-111111111111",
"uuid": "11111111-1111-4111-8111-111111111111",
"state": "SUCCEEDED",
"updatedAt": "2026-10-04 12:00:00"
},
"product": {
"productCode": "TEXT",
"name": "Text Captcha",
"description": "Text question"
},
"result": {
"text": "4"
}
}
下載示例:瀏覽器 JavaScript、Python、Java 21
JavaScript · Python · Java 21
04 / RESPONSES
HTTP 業務響應包含 code、msg 和 data;code 爲 0 表示成功。WebSocket 使用獨立的消息結構。
終態包括 SUCCEEDED、FAILED 和 EXPIRED。
{"code":-1317,"msg":"API Key invalid","data":null}
-1317 |
API Key 無效。 |
-1100 / -1101 |
請求參數錯誤或缺失。 |
-1005 / -1008 |
任務狀態或任務操作錯誤。 |
-1401 |
餘額不足,請儲值後再建立任務 |
-1400 / -1001 |
系統或創建任務錯誤。 |
05 / PRODUCT REFERENCE
以下字段來自當前產品適配器和第三方 task type。
/api/product/list.cgiNORMAL_CAPTCHA
{
"productCode": "NORMAL_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"phrase": false, // 是否要求完整短語。
"caseSensitive": false, // 是否區分大小寫。
"numeric": false, // 是否限制爲數字。
"math": false, // 是否按數學題識別。
"minLength": 1, // 答案最小長度。
"maxLength": 1, // 答案最大長度。
"comment": "YOUR_COMMENT", // 提交給人工識別者的說明。
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // 圖片識別說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "NORMAL_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"text": "EXAMPLE_ANSWER" // 識別出的文字或文字答案。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.phrase | boolean | 否 | 是否要求完整短語。 |
adapter.caseSensitive | boolean | 否 | 是否區分大小寫。 |
adapter.numeric | boolean | 否 | 是否限制爲數字。 |
adapter.math | boolean | 否 | 是否按數學題識別。 |
adapter.minLength | integer | 否 | 答案最小長度。 |
adapter.maxLength | integer | 否 | 答案最大長度。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
adapter.imgInstructions | string | 否 | 圖片識別說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 識別出的文字或文字答案。 |
RECAPTCHA_V2
{
"productCode": "RECAPTCHA_V2", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"websiteKey": "YOUR_WEBSITEKEY", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"pageAction": "YOUR_PAGEACTION", // 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。
"apiDomain": "YOUR_APIDOMAIN", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"isEnterprise": false, // RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。
"minScore": 0.3, // 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。
"isInvisible": false, // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"cookies": "challenge_cookie=CURRENT_VALUE", // v2/v2 Enterprise 可選的目前挑戰 Cookie 請求標頭字串,格式為 key=value; key2=value2,取自對應目標上下文;不需要時省略。v3 不公開此欄位。
"proxyType": "http", // v2/v2 Enterprise 可選代理協定:http、socks4 或 socks5。提供任一代理欄位時,proxyType、proxyAddress、proxyPort 必須齊全;全部省略保留無代理模式。目前 v3 沒有已確認的代理任務。
"proxyAddress": "YOUR_PROXY_HOST", // 可達的代理主機名稱或 IP,不含協定、連接埠及認證資訊。目標要求 IP 綁定時,識別端與目標瀏覽器必須使用相同的實際出口;僅為瀏覽器設定代理並不足夠。
"proxyPort": 8080, // 代理 TCP 連接埠,1 至 65535 的整數;僅在提供代理參數時必填。
"proxyLogin": "YOUR_PROXYLOGIN", // 呼叫方已設定代理的可選認證使用者名稱,不要編造憑證。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一個已設定代理的可選認證密碼。
"recaptchaDataSValue": "CURRENT_DATA_S_VALUE" // 一般 reCAPTCHA v2 目前控件的可選新鮮 data-s 值,須來自同一挑戰並原樣保留;pageAction 不能代替它。Enterprise v2 使用 enterprisePayload.s。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "RECAPTCHA_V2", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交至目標網站的驗證權杖。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.websiteKey | string | 是 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.pageAction | string | 否 | 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。 |
adapter.apiDomain | string | 否 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.isEnterprise | boolean | 否 | RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。 |
adapter.minScore | number | 否 | 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。 |
adapter.userAgent | string | 否 | 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。 |
adapter.isInvisible | boolean | 否 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.cookies | string | 否 | v2/v2 Enterprise 可選的目前挑戰 Cookie 請求標頭字串,格式為 key=value; key2=value2,取自對應目標上下文;不需要時省略。v3 不公開此欄位。 |
adapter.proxyType | string | 否 | v2/v2 Enterprise 可選代理協定:http、socks4 或 socks5。提供任一代理欄位時,proxyType、proxyAddress、proxyPort 必須齊全;全部省略保留無代理模式。目前 v3 沒有已確認的代理任務。 |
adapter.proxyAddress | string | 否 | 可達的代理主機名稱或 IP,不含協定、連接埠及認證資訊。目標要求 IP 綁定時,識別端與目標瀏覽器必須使用相同的實際出口;僅為瀏覽器設定代理並不足夠。 |
adapter.proxyPort | integer | 否 | 代理 TCP 連接埠,1 至 65535 的整數;僅在提供代理參數時必填。 |
adapter.proxyLogin | string | 否 | 呼叫方已設定代理的可選認證使用者名稱,不要編造憑證。 |
adapter.proxyPassword | string | 否 | 同一個已設定代理的可選認證密碼。 |
adapter.recaptchaDataSValue | string | 否 | 一般 reCAPTCHA v2 目前控件的可選新鮮 data-s 值,須來自同一挑戰並原樣保留;pageAction 不能代替它。Enterprise v2 使用 enterprisePayload.s。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交至目標網站的驗證權杖。 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
RECAPTCHA_V3
{
"productCode": "RECAPTCHA_V3", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"websiteKey": "YOUR_WEBSITEKEY", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"pageAction": "YOUR_PAGEACTION", // 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。
"apiDomain": "YOUR_APIDOMAIN", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"isEnterprise": false, // RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。
"minScore": 0.3, // 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。
"userAgent": "YOUR_BROWSER_USER_AGENT" // 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "RECAPTCHA_V3", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交至目標網站的驗證權杖。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.websiteKey | string | 是 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.pageAction | string | 否 | 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。 |
adapter.apiDomain | string | 否 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.isEnterprise | boolean | 否 | RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。 |
adapter.minScore | number | 是 | 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。 |
adapter.userAgent | string | 否 | 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交至目標網站的驗證權杖。 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
RECAPTCHA_V2_ENTERPRISE
{
"productCode": "RECAPTCHA_V2_ENTERPRISE", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"websiteKey": "YOUR_WEBSITEKEY", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"pageAction": "YOUR_PAGEACTION", // 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。
"apiDomain": "YOUR_APIDOMAIN", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"isEnterprise": false, // RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。
"minScore": 0.3, // 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。
"isInvisible": false, // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"cookies": "challenge_cookie=CURRENT_VALUE", // v2/v2 Enterprise 可選的目前挑戰 Cookie 請求標頭字串,格式為 key=value; key2=value2,取自對應目標上下文;不需要時省略。v3 不公開此欄位。
"proxyType": "http", // v2/v2 Enterprise 可選代理協定:http、socks4 或 socks5。提供任一代理欄位時,proxyType、proxyAddress、proxyPort 必須齊全;全部省略保留無代理模式。目前 v3 沒有已確認的代理任務。
"proxyAddress": "YOUR_PROXY_HOST", // 可達的代理主機名稱或 IP,不含協定、連接埠及認證資訊。目標要求 IP 綁定時,識別端與目標瀏覽器必須使用相同的實際出口;僅為瀏覽器設定代理並不足夠。
"proxyPort": 8080, // 代理 TCP 連接埠,1 至 65535 的整數;僅在提供代理參數時必填。
"proxyLogin": "YOUR_PROXYLOGIN", // 呼叫方已設定代理的可選認證使用者名稱,不要編造憑證。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一個已設定代理的可選認證密碼。
"enterprisePayload": { // 目前 grecaptcha.enterprise.render 設定的可選附加 JSON 物件,存在 s 字串時一併攜帶,保持與挑戰匹配。Enterprise v2 不使用 recaptchaDataSValue;此欄位不是已確認的 v3 參數。
"s": "CURRENT_ENTERPRISE_S_VALUE"
}
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "RECAPTCHA_V2_ENTERPRISE", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交至目標網站的驗證權杖。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.websiteKey | string | 是 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.pageAction | string | 否 | 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。 |
adapter.apiDomain | string | 否 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.isEnterprise | boolean | 否 | RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。 |
adapter.minScore | number | 否 | 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。 |
adapter.userAgent | string | 否 | 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。 |
adapter.isInvisible | boolean | 否 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.cookies | string | 否 | v2/v2 Enterprise 可選的目前挑戰 Cookie 請求標頭字串,格式為 key=value; key2=value2,取自對應目標上下文;不需要時省略。v3 不公開此欄位。 |
adapter.proxyType | string | 否 | v2/v2 Enterprise 可選代理協定:http、socks4 或 socks5。提供任一代理欄位時,proxyType、proxyAddress、proxyPort 必須齊全;全部省略保留無代理模式。目前 v3 沒有已確認的代理任務。 |
adapter.proxyAddress | string | 否 | 可達的代理主機名稱或 IP,不含協定、連接埠及認證資訊。目標要求 IP 綁定時,識別端與目標瀏覽器必須使用相同的實際出口;僅為瀏覽器設定代理並不足夠。 |
adapter.proxyPort | integer | 否 | 代理 TCP 連接埠,1 至 65535 的整數;僅在提供代理參數時必填。 |
adapter.proxyLogin | string | 否 | 呼叫方已設定代理的可選認證使用者名稱,不要編造憑證。 |
adapter.proxyPassword | string | 否 | 同一個已設定代理的可選認證密碼。 |
adapter.enterprisePayload | object | 否 | 目前 grecaptcha.enterprise.render 設定的可選附加 JSON 物件,存在 s 字串時一併攜帶,保持與挑戰匹配。Enterprise v2 不使用 recaptchaDataSValue;此欄位不是已確認的 v3 參數。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交至目標網站的驗證權杖。 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
RECAPTCHA_V3_ENTERPRISE
{
"productCode": "RECAPTCHA_V3_ENTERPRISE", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"websiteKey": "YOUR_WEBSITEKEY", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"pageAction": "YOUR_PAGEACTION", // 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。
"apiDomain": "YOUR_APIDOMAIN", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"isEnterprise": true, // RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。
"minScore": 0.3, // 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。
"userAgent": "YOUR_BROWSER_USER_AGENT" // 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "RECAPTCHA_V3_ENTERPRISE", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交至目標網站的驗證權杖。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.websiteKey | string | 是 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.pageAction | string | 否 | 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。 |
adapter.apiDomain | string | 否 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.isEnterprise | boolean | 否 | RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。 |
adapter.minScore | number | 是 | 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。 |
adapter.userAgent | string | 否 | 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交至目標網站的驗證權杖。 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
RECAPTCHA_ENTERPRISE
{
"productCode": "RECAPTCHA_ENTERPRISE", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"websiteKey": "YOUR_WEBSITEKEY", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"pageAction": "YOUR_PAGEACTION", // 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。
"apiDomain": "YOUR_APIDOMAIN", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"isEnterprise": false, // RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。
"minScore": 0.3, // 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。
"appId": "YOUR_APPID", // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"isInvisible": false, // 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。
"cookies": "challenge_cookie=CURRENT_VALUE", // v2/v2 Enterprise 可選的目前挑戰 Cookie 請求標頭字串,格式為 key=value; key2=value2,取自對應目標上下文;不需要時省略。v3 不公開此欄位。
"proxyType": "http", // v2/v2 Enterprise 可選代理協定:http、socks4 或 socks5。提供任一代理欄位時,proxyType、proxyAddress、proxyPort 必須齊全;全部省略保留無代理模式。目前 v3 沒有已確認的代理任務。
"proxyAddress": "YOUR_PROXY_HOST", // 可達的代理主機名稱或 IP,不含協定、連接埠及認證資訊。目標要求 IP 綁定時,識別端與目標瀏覽器必須使用相同的實際出口;僅為瀏覽器設定代理並不足夠。
"proxyPort": 8080, // 代理 TCP 連接埠,1 至 65535 的整數;僅在提供代理參數時必填。
"proxyLogin": "YOUR_PROXYLOGIN", // 呼叫方已設定代理的可選認證使用者名稱,不要編造憑證。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一個已設定代理的可選認證密碼。
"enterprisePayload": { // 目前 grecaptcha.enterprise.render 設定的可選附加 JSON 物件,存在 s 字串時一併攜帶,保持與挑戰匹配。Enterprise v2 不使用 recaptchaDataSValue;此欄位不是已確認的 v3 參數。
"s": "CURRENT_ENTERPRISE_S_VALUE"
}
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "RECAPTCHA_ENTERPRISE", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"gRecaptchaResponse": "EXAMPLE_GRECAPTCHARESPONSE", // 提交至目標網站的驗證權杖。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.websiteKey | string | 是 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.pageAction | string | 否 | 取自目標 execute 設定的實際 v3 動作。v2 為歷史相容保留此欄位,但它不能替代 data-s 或 enterprisePayload.s,也不能用於選擇產品版本。 |
adapter.apiDomain | string | 否 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.isEnterprise | boolean | 否 | RECAPTCHA_V3_ENTERPRISE 上游標記始終為 true,舊請求傳 false 也不會降級;RECAPTCHA_V3 保持原有選填標記行為。Enterprise 控件應選明確的 v2 Enterprise 產品,此標記不能補足會話參數。 |
adapter.minScore | number | 否 | 根據實際題目及產品欄位含義設定。這些是識別選項,不能隨意猜測來修復失敗請求。 |
adapter.userAgent | string | 否 | 讀取取得目前挑戰時實際使用的 User-Agent;產品要求一致時保持不變。 |
adapter.appId | string | 否 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.isInvisible | boolean | 否 | 從實際目標頁面、控件設定或接入協定讀取,確認具體產品與版本;不能替換為佔位值或其他網站的 key。 |
adapter.cookies | string | 否 | v2/v2 Enterprise 可選的目前挑戰 Cookie 請求標頭字串,格式為 key=value; key2=value2,取自對應目標上下文;不需要時省略。v3 不公開此欄位。 |
adapter.proxyType | string | 否 | v2/v2 Enterprise 可選代理協定:http、socks4 或 socks5。提供任一代理欄位時,proxyType、proxyAddress、proxyPort 必須齊全;全部省略保留無代理模式。目前 v3 沒有已確認的代理任務。 |
adapter.proxyAddress | string | 否 | 可達的代理主機名稱或 IP,不含協定、連接埠及認證資訊。目標要求 IP 綁定時,識別端與目標瀏覽器必須使用相同的實際出口;僅為瀏覽器設定代理並不足夠。 |
adapter.proxyPort | integer | 否 | 代理 TCP 連接埠,1 至 65535 的整數;僅在提供代理參數時必填。 |
adapter.proxyLogin | string | 否 | 呼叫方已設定代理的可選認證使用者名稱,不要編造憑證。 |
adapter.proxyPassword | string | 否 | 同一個已設定代理的可選認證密碼。 |
adapter.enterprisePayload | object | 否 | 目前 grecaptcha.enterprise.render 設定的可選附加 JSON 物件,存在 s 字串時一併攜帶,保持與挑戰匹配。Enterprise v2 不使用 recaptchaDataSValue;此欄位不是已確認的 v3 參數。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交至目標網站的驗證權杖。 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
CLOUDFLARE_TURNSTILE
{
"productCode": "CLOUDFLARE_TURNSTILE", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 實際承載該控件的完整頁面 URL,取自同一目標會話。
"websiteKey": "YOUR_WEBSITEKEY", // 該 Turnstile 控件的實際 sitekey,不能使用其他站點的 Key。
"action": "YOUR_ACTION", // 實際 render action;整頁挑戰提供 pagedata 時必填。獨立控件也可以僅設定 action,不需要因此補 pagedata。
"data": "CURRENT_CDATA", // 實際 render cData,向上游使用 data;相容別名 cData,兩者同時提供且不同會在計費前拒絕。
"pagedata": "CURRENT_CHL_PAGE_DATA", // Cloudflare 整頁挑戰目前 render 的 chlPageData,向上游使用 pagedata;提供時 action、data 也必須齊全。不是所有獨立控件都必填。
"cData": "CURRENT_CDATA", // data 的相容別名,建議使用 data;已提供 data 時省略此別名。
"chlPageData": "CURRENT_CHL_PAGE_DATA", // pagedata 的相容別名,建議使用 pagedata;已提供 pagedata 時省略此別名。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 可選,實際瀏覽器 User-Agent。回傳的 solution.userAgent 必須保留;不能假設上游一定回傳輸入的 UA。
"proxyType": "http", // 可選代理協定:http、socks4、socks5。提供任一代理欄位時,proxyType、proxyAddress、proxyPort 必須齊全;全部省略時沿用無代理模式。
"proxyAddress": "YOUR_PROXY_HOST", // 代理主機名稱或 IP,不含協定、連接埠及認證資訊;按目標會話要求使用對應出口。
"proxyPort": 8080, // 代理 TCP 連接埠,1 至 65535 的整數,僅使用代理時必填。
"proxyLogin": "YOUR_PROXYLOGIN", // 僅該代理需要認證時提供的使用者名稱。
"proxyPassword": "YOUR_PROXYPASSWORD" // 僅該代理需要認證時提供的密碼。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "CLOUDFLARE_TURNSTILE", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN", // 提交至目標網站的驗證權杖。
"userAgent": "EXAMPLE_USERAGENT" // 取得答案時使用的瀏覽器 User-Agent。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 實際承載該控件的完整頁面 URL,取自同一目標會話。 |
adapter.websiteKey | string | 是 | 該 Turnstile 控件的實際 sitekey,不能使用其他站點的 Key。 |
adapter.action | string | 否 | 實際 render action;整頁挑戰提供 pagedata 時必填。獨立控件也可以僅設定 action,不需要因此補 pagedata。 |
adapter.data | string | 否 | 實際 render cData,向上游使用 data;相容別名 cData,兩者同時提供且不同會在計費前拒絕。 |
adapter.pagedata | string | 否 | Cloudflare 整頁挑戰目前 render 的 chlPageData,向上游使用 pagedata;提供時 action、data 也必須齊全。不是所有獨立控件都必填。 |
adapter.cData | string | 否 | data 的相容別名,建議使用 data;已提供 data 時省略此別名。 |
adapter.chlPageData | string | 否 | pagedata 的相容別名,建議使用 pagedata;已提供 pagedata 時省略此別名。 |
adapter.userAgent | string | 否 | 可選,實際瀏覽器 User-Agent。回傳的 solution.userAgent 必須保留;不能假設上游一定回傳輸入的 UA。 |
adapter.proxyType | string | 否 | 可選代理協定:http、socks4、socks5。提供任一代理欄位時,proxyType、proxyAddress、proxyPort 必須齊全;全部省略時沿用無代理模式。 |
adapter.proxyAddress | string | 否 | 代理主機名稱或 IP,不含協定、連接埠及認證資訊;按目標會話要求使用對應出口。 |
adapter.proxyPort | integer | 否 | 代理 TCP 連接埠,1 至 65535 的整數,僅使用代理時必填。 |
adapter.proxyLogin | string | 否 | 僅該代理需要認證時提供的使用者名稱。 |
adapter.proxyPassword | string | 否 | 僅該代理需要認證時提供的密碼。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
data.solution.userAgent | string | 取得答案時使用的瀏覽器 User-Agent。 |
ARKOSE
{
"productCode": "ARKOSE", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websitePublicKey": "YOUR_WEBSITEPUBLICKEY", // Arkose 公鑰。
"funcaptchaApiJSSubdomain": "YOUR_FUNCAPTCHAAPIJSSUBDOMAIN", // FunCaptcha API JS 子域名。
"data": "YOUR_DATA", // 第三方驗證附加 data。
"userAgent": "YOUR_BROWSER_USER_AGENT" // 目標瀏覽器 User-Agent。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "ARKOSE", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websitePublicKey | string | 是 | Arkose 公鑰。 |
adapter.funcaptchaApiJSSubdomain | string | 否 | FunCaptcha API JS 子域名。 |
adapter.data | string | 否 | 第三方驗證附加 data。 |
adapter.userAgent | string | 否 | 目標瀏覽器 User-Agent。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
GEETEST
{
"productCode": "GEETEST", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"gt": "YOUR_GT", // 目標 initGeetest v3 整合簽發的 gt,不是 v4 的 captcha_id。不要使用示範值或其他整合識別碼。
"challenge": "YOUR_CHALLENGE" // 每次新任務從目標初始化介面取得尚未使用的 v3 challenge;頁面已載入過的值對識別服務不再有效。保持對應目標會話,不重用,也不按長度推斷新鮮性。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "GEETEST", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"challenge": "EXAMPLE_CHALLENGE", // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"validate": "EXAMPLE_VALIDATE", // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"seccode": "EXAMPLE_SECCODE" // 產品回傳的答案欄位,依目標網站的驗證協定使用。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.gt | string | 是 | 目標 initGeetest v3 整合簽發的 gt,不是 v4 的 captcha_id。不要使用示範值或其他整合識別碼。 |
adapter.challenge | string | 是 | 每次新任務從目標初始化介面取得尚未使用的 v3 challenge;頁面已載入過的值對識別服務不再有效。保持對應目標會話,不重用,也不按長度推斷新鮮性。 |
adapter.apiServerSubdomain | string | 否 | 可選的 v3 GeeTest API 主機名稱,取自目標設定,例如 api-na.geetest.com。未設定或不確定時省略,不要提交 YOUR_* 佔位值;現有公開欄位名稱保持不變。 |
adapter.userAgent | string | 否 | 目標瀏覽器 User-Agent。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.challenge | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.validate | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.seccode | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
GEETEST_V4
{
"productCode": "GEETEST_V4", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"captchaId": "YOUR_CAPTCHAID" // 使用目標 initGeetest4 設定中的 captcha_id,不是 v3 整合的 gt 或 challenge。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "GEETEST_V4", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"captcha_id": "EXAMPLE_CAPTCHA_ID", // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"lot_number": "EXAMPLE_LOT_NUMBER", // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"pass_token": "EXAMPLE_PASS_TOKEN", // 提交至目標網站的驗證權杖。
"gen_time": "EXAMPLE_GEN_TIME", // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"captcha_output": "EXAMPLE_CAPTCHA_OUTPUT" // 產品回傳的答案欄位,依目標網站的驗證協定使用。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.captchaId | string | 是 | 使用目標 initGeetest4 設定中的 captcha_id,不是 v3 整合的 gt 或 challenge。 |
adapter.userAgent | string | 否 | 目標瀏覽器 User-Agent。 |
adapter.riskType | string | 否 | 可選的目標實際 GeeTest v4 risk_type,與 captcha_id 一起傳送到上游 initParameters;不改變產品版本。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.captcha_id | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.lot_number | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.pass_token | string | 提交至目標網站的驗證權杖。 |
data.solution.gen_time | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.captcha_output | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
CAPY_PUZZLE
{
"productCode": "CAPY_PUZZLE", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目標站點的 CAPTCHA site key。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 目標瀏覽器 User-Agent。
"proxyType": "http", // 代理類型,例如 http、socks4 或 socks5。 使用自有代理時必填;不傳代理則使用上游代理池。
"proxyAddress": "YOUR_PROXY_HOST", // 代理主機或 IP 地址。 使用自有代理時必填;不傳代理則使用上游代理池。
"proxyPort": 8080, // 代理端口。 使用自有代理時必填;不傳代理則使用上游代理池。
"proxyLogin": "YOUR_PROXYLOGIN", // 代理用戶名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 代理密碼。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "CAPY_PUZZLE", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"captchakey": "EXAMPLE_CAPTCHAKEY", // 提交至目標網站的驗證權杖。
"challengekey": "EXAMPLE_CHALLENGEKEY", // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"answer": "EXAMPLE_ANSWER", // 識別出的文字或文字答案。
"respKey": "EXAMPLE_RESPKEY" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 是 | 目標站點的 CAPTCHA site key。 |
adapter.userAgent | string | 否 | 目標瀏覽器 User-Agent。 |
adapter.proxyType | string | 否 | 代理類型,例如 http、socks4 或 socks5。 使用自有代理時必填;不傳代理則使用上游代理池。 |
adapter.proxyAddress | string | 否 | 代理主機或 IP 地址。 使用自有代理時必填;不傳代理則使用上游代理池。 |
adapter.proxyPort | integer | 否 | 代理端口。 使用自有代理時必填;不傳代理則使用上游代理池。 |
adapter.proxyLogin | string | 否 | 代理用戶名。 |
adapter.proxyPassword | string | 否 | 代理密碼。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.captchakey | string | 提交至目標網站的驗證權杖。 |
data.solution.challengekey | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.answer | string | 識別出的文字或文字答案。 |
data.solution.respKey | string | 提交至目標網站的驗證權杖。 |
KEYCAPTCHA
{
"productCode": "KEYCAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"s_s_c_user_id": 184015, // KeyCAPTCHA 用戶 ID。
"s_s_c_session_id": "YOUR_S_S_C_SESSION_ID", // KeyCAPTCHA 會話 ID。
"s_s_c_web_server_sign": "YOUR_S_S_C_WEB_SERVER_SIGN", // KeyCAPTCHA 服務簽名。
"s_s_c_web_server_sign2": "YOUR_S_S_C_WEB_SERVER_SIGN2" // KeyCAPTCHA 服務簽名 2。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "KEYCAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.s_s_c_user_id | integer | 是 | KeyCAPTCHA 用戶 ID。 |
adapter.s_s_c_session_id | string | 是 | KeyCAPTCHA 會話 ID。 |
adapter.s_s_c_web_server_sign | string | 是 | KeyCAPTCHA 服務簽名。 |
adapter.s_s_c_web_server_sign2 | string | 是 | KeyCAPTCHA 服務簽名 2。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
LEMIN
{
"productCode": "LEMIN", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"captchaId": "YOUR_CAPTCHAID", // 驗證碼 ID。
"divId": "lemin-cropped-captcha", // 驗證碼父容器元素 ID。
"leminApiServerSubdomain": "api.leminnow.com" // 加載驗證碼的 API 域名。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "LEMIN", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"answer": "EXAMPLE_ANSWER", // 識別出的文字或文字答案。
"challenge_id": "EXAMPLE_CHALLENGE_ID" // 產品回傳的答案欄位,依目標網站的驗證協定使用。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.captchaId | string | 是 | 驗證碼 ID。 |
adapter.divId | string | 是 | 驗證碼父容器元素 ID。 |
adapter.leminApiServerSubdomain | string | 否 | 加載驗證碼的 API 域名。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.answer | string | 識別出的文字或文字答案。 |
data.solution.challenge_id | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
AMAZON
{
"productCode": "AMAZON", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目標站點的 CAPTCHA site key。
"iv": "YOUR_IV", // Amazon 驗證 IV。
"context": "YOUR_CONTEXT", // Amazon 驗證上下文。
"challengeScript": "https://aws-waf.example.com/challengeScript.js", // 取自目前 AWS WAF 挑戰的實際 challengeScript URL,不使用範例位址。
"captchaScript": "https://aws-waf.example.com/captchaScript.js", // 取自目前 AWS WAF 挑戰的實際 captchaScript URL,不使用範例位址。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目標會話的實際瀏覽器 User-Agent。
"proxyType": "http", // 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。
"proxyLogin": "YOUR_PROXYLOGIN", // 可選代理認證使用者名稱,須與密碼成組提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可選密碼,與 proxyLogin 成組提供。
"proxyPort": 8080 // 代理 TCP 連接埠,1 至 65535 的整數。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "AMAZON", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"captcha_voucher": "EXAMPLE_CAPTCHA_VOUCHER", // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"existing_token": "EXAMPLE_EXISTING_TOKEN" // 產品回傳的答案欄位,依目標網站的驗證協定使用。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 條件必填 | 目標站點的 CAPTCHA site key。 |
adapter.iv | string | 條件必填 | Amazon 驗證 IV。 |
adapter.context | string | 條件必填 | Amazon 驗證上下文。 |
adapter.challengeScript | string | 否 | 取自目前 AWS WAF 挑戰的實際 challengeScript URL,不使用範例位址。 |
adapter.captchaScript | string | 否 | 取自目前 AWS WAF 挑戰的實際 captchaScript URL,不使用範例位址。 |
adapter.jsapiScript | string | 條件必填 | 取自目前 AWS WAF 挑戰的實際 jsapiScript URL,不使用範例位址。 |
adapter.userAgent | string | 否 | 取自同一目標會話的實際瀏覽器 User-Agent。 |
adapter.proxyType | string | 否 | 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。 |
adapter.proxyAddress | string | 否 | 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。 |
adapter.proxyLogin | string | 否 | 可選代理認證使用者名稱,須與密碼成組提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可選密碼,與 proxyLogin 成組提供。 |
adapter.proxyPort | integer | 否 | 代理 TCP 連接埠,1 至 65535 的整數。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.captcha_voucher | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.existing_token | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
IMAGE_CAPTCHA
{
"productCode": "IMAGE_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"phrase": false, // 是否要求完整短語。
"caseSensitive": false, // 是否區分大小寫。
"numeric": false, // 是否限制爲數字。
"math": false, // 是否按數學題識別。
"minLength": 1, // 答案最小長度。
"maxLength": 1, // 答案最大長度。
"comment": "YOUR_COMMENT", // 提交給人工識別者的說明。
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // 圖片識別說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "IMAGE_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"text": "EXAMPLE_ANSWER" // 識別出的文字或文字答案。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.phrase | boolean | 否 | 是否要求完整短語。 |
adapter.caseSensitive | boolean | 否 | 是否區分大小寫。 |
adapter.numeric | boolean | 否 | 是否限制爲數字。 |
adapter.math | boolean | 否 | 是否按數學題識別。 |
adapter.minLength | integer | 否 | 答案最小長度。 |
adapter.maxLength | integer | 否 | 答案最大長度。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
adapter.imgInstructions | string | 否 | 圖片識別說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 識別出的文字或文字答案。 |
TEXT
{
"productCode": "TEXT", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"comment": "YOUR_COMMENT" // 提交給人工識別者的說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "TEXT", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"text": "EXAMPLE_ANSWER" // 識別出的文字或文字答案。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.comment | string | 是 | 提交給人工識別者的說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 識別出的文字或文字答案。 |
AUDIO
{
"productCode": "AUDIO", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"lang": "en" // 提交 MP3 的語音語言:en、fr、de、el、pt、ru;省略保持既有 en 預設值。這是素材語言,不是 API 回應語言或翻譯選項。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "AUDIO", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TRANSCRIPT" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.lang | string | 否 | 提交 MP3 的語音語言:en、fr、de、el、pt、ru;省略保持既有 en 預設值。這是素材語言,不是 API 回應語言或翻譯選項。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
ROTATE
{
"productCode": "ROTATE", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"comment": "YOUR_COMMENT" // 提交給人工識別者的說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "ROTATE", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"rotate": 180 // 旋轉角度。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.rotate | integer | 旋轉角度。 |
GRID
{
"productCode": "GRID", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"comment": "Select all images containing stairs.", // 提交給人工識別者的說明。
"rows": 3, // 提交的目前網格實際行數。
"columns": 3, // 提交的目前網格實際列數。
"imgType": "recaptcha", // 可選上游電腦視覺模式:recaptcha 或 funcaptcha;不能把通用或自訂圖片冒稱為這些產品,必須提供英文原始題目和原始圖像檔案。
"previousId": "123456789", // 可選的同一持續挑戰上游任務 ID,僅已知時提供;不是 Nex Captcha 平台 UUID,未取得上游 ID 時省略。不能關聯其他或過期挑戰。
"minClicks": 1, // 可選 minClicks 邊界,指定行列時不能超過 rows*columns,minClicks 不能大於 maxClicks。
"maxClicks": 9, // 可選 maxClicks 邊界,指定行列時不能超過 rows*columns,minClicks 不能大於 maxClicks。
"canNoAnswer": 0 // 0 或 1,僅實際題目允許沒有匹配圖片時設為 1,不用於掩蓋識別失敗。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "GRID", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"click": [ // 需要點擊的網格編號列表。
1, // 產品回傳的答案欄位,依目標網站的驗證協定使用。
5, // 產品回傳的答案欄位,依目標網站的驗證協定使用。
9 // 產品回傳的答案欄位,依目標網站的驗證協定使用。
]
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.comment | string | 條件必填 | 提交給人工識別者的說明。 |
adapter.rows | integer | 否 | 提交的目前網格實際行數。 |
adapter.columns | integer | 否 | 提交的目前網格實際列數。 |
adapter.imgInstructions | string | 條件必填 | 可選的 Base64 題目圖片,最多 100 kB;comment 與 imgInstructions 至少一個,使用 imgType 時必須提供英文原始題目和原始圖像檔案。 |
adapter.imgType | string | 否 | 可選上游電腦視覺模式:recaptcha 或 funcaptcha;不能把通用或自訂圖片冒稱為這些產品,必須提供英文原始題目和原始圖像檔案。 |
adapter.previousId | string | 否 | 可選的同一持續挑戰上游任務 ID,僅已知時提供;不是 Nex Captcha 平台 UUID,未取得上游 ID 時省略。不能關聯其他或過期挑戰。 |
adapter.minClicks | integer | 否 | 可選 minClicks 邊界,指定行列時不能超過 rows*columns,minClicks 不能大於 maxClicks。 |
adapter.maxClicks | integer | 否 | 可選 maxClicks 邊界,指定行列時不能超過 rows*columns,minClicks 不能大於 maxClicks。 |
adapter.canNoAnswer | integer | 否 | 0 或 1,僅實際題目允許沒有匹配圖片時設為 1,不用於掩蓋識別失敗。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.click | array | 需要點擊的網格編號列表。 |
data.solution.click[] | integer | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
CLICK
{
"productCode": "CLICK", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"comment": "YOUR_COMMENT" // 提交給人工識別者的說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "CLICK", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"coordinates": [ // 點擊座標列表,原點為圖片左上角。
{ // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"x": 358, // 橫座標,單位為像素。
"y": 268 // 縱座標,單位為像素。
}
]
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.coordinates | array | 點擊座標列表,原點為圖片左上角。 |
data.solution.coordinates[] | object | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.coordinates[].x | integer | 橫座標,單位為像素。 |
data.solution.coordinates[].y | integer | 縱座標,單位為像素。 |
COORDINATES
{
"productCode": "COORDINATES", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"comment": "YOUR_COMMENT" // 提交給人工識別者的說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "COORDINATES", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"coordinates": [ // 點擊座標列表,原點為圖片左上角。
{ // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"x": 358, // 橫座標,單位為像素。
"y": 268 // 縱座標,單位為像素。
}
]
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.coordinates | array | 點擊座標列表,原點為圖片左上角。 |
data.solution.coordinates[] | object | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.coordinates[].x | integer | 橫座標,單位為像素。 |
data.solution.coordinates[].y | integer | 縱座標,單位為像素。 |
DRAW_AROUND
{
"productCode": "DRAW_AROUND", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"comment": "YOUR_COMMENT" // 提交給人工識別者的說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "DRAW_AROUND", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"canvas": [ // 繪製軌跡的座標列表。
[ // 產品回傳的答案欄位,依目標網站的驗證協定使用。
{ // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"x": 20, // 橫座標,單位為像素。
"y": 30 // 縱座標,單位為像素。
},
{ // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"x": 40, // 橫座標,單位為像素。
"y": 60 // 縱座標,單位為像素。
}
]
]
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.canvas | array | 繪製軌跡的座標列表。 |
data.solution.canvas[] | array | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.canvas[][] | object | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.canvas[][].x | integer | 橫座標,單位為像素。 |
data.solution.canvas[][].y | integer | 縱座標,單位為像素。 |
DRAG_AND_DROP
{
"productCode": "DRAG_AND_DROP", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"comment": "YOUR_COMMENT", // 提交給人工識別者的說明。
"background": "BASE64_IMAGE", // 背景圖 Base64。
"images": [ // 待拖圖片 Base64,返回座標與本數組順序一致。
"BASE64_IMAGE"
]
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "DRAG_AND_DROP", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"coordinates": [ // 點擊座標列表,原點為圖片左上角。
{ // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"x": 100, // 橫座標,單位為像素。
"y": 80 // 縱座標,單位為像素。
}
]
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
adapter.background | string | 是 | 背景圖 Base64。 |
adapter.images | array | 是 | 待拖圖片 Base64,返回座標與本數組順序一致。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.coordinates | array | 點擊座標列表,原點為圖片左上角。 |
data.solution.coordinates[] | object | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.coordinates[].x | integer | 橫座標,單位為像素。 |
data.solution.coordinates[].y | integer | 縱座標,單位為像素。 |
BOUNDING_BOX
{
"productCode": "BOUNDING_BOX", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"comment": "YOUR_COMMENT" // 提交給人工識別者的說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "BOUNDING_BOX", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"bounding_boxes": [ // 目標物件的邊界框列表。
{ // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"xMin": 310, // 橫座標,單位為像素。
"xMax": 385, // 橫座標,單位為像素。
"yMin": 231, // 縱座標,單位為像素。
"yMax": 308 // 縱座標,單位為像素。
}
]
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.bounding_boxes | array | 目標物件的邊界框列表。 |
data.solution.bounding_boxes[] | object | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.bounding_boxes[].xMin | integer | 橫座標,單位為像素。 |
data.solution.bounding_boxes[].xMax | integer | 橫座標,單位為像素。 |
data.solution.bounding_boxes[].yMin | integer | 縱座標,單位為像素。 |
data.solution.bounding_boxes[].yMax | integer | 縱座標,單位為像素。 |
SLIDER_CAPTCHA
{
"productCode": "SLIDER_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 目前自訂滑塊挑戰的 JPEG、PNG 或 GIF Base64;上游也接受 data URI。保持原圖像素。上游限制:解碼後 600 kB,任一邊最多 1000 像素。這不是 GeeTest、DataDome 等廠商的 Token 識別契約。
"comment": "YOUR_COMMENT" // 可選的人工識別說明,準確描述應點擊的位置,例如匹配目標槽的中心。省略時圖片本身須含充分題意。自有測試應提供明確英文說明及已知目標點。回傳座標相對於此圖片。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "SLIDER_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"coordinates": [ // 點擊座標列表,原點為圖片左上角。
{ // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"x": 240, // 橫座標,單位為像素。
"y": 100 // 縱座標,單位為像素。
}
]
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
答案字段文檔待補充,當前示例僅展示響應外層結構。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 目前自訂滑塊挑戰的 JPEG、PNG 或 GIF Base64;上游也接受 data URI。保持原圖像素。上游限制:解碼後 600 kB,任一邊最多 1000 像素。這不是 GeeTest、DataDome 等廠商的 Token 識別契約。 |
adapter.comment | string | 否 | 可選的人工識別說明,準確描述應點擊的位置,例如匹配目標槽的中心。省略時圖片本身須含充分題意。自有測試應提供明確英文說明及已知目標點。回傳座標相對於此圖片。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.coordinates | array | 點擊座標列表,原點為圖片左上角。 |
data.solution.coordinates[] | object | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.coordinates[].x | integer | 橫座標,單位為像素。 |
data.solution.coordinates[].y | integer | 縱座標,單位為像素。 |
CYBERSIARA
{
"productCode": "CYBERSIARA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 目標瀏覽器 User-Agent。
"SlideMasterUrlId": "YOUR_SLIDEMASTERURLID" // 頁面 InitCaptcha 的 MasterUrlId,來自 GetCyberSiara 請求。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "CYBERSIARA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.userAgent | string | 是 | 目標瀏覽器 User-Agent。 |
adapter.SlideMasterUrlId | string | 是 | 頁面 InitCaptcha 的 MasterUrlId,來自 GetCyberSiara 請求。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
MTCAPTCHA
{
"productCode": "MTCAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY" // 目標站點的 CAPTCHA site key。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "MTCAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 是 | 目標站點的 CAPTCHA site key。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
DATADOME
{
"productCode": "DATADOME", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"captchaUrl": "https://example.com/captcha", // DataDome 驗證 iframe 的 URL。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 目標瀏覽器 User-Agent。
"proxyType": "http", // 代理類型,例如 http、socks4 或 socks5。
"proxyAddress": "YOUR_PROXY_HOST", // 代理主機或 IP 地址。
"proxyPort": 8080, // 代理端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 代理用戶名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 代理密碼。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "DATADOME", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"cookie": "EXAMPLE_COOKIE" // 目標網域對應的驗證 Cookie。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.captchaUrl | string | 是 | DataDome 驗證 iframe 的 URL。 |
adapter.userAgent | string | 是 | 目標瀏覽器 User-Agent。 |
adapter.proxyType | string | 是 | 代理類型,例如 http、socks4 或 socks5。 |
adapter.proxyAddress | string | 是 | 代理主機或 IP 地址。 |
adapter.proxyPort | integer | 是 | 代理端口。 |
adapter.proxyLogin | string | 否 | 代理用戶名。 |
adapter.proxyPassword | string | 否 | 代理密碼。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.cookie | string | 目標網域對應的驗證 Cookie。 |
FRIENDLY_CAPTCHA
{
"productCode": "FRIENDLY_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目標站點的 CAPTCHA site key。
"version": "YOUR_VERSION", // Friendly Captcha 版本。
"moduleScript": "YOUR_MODULESCRIPT", // Friendly Captcha module 腳本地址。
"nomoduleScript": "YOUR_NOMODULESCRIPT" // Friendly Captcha nomodule 腳本地址。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "FRIENDLY_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 是 | 目標站點的 CAPTCHA site key。 |
adapter.version | string | 否 | Friendly Captcha 版本。 |
adapter.moduleScript | string | 否 | Friendly Captcha module 腳本地址。 |
adapter.nomoduleScript | string | 否 | Friendly Captcha nomodule 腳本地址。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
CUTCAPTCHA
{
"productCode": "CUTCAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 保留以相容舊請求的歷史欄位,不向上游傳送;不能代替目前說明的產品必要參數。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目標會話的實際瀏覽器 User-Agent。
"miseryKey": "CURRENT_MISERY_KEY", // 目前目標頁面 CUTCAPTCHA_MISERY_KEY 的值。
"siteApiKey": "CURRENT_PUBLIC_SITE_API_KEY", // Cutcaptcha iframe 或腳本中的目標公開 data-apikey,向上游對應為 apiKey;這不是 Nex Captcha 鑑權 Key,平台 Key 仍只放請求標頭。
"proxyType": "http", // 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。
"proxyLogin": "YOUR_PROXYLOGIN", // 可選代理認證使用者名稱,須與密碼成組提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可選密碼,與 proxyLogin 成組提供。
"proxyPort": 8080 // 代理 TCP 連接埠,1 至 65535 的整數。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "CUTCAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 否 | 保留以相容舊請求的歷史欄位,不向上游傳送;不能代替目前說明的產品必要參數。 |
adapter.userAgent | string | 否 | 取自同一目標會話的實際瀏覽器 User-Agent。 |
adapter.miseryKey | string | 是 | 目前目標頁面 CUTCAPTCHA_MISERY_KEY 的值。 |
adapter.siteApiKey | string | 是 | Cutcaptcha iframe 或腳本中的目標公開 data-apikey,向上游對應為 apiKey;這不是 Nex Captcha 鑑權 Key,平台 Key 仍只放請求標頭。 |
adapter.proxyType | string | 否 | 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。 |
adapter.proxyAddress | string | 否 | 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。 |
adapter.proxyLogin | string | 否 | 可選代理認證使用者名稱,須與密碼成組提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可選密碼,與 proxyLogin 成組提供。 |
adapter.proxyPort | integer | 否 | 代理 TCP 連接埠,1 至 65535 的整數。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
ATBCAPTCHA
{
"productCode": "ATBCAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 保留以相容舊請求的歷史欄位,不向上游傳送;不能代替目前說明的產品必要參數。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目標會話的實際瀏覽器 User-Agent。
"appId": "CURRENT_APP_ID", // 目標 atbCAPTCHA 初始化中的實際 appId。
"apiServer": "https://captcha-api.example.com", // 同一目標控件設定中的實際 apiServer;API v2 接入需明確提供。
"proxyType": "http", // 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。
"proxyLogin": "YOUR_PROXYLOGIN", // 可選代理認證使用者名稱,須與密碼成組提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可選密碼,與 proxyLogin 成組提供。
"proxyPort": 8080 // 代理 TCP 連接埠,1 至 65535 的整數。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "ATBCAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 否 | 保留以相容舊請求的歷史欄位,不向上游傳送;不能代替目前說明的產品必要參數。 |
adapter.userAgent | string | 否 | 取自同一目標會話的實際瀏覽器 User-Agent。 |
adapter.appId | string | 是 | 目標 atbCAPTCHA 初始化中的實際 appId。 |
adapter.apiServer | string | 是 | 同一目標控件設定中的實際 apiServer;API v2 接入需明確提供。 |
adapter.proxyType | string | 否 | 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。 |
adapter.proxyAddress | string | 否 | 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。 |
adapter.proxyLogin | string | 否 | 可選代理認證使用者名稱,須與密碼成組提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可選密碼,與 proxyLogin 成組提供。 |
adapter.proxyPort | integer | 否 | 代理 TCP 連接埠,1 至 65535 的整數。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
TENCENT
{
"productCode": "TENCENT", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"appId": "YOUR_APPID", // Enterprise 應用 ID。
"captchaScript": "YOUR_CAPTCHASCRIPT", // Tencent CAPTCHA 腳本 URL。
"proxyType": "http", // 代理類型,例如 http、socks4 或 socks5。
"proxyAddress": "YOUR_PROXY_HOST", // 代理主機或 IP 地址。
"proxyPort": 8080, // 代理端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 代理用戶名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 代理密碼。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "TENCENT", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"appid": "EXAMPLE_APPID", // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"ret": 0, // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"ticket": "EXAMPLE_TICKET", // 提交至目標網站的驗證權杖。
"randstr": "EXAMPLE_RANDSTR" // 產品回傳的答案欄位,依目標網站的驗證協定使用。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.appId | string | 是 | Enterprise 應用 ID。 |
adapter.captchaScript | string | 否 | Tencent CAPTCHA 腳本 URL。 |
adapter.proxyType | string | 否 | 代理類型,例如 http、socks4 或 socks5。 |
adapter.proxyAddress | string | 否 | 代理主機或 IP 地址。 |
adapter.proxyPort | integer | 否 | 代理端口。 |
adapter.proxyLogin | string | 否 | 代理用戶名。 |
adapter.proxyPassword | string | 否 | 代理密碼。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.appid | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.ret | integer | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.ticket | string | 提交至目標網站的驗證權杖。 |
data.solution.randstr | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
PROSOPO
{
"productCode": "PROSOPO", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目標站點的 CAPTCHA site key。
"userAgent": "YOUR_BROWSER_USER_AGENT" // 目標瀏覽器 User-Agent。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "PROSOPO", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 是 | 目標站點的 CAPTCHA site key。 |
adapter.userAgent | string | 否 | 目標瀏覽器 User-Agent。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
CAPTCHAFOX
{
"productCode": "CAPTCHAFOX", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目標站點的 CAPTCHA site key。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目標會話的實際瀏覽器 User-Agent。
"proxyType": "http", // 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。
"proxyLogin": "YOUR_PROXYLOGIN", // 可選代理認證使用者名稱,須與密碼成組提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可選密碼,與 proxyLogin 成組提供。
"proxyPort": 8080, // 代理 TCP 連接埠,1 至 65535 的整數。
"apiServer": "https://cdn.captchafox.com/" // 可選,取自目標實際載入腳本的 SDK 資源前綴。普通 SDK 為 https://cdn.captchafox.com/,MAM SDK 為 https://s.uicdn.com/mampkg/@mamdev/core.frontend.libs.captchafox/。不是 api.captchafox.com 的 challenge/config HTTP API 網域;MAM 與普通 Token 不可混用。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "CAPTCHAFOX", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 是 | 目標站點的 CAPTCHA site key。 |
adapter.userAgent | string | 是 | 取自同一目標會話的實際瀏覽器 User-Agent。 |
adapter.proxyType | string | 是 | 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。 |
adapter.proxyAddress | string | 是 | 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。 |
adapter.proxyLogin | string | 否 | 可選代理認證使用者名稱,須與密碼成組提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可選密碼,與 proxyLogin 成組提供。 |
adapter.proxyPort | integer | 是 | 代理 TCP 連接埠,1 至 65535 的整數。 |
adapter.apiServer | string | 否 | 可選,取自目標實際載入腳本的 SDK 資源前綴。普通 SDK 為 https://cdn.captchafox.com/,MAM SDK 為 https://s.uicdn.com/mampkg/@mamdev/core.frontend.libs.captchafox/。不是 api.captchafox.com 的 challenge/config HTTP API 網域;MAM 與普通 Token 不可混用。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
VK_CAPTCHA
{
"productCode": "VK_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"image": "BASE64_IMAGE", // VK 旋轉驗證碼圖片的 Base64 內容。
"steps": [ // 來自同一次 VK captchaNotRobot.getContent 回應、與 image 配對的非負整數有序非空陣列,不是最大旋轉次數或角度。保持原序列。相容包含 JSON 整數陣列的舊字串並轉換為陣列;單個 "3" 無效。
5,
19,
14,
0
],
"proxyLogin": "YOUR_PROXYLOGIN", // 需要代理認證時填寫用戶名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 需要代理認證時填寫密碼。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "VK_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"best_step": 2, // 完成驗證所需的步驟或操作。
"solution": [ // 完成驗證所需的步驟或操作。
5, // 產品回傳的答案欄位,依目標網站的驗證協定使用。
19 // 產品回傳的答案欄位,依目標網站的驗證協定使用。
],
"answer": "EXAMPLE_VK_FORMATTED_ANSWER", // 識別出的文字或文字答案。
"preview": "BASE64_PREVIEW" // 產品回傳的答案欄位,依目標網站的驗證協定使用。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
答案字段文檔待補充,當前示例僅展示響應外層結構。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.image | string | 條件必填 | VK 旋轉驗證碼圖片的 Base64 內容。 |
adapter.steps | string | 條件必填 | 來自同一次 VK captchaNotRobot.getContent 回應、與 image 配對的非負整數有序非空陣列,不是最大旋轉次數或角度。保持原序列。相容包含 JSON 整數陣列的舊字串並轉換為陣列;單個 "3" 無效。 |
adapter.redirectUri | string | 條件必填 | 剛獲取的 VK 令牌挑戰跳轉 URL;與 image + steps 圖片模式二選一。 |
adapter.userAgent | string | 條件必填 | 獲取挑戰時瀏覽器使用的 User-Agent。 |
adapter.proxyType | string | 條件必填 | 獲取挑戰時使用的代理協議,例如 http。 |
adapter.proxyAddress | string | 條件必填 | 獲取挑戰時使用的代理主機或 IP 地址。 |
adapter.proxyPort | integer | 條件必填 | 獲取挑戰時使用的代理端口。 |
adapter.proxyLogin | string | 否 | 需要代理認證時填寫用戶名。 |
adapter.proxyPassword | string | 否 | 需要代理認證時填寫密碼。 |
任選以下一組欄位,並填完整組內欄位: image + steps / redirectUri + userAgent + proxyType + proxyAddress + proxyPort
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.best_step | integer | 完成驗證所需的步驟或操作。 |
data.solution.solution | array | 完成驗證所需的步驟或操作。 |
data.solution.solution[] | integer | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.answer | string | 識別出的文字或文字答案。 |
data.solution.preview | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
TEMU
{
"productCode": "TEMU", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"image": "BASE64_IMAGE", // 背景圖片 Base64。
"parts": [ // 可移動圖片片段 Base64,順序對應響應座標。
"BASE64_IMAGE"
]
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "TEMU", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"coordinates": [ // 點擊座標列表,原點為圖片左上角。
{ // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"x": 20, // 橫座標,單位為像素。
"y": 30 // 縱座標,單位為像素。
},
{ // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"x": 50, // 橫座標,單位為像素。
"y": 60 // 縱座標,單位為像素。
},
{ // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"x": 80, // 橫座標,單位為像素。
"y": 90 // 縱座標,單位為像素。
}
]
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.image | string | 是 | 背景圖片 Base64。 |
adapter.parts | array | 是 | 可移動圖片片段 Base64,順序對應響應座標。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.coordinates | array | 點擊座標列表,原點為圖片左上角。 |
data.solution.coordinates[] | object | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.coordinates[].x | integer | 橫座標,單位為像素。 |
data.solution.coordinates[].y | integer | 縱座標,單位為像素。 |
ALTCHA
{
"productCode": "ALTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"challengeURL": "https://example.com/altcha/challenge", // ALTCHA challenge URL;與 challengeJSON 二選一。
"proxyType": "http", // 代理類型,例如 http、socks4 或 socks5。 使用自有代理時必填;不傳代理則使用上游代理池。
"proxyAddress": "YOUR_PROXY_HOST", // 代理主機或 IP 地址。 使用自有代理時必填;不傳代理則使用上游代理池。
"proxyPort": 8080, // 代理端口。 使用自有代理時必填;不傳代理則使用上游代理池。
"proxyLogin": "YOUR_PROXYLOGIN", // 代理用戶名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 代理密碼。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "ALTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.challengeURL | string | 條件必填 | ALTCHA challenge URL;與 challengeJSON 二選一。 |
adapter.challengeJSON | string | 條件必填 | ALTCHA challenge JSON;與 challengeURL 二選一。 |
adapter.proxyType | string | 否 | 代理類型,例如 http、socks4 或 socks5。 使用自有代理時必填;不傳代理則使用上游代理池。 |
adapter.proxyAddress | string | 否 | 代理主機或 IP 地址。 使用自有代理時必填;不傳代理則使用上游代理池。 |
adapter.proxyPort | integer | 否 | 代理端口。 使用自有代理時必填;不傳代理則使用上游代理池。 |
adapter.proxyLogin | string | 否 | 代理用戶名。 |
adapter.proxyPassword | string | 否 | 代理密碼。 |
任選以下一組欄位,並填完整組內欄位: challengeURL / challengeJSON
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
YIDUN_NE_CAPTCHA
{
"productCode": "YIDUN_NE_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目標站點的 CAPTCHA site key。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目標會話的實際瀏覽器 User-Agent。
"yidunGetLib": "YOUR_YIDUNGETLIB", // 取自同一目前易盾初始化或網路上下文的實際 yidunGetLib,目標未使用時省略。
"yidunApiServerSubdomain": "YOUR_YIDUNAPISERVERSUBDOMAIN", // 取自同一目前易盾初始化或網路上下文的實際 yidunApiServerSubdomain,目標未使用時省略。
"challenge": "YOUR_CHALLENGE", // 取自同一目前易盾初始化或網路上下文的實際 challenge,目標未使用時省略。
"hcg": "YOUR_HCG", // 取自同一目前易盾初始化或網路上下文的實際 hcg,目標未使用時省略。
"hct": 1779358333191, // 同一目標請求中的 Enterprise 數字時間標識,不是字串或本機時間。
"proxyType": "http", // 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。
"proxyLogin": "YOUR_PROXYLOGIN", // 可選代理認證使用者名稱,須與密碼成組提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可選密碼,與 proxyLogin 成組提供。
"proxyPort": 8080 // 代理 TCP 連接埠,1 至 65535 的整數。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "YIDUN_NE_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 是 | 目標站點的 CAPTCHA site key。 |
adapter.userAgent | string | 否 | 取自同一目標會話的實際瀏覽器 User-Agent。 |
adapter.yidunGetLib | string | 否 | 取自同一目前易盾初始化或網路上下文的實際 yidunGetLib,目標未使用時省略。 |
adapter.yidunApiServerSubdomain | string | 否 | 取自同一目前易盾初始化或網路上下文的實際 yidunApiServerSubdomain,目標未使用時省略。 |
adapter.challenge | string | 否 | 取自同一目前易盾初始化或網路上下文的實際 challenge,目標未使用時省略。 |
adapter.hcg | string | 否 | 取自同一目前易盾初始化或網路上下文的實際 hcg,目標未使用時省略。 |
adapter.hct | integer | 否 | 同一目標請求中的 Enterprise 數字時間標識,不是字串或本機時間。 |
adapter.proxyType | string | 否 | 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。 |
adapter.proxyAddress | string | 否 | 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。 |
adapter.proxyLogin | string | 否 | 可選代理認證使用者名稱,須與密碼成組提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可選密碼,與 proxyLogin 成組提供。 |
adapter.proxyPort | integer | 否 | 代理 TCP 連接埠,1 至 65535 的整數。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
BINANCE
{
"productCode": "BINANCE", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "login", // 目前 Binance 原生驗證碼的 bizId、bizType 或 bizCode(例如 login),與同次 validateId 配對;不是 Google reCAPTCHA 或 hCaptcha 的公開 key。先讀取預檢實際 captchaType 再選產品,Binance 頁面也可能展示其他提供者的驗證碼。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目標會話的實際瀏覽器 User-Agent。
"validateId": "CURRENT_VALIDATE_ID", // 同一目前目標預檢或驗證碼回應中的新鮮 validateId、securityId 或 securityCheckResponseValidateId,不重用其他會話或過期值。
"proxyType": "http", // 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。
"proxyLogin": "YOUR_PROXYLOGIN", // 可選代理認證使用者名稱,須與密碼成組提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可選密碼,與 proxyLogin 成組提供。
"proxyPort": 8080 // 代理 TCP 連接埠,1 至 65535 的整數。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "BINANCE", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN", // 提交至目標網站的驗證權杖。
"userAgent": "EXAMPLE_USERAGENT" // 取得答案時使用的瀏覽器 User-Agent。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 是 | 目前 Binance 原生驗證碼的 bizId、bizType 或 bizCode(例如 login),與同次 validateId 配對;不是 Google reCAPTCHA 或 hCaptcha 的公開 key。先讀取預檢實際 captchaType 再選產品,Binance 頁面也可能展示其他提供者的驗證碼。 |
adapter.userAgent | string | 否 | 取自同一目標會話的實際瀏覽器 User-Agent。 |
adapter.validateId | string | 是 | 同一目前目標預檢或驗證碼回應中的新鮮 validateId、securityId 或 securityCheckResponseValidateId,不重用其他會話或過期值。 |
adapter.proxyType | string | 否 | 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。 |
adapter.proxyAddress | string | 否 | 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。 |
adapter.proxyLogin | string | 否 | 可選代理認證使用者名稱,須與密碼成組提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可選密碼,與 proxyLogin 成組提供。 |
adapter.proxyPort | integer | 否 | 代理 TCP 連接埠,1 至 65535 的整數。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
data.solution.userAgent | string | 取得答案時使用的瀏覽器 User-Agent。 |
HUNT
{
"productCode": "HUNT", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 保留以相容舊請求的歷史欄位,不向上游傳送;不能代替目前說明的產品必要參數。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取自同一目標會話的實際瀏覽器 User-Agent。
"apiGetLib": "https://example.com/hd-api/external/apps/APP_ID/api.js", // 目前目標頁面載入的 Hunt api.js 完整新鮮 URL。
"data": "CURRENT_META_TOKEN", // 帶 X-HD 請求目標後回傳的第二階段 meta.token;第一階段指紋任務省略此欄位。
"proxyType": "http", // 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。
"proxyAddress": "YOUR_PROXY_HOST", // 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。
"proxyLogin": "YOUR_PROXYLOGIN", // 可選代理認證使用者名稱,須與密碼成組提供。
"proxyPassword": "YOUR_PROXYPASSWORD", // 同一代理的可選密碼,與 proxyLogin 成組提供。
"proxyPort": 8080 // 代理 TCP 連接埠,1 至 65535 的整數。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "HUNT", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 否 | 保留以相容舊請求的歷史欄位,不向上游傳送;不能代替目前說明的產品必要參數。 |
adapter.userAgent | string | 否 | 取自同一目標會話的實際瀏覽器 User-Agent。 |
adapter.apiGetLib | string | 是 | 目前目標頁面載入的 Hunt api.js 完整新鮮 URL。 |
adapter.data | string | 否 | 帶 X-HD 請求目標後回傳的第二階段 meta.token;第一階段指紋任務省略此欄位。 |
adapter.proxyType | string | 是 | 代理協定:http、socks4 或 socks5;目標有綁定要求時保持與目標會話相同的實際出口。 |
adapter.proxyAddress | string | 是 | 可達代理的主機名稱或 IP,不含協定、憑證或連接埠。 |
adapter.proxyLogin | string | 否 | 可選代理認證使用者名稱,須與密碼成組提供。 |
adapter.proxyPassword | string | 否 | 同一代理的可選密碼,與 proxyLogin 成組提供。 |
adapter.proxyPort | integer | 是 | 代理 TCP 連接埠,1 至 65535 的整數。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
TSPD
{
"productCode": "TSPD", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 目標瀏覽器 User-Agent。
"tspdCookie": "YOUR_FRESH_TSPD_COOKIE", // 剛獲取的 TSPD 挑戰 Cookie。
"htmlPageBase64": "YOUR_FRESH_CHALLENGE_HTML_BASE64", // 同一會話的挑戰頁面 HTML 的 Base64。
"proxyType": "http", // 同一會話使用的代理類型。
"proxyAddress": "YOUR_PROXY_HOST", // 代理地址。
"proxyPort": 8080, // 代理端口。
"proxyLogin": "YOUR_PROXY_LOGIN", // 代理用戶名。
"proxyPassword": "YOUR_PROXY_PASSWORD" // 代理密碼。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "TSPD", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"Domains": { // 依目標網域分組的驗證結果。
"example.com": { // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"Cookies": { // 目標網域對應的驗證 Cookie。
"TS386a400d029": "EXAMPLE_TS386A400D029", // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"TS386a400d078": "EXAMPLE_TS386A400D078", // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"tspd_101_DID": "EXAMPLE_TSPD_101_DID" // 產品回傳的答案欄位,依目標網站的驗證協定使用。
}
}
}
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.userAgent | string | 否 | 目標瀏覽器 User-Agent。 |
adapter.tspdCookie | string | 是 | 剛獲取的 TSPD 挑戰 Cookie。 |
adapter.htmlPageBase64 | string | 是 | 同一會話的挑戰頁面 HTML 的 Base64。 |
adapter.proxyType | string | 是 | 同一會話使用的代理類型。 |
adapter.proxyAddress | string | 是 | 代理地址。 |
adapter.proxyPort | integer | 是 | 代理端口。 |
adapter.proxyLogin | string | 否 | 代理用戶名。 |
adapter.proxyPassword | string | 否 | 代理密碼。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.Domains | object | 依目標網域分組的驗證結果。 |
data.solution.Domains.example.com | object | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.Domains.example.com.Cookies | object | 目標網域對應的驗證 Cookie。 |
data.solution.Domains.example.com.Cookies.TS386a400d029 | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.Domains.example.com.Cookies.TS386a400d078 | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.Domains.example.com.Cookies.tspd_101_DID | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
BASILISK
{
"productCode": "BASILISK", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目標站點的 CAPTCHA site key。
"userAgent": "YOUR_BROWSER_USER_AGENT" // 目標瀏覽器 User-Agent。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "BASILISK", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"data": { // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"captcha_response": "EXAMPLE_CAPTCHA_RESPONSE" // 提交至目標網站的驗證權杖。
},
"headers": { // 配合驗證結果使用的 HTTP 請求標頭。
"User-Agent": "EXAMPLE_USER_AGENT" // 取得答案時使用的瀏覽器 User-Agent。
}
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 是 | 目標站點的 CAPTCHA site key。 |
adapter.userAgent | string | 否 | 目標瀏覽器 User-Agent。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.data | object | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.data.captcha_response | string | 提交至目標網站的驗證權杖。 |
data.solution.headers | object | 配合驗證結果使用的 HTTP 請求標頭。 |
data.solution.headers.User-Agent | string | 取得答案時使用的瀏覽器 User-Agent。 |
IMPERVA
{
"productCode": "IMPERVA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 實際受 Imperva 保護的完整頁面 URL;腳本和 Cookie 必須來自該目標的同一會話。
"websiteKey": "YOUR_WEBSITEKEY", // 僅相容歷史用戶端,Imperva 不使用此欄位;site key 不能代替必要的腳本、Cookie 或代理。
"incapsulaScriptUrl": "/_Incapsula_Resource?SWJIYLWA=YOUR_CURRENT_SCRIPT_ID", // 從目前目標頁面或網路請求取得新鮮的 Incapsula 腳本 URL 或路徑,保留查詢參數,例如 /_Incapsula_Resource?SWJIYLWA=...;不能使用 site key 代替。
"incapsulaCookies": "incap_ses_YOUR_ID=YOUR_SESSION_VALUE; visid_incap_YOUR_ID=YOUR_VISITOR_VALUE", // 同一次新鮮目標會話的 Cookie 請求標頭字串,包含實際簽發的 incap_ses_*、visid_incap_* 等值;原樣保留,不要複製範例 Cookie。
"reese84UrlEndpoint": "YOUR_REESE84URLENDPOINT", // 可選,取自目標網路請求中的實際 Reese84 端點,通常以 ?d=目標主機 結尾;不存在時省略,不要猜測。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 取得該會話時實際使用的 User-Agent;使用結果 Cookie 時保持一致,上游回傳 User-Agent 時按其要求使用。
"proxyType": "http", // 上游必要的代理協定:http、socks4 或 socks5;目前 Imperva 串接沒有文件化的免代理模式。
"proxyAddress": "YOUR_PROXY_HOST", // 可達的代理主機名稱或 IP,不包含連接埠或認證資訊;擷取挑戰、處理挑戰及後續存取使用同一代理出口。
"proxyPort": 8080, // 代理 TCP 連接埠,1 至 65535 的整數;不是 URL 或 host:port 字串。
"proxyLogin": "YOUR_PROXYLOGIN", // 該代理需要認證時的使用者名稱,不是 Nex Captcha API Key。
"proxyPassword": "YOUR_PROXYPASSWORD" // 該代理需要認證時的密碼,原樣保留認證值。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "IMPERVA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"domains": { // 依目標網域分組的驗證結果。
"https://site-example.com": { // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"cookies": { // 目標網域對應的驗證 Cookie。
"___utmvc": "EXAMPLE____UTMVC" // 產品回傳的答案欄位,依目標網站的驗證協定使用。
}
}
}
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 實際受 Imperva 保護的完整頁面 URL;腳本和 Cookie 必須來自該目標的同一會話。 |
adapter.websiteKey | string | 否 | 僅相容歷史用戶端,Imperva 不使用此欄位;site key 不能代替必要的腳本、Cookie 或代理。 |
adapter.incapsulaScriptUrl | string | 是 | 從目前目標頁面或網路請求取得新鮮的 Incapsula 腳本 URL 或路徑,保留查詢參數,例如 /_Incapsula_Resource?SWJIYLWA=...;不能使用 site key 代替。 |
adapter.incapsulaCookies | string | 是 | 同一次新鮮目標會話的 Cookie 請求標頭字串,包含實際簽發的 incap_ses_*、visid_incap_* 等值;原樣保留,不要複製範例 Cookie。 |
adapter.reese84UrlEndpoint | string | 否 | 可選,取自目標網路請求中的實際 Reese84 端點,通常以 ?d=目標主機 結尾;不存在時省略,不要猜測。 |
adapter.userAgent | string | 否 | 取得該會話時實際使用的 User-Agent;使用結果 Cookie 時保持一致,上游回傳 User-Agent 時按其要求使用。 |
adapter.proxyType | string | 是 | 上游必要的代理協定:http、socks4 或 socks5;目前 Imperva 串接沒有文件化的免代理模式。 |
adapter.proxyAddress | string | 是 | 可達的代理主機名稱或 IP,不包含連接埠或認證資訊;擷取挑戰、處理挑戰及後續存取使用同一代理出口。 |
adapter.proxyPort | integer | 是 | 代理 TCP 連接埠,1 至 65535 的整數;不是 URL 或 host:port 字串。 |
adapter.proxyLogin | string | 否 | 該代理需要認證時的使用者名稱,不是 Nex Captcha API Key。 |
adapter.proxyPassword | string | 否 | 該代理需要認證時的密碼,原樣保留認證值。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.domains | object | 依目標網域分組的驗證結果。 |
data.solution.domains.https://site-example.com | object | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.domains.https://site-example.com.cookies | object | 目標網域對應的驗證 Cookie。 |
data.solution.domains.https://site-example.com.cookies.___utmvc | string | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
ALIBABA
{
"productCode": "ALIBABA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"sceneId": "YOUR_SCENEID", // 阿里驗證碼場景 ID。
"prefix": "YOUR_PREFIX", // 阿里驗證碼前綴。
"userId": "YOUR_USERID", // 第三方用戶 ID。
"userUserId": "YOUR_USERUSERID", // 第三方 user user ID。
"verifyType": "YOUR_VERIFYTYPE", // 驗證類型。
"region": "YOUR_REGION", // 服務區域。
"userCertifyId": "YOUR_USERCERTIFYID", // 用戶認證 ID。
"apiGetLib": "YOUR_APIGETLIB", // 驗證碼腳本地址。
"userAgent": "YOUR_BROWSER_USER_AGENT" // 目標瀏覽器 User-Agent。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "ALIBABA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"data": { // 產品回傳的答案欄位,依目標網站的驗證協定使用。
"tokens": "{\"sceneId\":\"EXAMPLE_SCENE_ID\",\"certifyId\":\"EXAMPLE_CERTIFY_ID\",\"deviceToken\":\"EXAMPLE_DEVICE_TOKEN\",\"data\":\"EXAMPLE_DATA\"}" // 提交至目標網站的驗證權杖。
}
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.sceneId | string | 是 | 阿里驗證碼場景 ID。 |
adapter.prefix | string | 是 | 阿里驗證碼前綴。 |
adapter.userId | string | 否 | 第三方用戶 ID。 |
adapter.userUserId | string | 否 | 第三方 user user ID。 |
adapter.verifyType | string | 否 | 驗證類型。 |
adapter.region | string | 否 | 服務區域。 |
adapter.userCertifyId | string | 否 | 用戶認證 ID。 |
adapter.apiGetLib | string | 否 | 驗證碼腳本地址。 |
adapter.userAgent | string | 否 | 目標瀏覽器 User-Agent。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.data | object | 產品回傳的答案欄位,依目標網站的驗證協定使用。 |
data.solution.data.tokens | string | 提交至目標網站的驗證權杖。 |
YANDEX_SMARTCAPTCHA
{
"productCode": "YANDEX_SMARTCAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目標網站完整 URL。
"websiteKey": "YOUR_WEBSITEKEY", // 目標站點的 CAPTCHA site key。
"userAgent": "YOUR_BROWSER_USER_AGENT", // 目標瀏覽器 User-Agent。
"cookies": "YOUR_COOKIES", // 目標頁面需要攜帶的 Cookie。
"proxyType": "http", // 代理類型,例如 http、socks4 或 socks5。
"proxyAddress": "YOUR_PROXY_HOST", // 代理主機或 IP 地址。
"proxyPort": 8080, // 代理端口。
"proxyLogin": "YOUR_PROXYLOGIN", // 代理用戶名。
"proxyPassword": "YOUR_PROXYPASSWORD" // 代理密碼。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "YANDEX_SMARTCAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"token": "EXAMPLE_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目標網站完整 URL。 |
adapter.websiteKey | string | 是 | 目標站點的 CAPTCHA site key。 |
adapter.userAgent | string | 否 | 目標瀏覽器 User-Agent。 |
adapter.cookies | string | 否 | 目標頁面需要攜帶的 Cookie。 |
adapter.proxyType | string | 否 | 代理類型,例如 http、socks4 或 socks5。 |
adapter.proxyAddress | string | 否 | 代理主機或 IP 地址。 |
adapter.proxyPort | integer | 否 | 代理端口。 |
adapter.proxyLogin | string | 否 | 代理用戶名。 |
adapter.proxyPassword | string | 否 | 代理密碼。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.token | string | 提交至目標網站的驗證權杖。 |
RUSSIAN_CAPTCHA
{
"productCode": "RUSSIAN_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"phrase": false, // 是否要求完整短語。
"caseSensitive": false, // 是否區分大小寫。
"numeric": false, // 是否限制爲數字。
"math": false, // 是否按數學題識別。
"minLength": 1, // 答案最小長度。
"maxLength": 1, // 答案最大長度。
"comment": "YOUR_COMMENT", // 提交給人工識別者的說明。
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // 圖片識別說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "RUSSIAN_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"text": "EXAMPLE_ANSWER" // 識別出的文字或文字答案。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.phrase | boolean | 否 | 是否要求完整短語。 |
adapter.caseSensitive | boolean | 否 | 是否區分大小寫。 |
adapter.numeric | boolean | 否 | 是否限制爲數字。 |
adapter.math | boolean | 否 | 是否按數學題識別。 |
adapter.minLength | integer | 否 | 答案最小長度。 |
adapter.maxLength | integer | 否 | 答案最大長度。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
adapter.imgInstructions | string | 否 | 圖片識別說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 識別出的文字或文字答案。 |
CHINESE_CAPTCHA
{
"productCode": "CHINESE_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"phrase": false, // 是否要求完整短語。
"caseSensitive": false, // 是否區分大小寫。
"numeric": false, // 是否限制爲數字。
"math": false, // 是否按數學題識別。
"minLength": 1, // 答案最小長度。
"maxLength": 1, // 答案最大長度。
"comment": "YOUR_COMMENT", // 提交給人工識別者的說明。
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // 圖片識別說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "CHINESE_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"text": "EXAMPLE_ANSWER" // 識別出的文字或文字答案。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.phrase | boolean | 否 | 是否要求完整短語。 |
adapter.caseSensitive | boolean | 否 | 是否區分大小寫。 |
adapter.numeric | boolean | 否 | 是否限制爲數字。 |
adapter.math | boolean | 否 | 是否按數學題識別。 |
adapter.minLength | integer | 否 | 答案最小長度。 |
adapter.maxLength | integer | 否 | 答案最大長度。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
adapter.imgInstructions | string | 否 | 圖片識別說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 識別出的文字或文字答案。 |
NUMBER_CAPTCHA
{
"productCode": "NUMBER_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"phrase": false, // 是否要求完整短語。
"caseSensitive": false, // 是否區分大小寫。
"numeric": false, // 是否限制爲數字。
"math": false, // 是否按數學題識別。
"minLength": 1, // 答案最小長度。
"maxLength": 1, // 答案最大長度。
"comment": "YOUR_COMMENT", // 提交給人工識別者的說明。
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // 圖片識別說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "NUMBER_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"text": "EXAMPLE_ANSWER" // 識別出的文字或文字答案。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.phrase | boolean | 否 | 是否要求完整短語。 |
adapter.caseSensitive | boolean | 否 | 是否區分大小寫。 |
adapter.numeric | boolean | 否 | 是否限制爲數字。 |
adapter.math | boolean | 否 | 是否按數學題識別。 |
adapter.minLength | integer | 否 | 答案最小長度。 |
adapter.maxLength | integer | 否 | 答案最大長度。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
adapter.imgInstructions | string | 否 | 圖片識別說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 識別出的文字或文字答案。 |
MATH_CAPTCHA
{
"productCode": "MATH_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"phrase": false, // 是否要求完整短語。
"caseSensitive": false, // 是否區分大小寫。
"numeric": false, // 是否限制爲數字。
"math": false, // 是否按數學題識別。
"minLength": 1, // 答案最小長度。
"maxLength": 1, // 答案最大長度。
"comment": "YOUR_COMMENT", // 提交給人工識別者的說明。
"imgInstructions": "YOUR_IMGINSTRUCTIONS" // 圖片識別說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "MATH_CAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"text": "EXAMPLE_ANSWER" // 識別出的文字或文字答案。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 是 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.phrase | boolean | 否 | 是否要求完整短語。 |
adapter.caseSensitive | boolean | 否 | 是否區分大小寫。 |
adapter.numeric | boolean | 否 | 是否限制爲數字。 |
adapter.math | boolean | 否 | 是否按數學題識別。 |
adapter.minLength | integer | 否 | 答案最小長度。 |
adapter.maxLength | integer | 否 | 答案最大長度。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
adapter.imgInstructions | string | 否 | 圖片識別說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.text | string | 識別出的文字或文字答案。 |
CUSTOM
{
"productCode": "CUSTOM", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"body": "BASE64_CONTENT", // 圖片內容或任務主體;按產品要求傳入 Base64 或文本。
"comment": "YOUR_COMMENT" // 提交給人工識別者的說明。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "CUSTOM", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": {} // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
答案字段文檔待補充,當前示例僅展示響應外層結構。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.body | string | 否 | 圖片內容或任務主體;按產品要求傳入 Base64 或文本。 |
adapter.comment | string | 否 | 提交給人工識別者的說明。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
HCAPTCHA
{
"productCode": "HCAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"adapter": { // 產品專屬參數對象。
"websiteURL": "https://example.com/register", // 目前 hCaptcha 控件所在目標頁面的完整 URL,不是 hcaptcha.com 的 iframe URL。
"websiteKey": "YOUR_WEBSITEKEY" // 目前目標控件 data-sitekey 或 hcaptcha.render 設定中的公開 hCaptcha sitekey;不可使用 reCAPTCHA key 或帳戶 secret。
}
}
請求標頭: apiKey: YOUR_API_KEY
註解用於說明欄位,複製後取得不含註解的標準 JSON。
{
"code": 0, // 業務回傳碼,0 表示成功,其他值表示錯誤。
"msg": "操作成功", // 結果說明,成功時可能為空。
"data": { // 回應資料,介面報錯時可能為 null。
"taskId": "11111111-1111-4111-8111-111111111111", // 創建任務返回的任務 ID。
"productCode": "HCAPTCHA", // 產品編碼,必須與 adapter 參數匹配。
"state": "SUCCEEDED", // 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。
"solution": { // SUCCEEDED 時的產品答案;處理中或失敗時為空物件。
"gRecaptchaResponse": "EXAMPLE_HCAPTCHA_TOKEN" // 提交至目標網站的驗證權杖。
}
}
}
建立任務會回傳任務 ID 和初始狀態。下方為查詢介面的完成結果,也可透過 WebSocket 接收答案。
答案字段文檔待補充,當前示例僅展示響應外層結構。
| 字段 | 類型 | 必填 | 說明 |
|---|---|---|---|
productCode | string | 是 | 產品編碼,必須與 adapter 參數匹配。 |
adapter | object | 是 | 產品專屬參數對象。 |
adapter.websiteURL | string | 是 | 目前 hCaptcha 控件所在目標頁面的完整 URL,不是 hcaptcha.com 的 iframe URL。 |
adapter.websiteKey | string | 是 | 目前目標控件 data-sitekey 或 hcaptcha.render 設定中的公開 hCaptcha sitekey;不可使用 reCAPTCHA key 或帳戶 secret。 |
| 字段 | 類型 | 說明 |
|---|---|---|
code | integer | 業務回傳碼,0 表示成功,其他值表示錯誤。 |
msg | string | 結果說明,成功時可能為空。 |
data | object | null | 回應資料,介面報錯時可能為 null。 |
data.taskId | string | 創建任務返回的任務 ID。 |
data.productCode | string | 產品編碼,必須與 adapter 參數匹配。 |
data.state | string | 任務狀態:CREATED、SUBMITTING、PROCESSING、SUCCEEDED、FAILED、EXPIRED。 |
data.solution | object | SUCCEEDED 時的產品答案;處理中或失敗時為空物件。 |
data.failure | object | omitted | 僅 FAILED 或 EXPIRED 回傳的公開診斷,不含上游原始訊息;按失敗處理指引操作。 |
data.failure.code | string | 失敗編碼 |
data.failure.nextAction | string | 下一步 |
data.solution.gRecaptchaResponse | string | 提交至目標網站的驗證權杖。 |