跳转到主要内容
获取令牌时遇到问题吗
联系支持

MTCaptcha

注意!

CapMonster Cloud 默认通过内置代理工作——这些代理已包含在费用内。仅当网站不接受令牌或对内置服务的访问受限时,才需要指定您自己的代理。

如果代理按 IP 授权,请将地址 65.21.190.34 加入白名单。

请求参数

type<string>required

MTCaptchaTask


websiteURL<string>required

进行验证码识别的网页地址。


websiteKey<string>required

MTCaptcha 的密钥,在请求中以参数 sk 传递(请参见下方示例说明如何查找)。


pageAction<string>optional

action 参数在请求中以 act 传递,并在 token 验证时显示。仅当值不同于默认值 %24 时才需要填写。
HTML 示例:


<script>
var mtcaptchaConfig = {
"sitekey": "MTPublic-abCDEFJAB",
"action": "login"
};
</script>


isInvisible<bool>optional

如果验证码为不可见模式(即隐藏的验证字段),请设为 true。当系统怀疑为机器人时将触发额外验证。


userAgent<string>optional

浏览器的 User-Agent。
请仅传递当前 Windows 系统下的有效 UA。当前推荐值为userAgentPlaceholder


proxyType<string>optional

http - 常规 http/https 代理;
https - 仅当 "http" 无效时使用(某些自定义代理需要);
socks4 - socks4 代理;
socks5 - socks5 代理。


proxyAddress<string>optional

代理的 IPv4/IPv6 地址。禁止以下使用方式:

  • 使用透明代理(可暴露客户端 IP);
  • 使用本地机器上的代理。


proxyPort<integer>optional

代理端口。


proxyLogin<string>optional

代理服务器登录用户名。


proxyPassword<string>optional

代理服务器登录密码。

创建任务的方法

POST
https://api.capmonster.cloud/createTask

请求

{
"clientKey": "API_KEY",
"task":
{
"type": "MTCaptchaTask",
"websiteURL": "https://www.example.com",
"websiteKey": "MTPublic-abCDEFJAB",
"isInvisible": false,
"pageAction": "login"
}
}

响应

{
"errorId":0,
"taskId":407533077
}

获取任务结果的方法

使用方法 getTaskResult 获取 MTCaptcha 的解决方案。

POST
https://api.capmonster.cloud/getTaskResult

请求

{
"clientKey": "API_KEY",
"taskId": 407533077
}

响应

{
"errorId": 0,
"errorCode": null,
"errorDescription": null,
"solution": {
"token": "v1(155506dc,c8c2e356,MTPublic-abCDEFJAB,70f03532a53...5FSDA**)"
},
"status": "ready"
}

如何查找验证码参数

websiteKey

在开发者工具的 Network 标签中可以找到此参数。 查找类似以 getchallenge.json 开头的请求 — 参数 sk 对应 websiteKey

pageAction

该请求中也包含参数 pageAction,其值通过 act 传递。 默认值为 %24;若值不同(如 ..&act=login&...),请在创建任务时传入。

使用 SDK 库

显示代码(用于浏览器)
// https://github.com/ZennoLab/capmonstercloud-client-js

import { CapMonsterCloudClientFactory, ClientOptions, MTCaptchaRequest } from '@zennolab_com/capmonstercloud-client';

const API_KEY = "YOUR_API_KEY"; // 输入您的 CapMonster Cloud API 密钥

document.addEventListener("DOMContentLoaded", async () => {
const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);

// 基本示例,无需代理
// CapMonster Cloud 会自动使用它们的代理
let mtcaptchaRequest = new MTCaptchaRequest({
websiteURL: "https://www.example.com", // 含有 MTCaptcha 的页面 URL
websiteKey: "MTPublic-abCDEFJAB",
isInvisible: false, // true -- 如果使用 Invisible MTCaptcha
pageAction: "login"
});

// 使用您自己的代理的示例
// 如果想使用自己的代理,请取消注释以下代码块
/*
const proxy = {
proxyType: "http",
proxyAddress: "123.45.67.89",
proxyPort: 8080,
proxyLogin: "username",
proxyPassword: "password"
};

mtcaptchaRequest = new MTCaptchaRequest({
websiteURL: "https://www.example.com",
websiteKey: "MTPublic-abCDEFJAB",
isInvisible: false,
pageAction: "login",
proxy,
userAgent: "userAgentPlaceholder"
});
*/

// 如有必要,可以检查余额
const balance = await client.getBalance();
console.log("Balance:", balance);

const result = await client.Solve(mtcaptchaRequest);
console.log("Solution:", result);
});
显示代码 (Node.js)
// https://github.com/ZennoLab/capmonstercloud-client-js

import { CapMonsterCloudClientFactory, ClientOptions, MTCaptchaRequest } from '@zennolab_com/capmonstercloud-client';

const API_KEY = "YOUR_API_KEY"; // 输入您的 CapMonster Cloud API 密钥

async function solveMTCaptcha() {
const client = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);

// 基本示例,无需代理
// CapMonster Cloud 会自动使用它们的代理
let mtcaptchaRequest = new MTCaptchaRequest({
websiteURL: "https://www.example.com", // 含有 MTCaptcha 的页面 URL
websiteKey: "MTPublic-abCDEFJAB",
isInvisible: false, // true -- 如果使用 Invisible MTCaptcha
pageAction: "login"
});

// 使用您自己的代理的示例
// 如果想使用自己的代理,请取消注释以下代码块

/*
const proxy = {
proxyType: "http",
proxyAddress: "123.45.67.89",
proxyPort: 8080,
proxyLogin: "username",
proxyPassword: "password"
};

mtcaptchaRequest = new MTCaptchaRequest({
websiteURL: "https://www.example.com",
websiteKey: "MTPublic-abCDEFJAB",
isInvisible: false,
pageAction: "login",
proxy,
userAgent: "userAgentPlaceholder"
});
*/

// 如有必要,可以检查余额
const balance = await client.getBalance();
console.log("Balance:", balance);

const result = await client.Solve(mtcaptchaRequest);
console.log("Solution:", result);
}

solveMTCaptcha().catch(console.error);