CaptchaAI 和 CapSolver 都是按 API 调用的验证码识别服务,但计费逻辑完全不同:CaptchaAI 按线程包月、每个线程识别次数不限,CapSolver 按识别次数计费、账单随识别量增长(折扣套餐只降低单价)。想直接看结论就往下翻,完整对比在功能覆盖、定价、识别速度、API 设计四个维度展开。
该选 CaptchaAI 还是 CapSolver?
选 CaptchaAI 的场景
- 你需要识别 BLS 验证码
- 你的识别量较大,想要每个线程无限次识别、按月固定价格
- 你更喜欢简单的 REST API,不想拼 JSON 请求体
- 你在做轻量集成,不想依赖外部 SDK
选 CapSolver 的场景
- 你需要识别 AWS WAF 或 DataDome 验证码
- 团队更习惯基于 JSON 的 API 和类型化任务对象
- 你希望结果通过 POST 推送到回调 URL,而不是轮询
- 你已经在用 CapSolver,迁移成本划不来
功能与类型覆盖对比
| 功能 | CaptchaAI | CapSolver |
|---|---|---|
| reCAPTCHA v2 | ✅ | ✅ |
| reCAPTCHA v3 | ✅ | ✅ |
| reCAPTCHA Enterprise | ✅ | ✅ |
| Cloudflare Turnstile | ✅ | ✅ |
| Cloudflare Challenge | ✅ | ✅ |
| GeeTest v3 | ✅ | ✅ |
| GeeTest v4 | ❌ | ✅ |
| 图片/OCR 验证码 | ✅ | ✅ |
| BLS CAPTCHA | ✅ | ❌ |
| 计费模式 | 线程制(无限次识别) | 按次计费 |
| 免费方案 | ✅ 1 个免费线程,30 天,无需信用卡 | ✅ |
| API 风格 | REST(GET/POST) | JSON POST |
| 结果获取方式 | 轮询(res.php) |
轮询或 POST 到 callbackUrl |
付费前先测试 CaptchaAI:领取 1 个免费线程,30 天有效,无需信用卡。CapSolver 一列依据其自家文档:任务类型列表(其中没有 BLS 任务),GeeTest v4 见 GeeTest 文档,callbackUrl 见 createTask 文档;免费方案指其产品页上的 “Get Free Trial” 入口(均于 2026 年 10 月 18 日核实)。
下文 CapSolver 相关信息均来自其官方文档(2026 年 10 月 18 日核实)。实际结果会因运行环境、任务量和时间而不同,请在自有环境中测量。
两家都覆盖主流验证码类型,差异集中在小众类型:
只有 CaptchaAI 支持:
- BLS CAPTCHA——签证预约类网站常用的多图验证码,最多接受 9 张带说明的图片,返回正确的图片索引。CapSolver 的任务类型列表中没有 BLS。
只有 CapSolver 支持(摘自其任务类型列表):
- GeeTest v4——见 CapSolver 的 GeeTest 文档;CaptchaAI 只支持 GeeTest v3。
- MTCaptcha——CapSolver 列表中的 token 类任务;CaptchaAI 没有对应 MTCaptcha 的方法。
- AWS WAF 验证码——CapSolver 支持 Amazon WAF 的验证挑战。
- DataDome——CapSolver 能处理 DataDome 的间隙式验证码。
reCAPTCHA 式的网格图片两家都能处理:CaptchaAI 用 Grid Image 方法,CapSolver 用 reCAPTCHA v2 图片识别任务。按你实际会遇到的验证码类型来选,多数抓取和自动化场景里 CaptchaAI 的覆盖已经够用。
识别速度对比
CaptchaAI 返回 reCAPTCHA v2 token 通常不超过 120 秒。两家的识别耗时都取决于目标站点、你的代理和当时的负载,切换之前请在自己的页面上跑一轮测试,以实测耗时为准。
定价对比:线程制 vs 按次计费
CaptchaAI 按线程计费,每个线程识别次数不限,不按次、也不按类型额外收费;CapSolver 按识别次数计费,按任务类型标出每 1000 次的价格,另有折扣套餐包。
| CaptchaAI | CapSolver | |
|---|---|---|
| 计费对象 | 线程(每个线程同一时间处理一个验证码),识别次数不限 | 识别次数,按任务类型计每 1000 次单价;另有折扣套餐包 |
| 起步价 | BASIC:$15/月,5 线程 | —(见其价格页) |
CapSolver 当前每 1000 次的价格见其价格页,套餐包见其文档(均于 2026 年 10 月 18 日核实)。
大批量场景下的费用测算
假设你在东南亚做电商价格监控,团队分布在新加坡和吉隆坡,每月要处理 100 万次 reCAPTCHA v2。以下是 CaptchaAI 的测算示例,前提是你的峰值并发能放进套餐的线程数:
| 每月 reCAPTCHA v2 量 | CaptchaAI 套餐 | CaptchaAI 费用 | 每 1000 次 |
|---|---|---|---|
| 100,000 次 | BASIC(5 线程) | $15 | $0.15 |
| 1,000,000 次 | ADVANCE(50 线程) | $90 | $0.09 |
要和 CapSolver 比较,把你的月识别量乘以其价格页上对应任务类型的每 1000 次价格即可。CaptchaAI 的线程数按峰值并发配置,因为每个线程同一时间只处理一个验证码。实时套餐价格请以官网为准。
API 设计:REST 查询参数 vs JSON POST
CaptchaAI —— REST 查询参数
import requests
# Submit task
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": "YOUR_API_KEY",
"method": "userrecaptcha",
"googlekey": "SITE_KEY",
"pageurl": "https://example.com"
})
task_id = resp.text.split("|")[1]
CapSolver —— JSON POST
import requests
# Submit task
resp = requests.post("https://api.capsolver.com/createTask", json={
"clientKey": "YOUR_KEY",
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://example.com",
"websiteKey": "SITE_KEY"
}
})
task_id = resp.json()["taskId"]
CaptchaAI 用 GET 参数,你直接用浏览器或者 curl 命令就能测试。CapSolver 走 JSON,需要自己拼请求体,好处是类型定义更结构化。
完整识别流程示例
CaptchaAI(Python)
import requests
import time
API_KEY = "YOUR_API_KEY"
def solve_recaptcha(site_key, page_url):
# Submit
resp = requests.get("https://ocr.captchaai.com/in.php", params={
"key": API_KEY,
"method": "userrecaptcha",
"googlekey": site_key,
"pageurl": page_url
})
if not resp.text.startswith("OK|"):
raise Exception(f"Submit failed: {resp.text}")
task_id = resp.text.split("|")[1]
# Poll
for _ in range(60):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY,
"action": "get",
"id": task_id
})
if result.text == "CAPCHA_NOT_READY":
continue
if result.text.startswith("OK|"):
return result.text.split("|")[1]
raise Exception(f"Solve failed: {result.text}")
raise TimeoutError("Solve timed out")
token = solve_recaptcha("6Le-wvkS...", "https://example.com")
CapSolver(Python)
import requests
import time
API_KEY = "YOUR_KEY"
def solve_recaptcha(site_key, page_url):
resp = requests.post("https://api.capsolver.com/createTask", json={
"clientKey": API_KEY,
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": page_url,
"websiteKey": site_key
}
})
task_id = resp.json()["taskId"]
for _ in range(60):
time.sleep(5)
result = requests.post("https://api.capsolver.com/getTaskResult", json={
"clientKey": API_KEY,
"taskId": task_id
})
data = result.json()
if data["status"] == "processing":
continue
if data["status"] == "ready":
return data["solution"]["gRecaptchaResponse"]
raise Exception(f"Failed: {data}")
raise TimeoutError("Solve timed out")
token = solve_recaptcha("6Le-wvkS...", "https://example.com")
两边都是“提交任务 → 轮询结果”的模式,代码行数和复杂度差不多。
开发者体验对比
| 维度 | CaptchaAI | CapSolver |
|---|---|---|
| 文档 | 清晰,带代码示例 | 结构化,附 SDK |
| 错误信息 | 纯文本错误码(json=1 时为 JSON) |
JSON 错误对象(errorId、errorCode) |
| 支持渠道 | 工单:ticket.captchaai.com | — |
| 官方 SDK | Python(captchaai 包) |
— |
CapSolver 的错误格式出自其 createTask 文档;其 SDK 与支持渠道请查看其文档(2026 年 10 月 18 日核实)。CaptchaAI 的 API 简单到多数场景不需要 SDK。
从 CapSolver 迁移到 CaptchaAI
- 在 CaptchaAI 官网 注册账号
- 把
https://api.capsolver.com/createTask换成https://ocr.captchaai.com/in.php - 把 JSON 任务对象改成查询参数:
-
"type": "ReCaptchaV2TaskProxyLess"→method=userrecaptcha-"websiteKey"→googlekey-"websiteURL"→pageurl - 响应解析从 JSON 改成管道分隔格式
- 把
getTaskResult调用换成res.php?action=get&id=TASK_ID
常见问题
CaptchaAI 支持 GeeTest v4 吗?
不支持。CaptchaAI 支持 GeeTest v3,不支持 GeeTest v4。如果目标站点已经升级到 v4,CapSolver 覆盖更全。
切换到 CaptchaAI 需要停机吗?
不需要。先把 CaptchaAI 配置成并行识别器,验证跟你现有集成是否兼容,确认无误后再把流量切过去。两家都是“提交 → 轮询”模式,不用改架构。
CaptchaAI 和 CapSolver 哪个识别准确率更高?
CaptchaAI 的识别成功率为:reCAPTCHA v2 99.50%、reCAPTCHA v3 99.00%、Cloudflare Turnstile 99.90%(2026 年 10 月数据)。CapSolver 的产品页写的是 “High Accuracy & Success Rate”,没有给出具体数字(2026 年 10 月 18 日核实)。最终请在自己的目标站点上实测两家;真正影响成本的往往是计费模式。
CaptchaAI 的线程套餐怎么选,会不会太小?
线程数决定并发上限,不是识别次数上限——同一线程能连续处理不限次数的识别请求。按峰值并发估算套餐,而不是按月识别总量;规模不大时可以从 BASIC 或 STANDARD 起步,并发涨了再升级线程数。