Skip to main content
本文将介绍一种 hCaptcha 协议识别 API 对接说明,它可让用户无需识别和点选 hCaptcha 验证码图片,仅需通过提交 Website Key 即可实现后台自动解码,完成验证。

申请流程

要使用 hCaptcha 协议识别 API,首先到 Ace Data Cloud 控制台 获取您的 API Token,留作备用。 如果你尚未登录或注册,会自动跳转到登录页面邀请你注册和登录,完成后会自动返回当前页面。 一个 API Token 即可调用平台所有服务,无需为每个服务单独申请。 首次申请会赠送免费额度,可免费体验;额度不足时可在 控制台 充值通用余额。
📘 完整文档:hCaptcha 协议识别 API →

基本使用

首先先了解下基本的使用方式,就是输入需要处理 hCaptcha验证码的网站URL,便可获得处理后的结果,首先需要简单地传递一个 website_url 字段,我们的示例网站是:https://accounts.hcaptcha.com/demo,我们需要在 website_url 页面中获取 website_key,首先需要打开这个网页,按F12进入控制台,最后在Element页面进行全局搜索 hcaptcha-demo,我们可以得到下面的结果:

其中 data-sitekey 对应的一串字符串便是 website_key的值,下面是具体的参数结果:

可以看到这里我们设置了 Request Headers,包括:
  • accept:想要接收怎样格式的响应结果,这里填写为 application/json,即 JSON 格式。
  • authorization:调用 API 的密钥,申请之后可以直接下拉选择。
另外设置了 Request Body,包括:
  • website_url:需要处理验证码的网站URL。
  • website_key:在hCaptcha中的网站密钥标识符。
  • proxy:可选,自带代理(Bring Your Own Proxy)。设置后上游会通过你提供的代理 IP 去解验证码,用于控制出口 IP 质量(例如避免因公共代理 IP 被目标站点拦截而返回 410 Gone)。格式为 scheme://[user:pass@]host:portscheme 支持 http/https/socks4/socks5,例如 http://user:pass@1.2.3.4:8080。不填则使用平台默认代理。
选择之后,可以发现右侧也生成了对应代码,如图所示:

点击「Try」按钮即可进行测试,如上图所示,这里我们就得到了如下结果:
可以看到我們得到了處理 hCaptcha驗證碼 的驗證結果,然後我們可以用於POST或模擬提交給目標網站,一次性使用,有效期120s,建議在60s內使用,接下來將提供一段CURL版本將處理後token提交到目標網站來通過Recaptcha2驗證碼。 首先我們需要獲取網站是如何發送POST請求,這樣我們才能將生成的token傳入進去,我們需要先打開F12控制台,然後人工先通過一下,最後我們可以看到網站發送了一個POST請求,我們只需要查看這次的POST請求構造,具體的過程如下:
  • 先人工通過驗證,具體的如下圖:

  • 再點擊submit,觀看控制台的network變化,具體的如下圖:

  • 分析此次提交的POST請求構造,最後可以右鍵該請求複製CURL的代碼,具體的如下圖:

由上圖分析可知,此次POST請求的URL為:https://accounts.hcaptcha.com/demo,我們僅需要提交參數 g-recaptcha-responseh-captcha-responseemail,然後我們只需要將處理後的token傳入下面的data中即可,調用token驗證所對應CURL代碼如下:
調用token驗證所對應的Python代碼如下:
然後我們觀察控制台變得了這樣的結果:

最後我們就通過了hCaptcha驗證碼的驗證。 另外如果想生成對應的對接代碼,可以直接複製生成,例如 CURL 的代碼如下:
Python 的對接代碼如下:

非同步模式(async)

默認情況下 API 是同步阻塞的:一次請求會一直等待,直到 token 處理完成才返回。如果你在做多打碼器輪換(multi-solver rotation),希望「提交任務後立即拿到 task_id,先去調度其他打碼器,稍後再回來取結果」,可以在請求體中傳入 async: true 傳入 async: true 後,接口會立即返回一個 task_id,而不會阻塞等待:
隨後使用該 task_id 輪詢 POST /captcha/tasks(建議每 3~5 秒一次)來獲取結果:
處理中會返回 status: processing
處理完成會返回 status: ready 和 token:
計費說明:非同步模式下,創建任務與輪詢「處理中」都不計費;僅在成功取到 token 時計費一次(與同步模式的價格一致)。因此在輪換中取消尚未完成的任務不會產生費用。/captcha/tasks 對所有驗證碼接口(token 與 recognition 系列,如 hcaptcha、recaptcha2、recaptcha3、recognition/* 等)通用,用同一個 task_id 輪詢即可。

錯誤處理

在調用 API 時,如果遇到錯誤,API 會返回相應的錯誤代碼和信息。例如:
  • 400 token_mismatched:Bad request, possibly due to missing or invalid parameters.
  • 400 api_not_implemented:Bad request, possibly due to missing or invalid parameters.
  • 401 invalid_token:Unauthorized, invalid or missing authorization token.
  • 429 too_many_requests:Too many requests, you have exceeded the rate limit.
  • 500 api_error:Internal server error, something went wrong on the server.

錯誤響應示例

結論

通過本文檔,您已經了解了如何使用 hCaptcha 協議識別 API 讓用戶無需識別和點選 hCaptcha 驗證碼圖片,僅需通過提交 Website Key 即可實現後台自動解碼,完成驗證。希望本文檔能幫助您更好地對接和使用該 API。如有任何問題,請隨時聯繫我們的技術支持團隊。