Getting Started

CaptchaAI 快速上手:5 分钟解决你的第一个验证码

CaptchaAI 的 API 就一个核心流程:提交任务 → 轮询结果 → 拿到 token。跑通它,其余类型只是换参数——reCAPTCHA、Turnstile、GeeTest、图片验证码都一样。分四步:

  1. 提交 —— 把验证码参数发到 in.php
  2. 拿任务 ID —— 从响应里保存任务 ID
  3. 轮询 —— 每 5 秒查询一次 res.php,直到结果就绪
  4. 用 token —— 把识别出的 token 填回目标页面或请求

第 0 步:注册并获取 API Key

  1. captchaai.com 注册账号
  2. 打开 控制台
  3. 复制 32 位 API Key

账户必须有可用线程才能提交任务。CaptchaAI 按并发线程计费(BASIC $15/月、5 线程起),评估阶段可联系客服申请试用线程。


第 1 步:向 in.php 提交验证码任务

下面用 Cloudflare Turnstile 演示——国际站点上最常见的类型之一。提交前从目标页面取两个值:

  • sitekey —— Turnstile 控件的公开密钥,在 data-sitekey 属性或脚本参数里,以 0x 开头
  • pageurl —— 加载该控件的完整页面 URL

四种语言任选其一,参数一致:

cURL

curl -X POST "https://ocr.captchaai.com/in.php" \
  -d "key=YOUR_API_KEY" \
  -d "method=turnstile" \
  -d "sitekey=0x4AAAAAAAC3DHQFLr1GavNl" \
  -d "pageurl=https://staging.example.com/qa-login" \
  -d "json=1"

Python

import requests

response = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "turnstile",
    "sitekey": "0x4AAAAAAAC3DHQFLr1GavNl",
    "pageurl": "https://staging.example.com/qa-login",
    "json": 1,
})
print(response.json())

Node.js

const response = await fetch("https://ocr.captchaai.com/in.php", {
  method: "POST",
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
  body: new URLSearchParams({
    key: "YOUR_API_KEY",
    method: "turnstile",
    sitekey: "0x4AAAAAAAC3DHQFLr1GavNl",
    pageurl: "https://staging.example.com/qa-login",
    json: "1",
  }),
});
console.log(await response.json());

PHP

<?php
$response = file_get_contents("https://ocr.captchaai.com/in.php?" . http_build_query([
    "key"       => "YOUR_API_KEY",
    "method"    => "turnstile",
    "sitekey"   => "0x4AAAAAAAC3DHQFLr1GavNl",
    "pageurl"   => "https://staging.example.com/qa-login",
    "json"      => 1,
]));
echo $response;

第 2 步:从响应中保存任务 ID

提交成功会返回:

{
  "status": 1,
  "request": "71823469"
}

request 就是任务 ID,第 3 步轮询要用它。

status0 表示出错,错误码在 request 里,对照下表:

错误码 含义 处理方式
ERROR_WRONG_USER_KEY API Key 格式错误 确认 32 位 Key 没拼错
ERROR_KEY_DOES_NOT_EXIST API Key 不存在 在控制台核对 Key
ERROR_ZERO_BALANCE 没有可用线程 充值或等待线程释放
ERROR_PAGEURL 缺少 pageurl 参数 补上完整页面 URL
ERROR_WRONG_GOOGLEKEY sitekey 为空或格式错误 重新提取 sitekey(Turnstile 以 0x 开头)

第 3 步:轮询 res.php 获取结果

首次轮询前先等 15 秒,之后每 5 秒查一次,直到结果就绪。

Python

import time

time.sleep(15)

while True:
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": "YOUR_API_KEY",
        "action": "get",
        "id": "71823469",
        "json": 1,
    }).json()

    if result.get("request") == "CAPCHA_NOT_READY":
        time.sleep(5)
        continue

    if result.get("status") == 1:
        token = result["request"]
        print(f"Solved! Token: {token[:60]}...")
        break

    raise RuntimeError(result)

Node.js

await new Promise((r) => setTimeout(r, 15000));

while (true) {
  const r = await fetch(
    `https://ocr.captchaai.com/res.php?key=YOUR_API_KEY&action=get&id=71823469&json=1`,
  );
  const data = await r.json();
  if (data.request === "CAPCHA_NOT_READY") {
    await new Promise((r) => setTimeout(r, 5000));
    continue;
  }
  if (data.status === 1) {
    console.log("Solved:", data.request.slice(0, 60));
    break;
  }
  throw new Error(JSON.stringify(data));
}

status1 时,request 里就是 token。


第 4 步:把 token 用到目标页面

按验证码类型把 token 填回对应位置:

验证码类型 回填位置
Turnstile 写入 cf-turnstile-response 文本域,或触发页面回调
reCAPTCHA 写入 g-recaptcha-response 文本域
图片 / OCR 填进答案输入框
GeeTest v3 把返回的多个字段按页面要求拼装后提交

以 Turnstile 为例:

document.querySelector('[name="cf-turnstile-response"]').value = token;
document.querySelector("form").submit();

token 是一次性的,约 120 秒后过期:提交 → 使用 → 丢弃,切勿缓存或复用。


新手最容易踩的坑

  • API Key 带空格 —— 前后空格删干净再用。
  • pageurl 漏协议头 —— 必须是 https:// 开头的完整地址。
  • 没加 json=1 —— 不加时接口返回纯文本 OK|71823469.json() 会报错。
  • 线程已用完 —— 对照 常见错误码 和套餐线程数确认并发上限。

常见问题

为什么第一次轮询要先等 15 秒?

这类 token 型验证码要在服务端识别,通常十几秒。t=0 就查询只会一直拿到 CAPCHA_NOT_READY,还白占一个并发线程。

一直返回 CAPCHA_NOT_READY 怎么办?

正常 15–30 秒完成。同一任务超过 60 秒仍未就绪,多半卡住了,取消重提,并确认 sitekey、pageurl 与目标页面一致。

CaptchaAI 能识别 hCaptcha 吗?

暂不支持。目前覆盖 reCAPTCHA v2/v3、Turnstile 与 Cloudflare Challenge、GeeTest v3、图片/OCR、九宫格及 BLS;hCaptcha 与 FunCaptcha 暂未支持,GeeTest v4 官方标注即将支持。


下一步该学什么

按你最常遇到的类型深入:

立即在 captchaai.com/api.php 获取你的 API Key,5 分钟内完成第一次成功识别。

该文章已禁用评论。