MTCaptcha
MTCaptcha is an enterprise CAPTCHA service that offers adaptive challenges including invisible verification, slider puzzles, and visual challenges. It is used by government agencies, financial institutions, and enterprise websites, particularly in regulated industries. Upon solving, MTCaptcha produces a verified token that is submitted with form data for server-side validation.
Supported Types
Section titled “Supported Types”| Type | Proxy Required | Description |
|---|---|---|
MTCaptchaToken | Yes | Solves the challenge using your proxy. Use when the target site validates the solver’s IP. |
MTCaptchaTokenProxyLess | No | Solves the challenge without a proxy. Recommended for most use cases. |
Parameters
Section titled “Parameters”| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | MTCaptchaToken or MTCaptchaTokenProxyLess |
websiteURL | string | Yes | The URL of the page containing the MTCaptcha widget |
websiteKey | string | Yes | The site key found in the MTCaptcha configuration. Look for the sitekey parameter in the MTCaptcha script initialization. |
Proxy Parameters
Section titled “Proxy Parameters”Required when using the MTCaptchaToken type:
| Parameter | Type | Required | Description |
|---|---|---|---|
proxyType | string | Yes | http, socks4, or socks5 |
proxyAddress | string | Yes | Proxy IP or hostname |
proxyPort | integer | Yes | Proxy port |
proxyLogin | string | No | Proxy username |
proxyPassword | string | No | Proxy password |
Create Task Request
Section titled “Create Task Request”{ "clientKey": "YOUR_API_KEY", "task": { "type": "MTCaptchaTokenProxyLess", "websiteURL": "https://example.com/login", "websiteKey": "MTPublic-KzqLY11k5" }}With proxy:
{ "clientKey": "YOUR_API_KEY", "task": { "type": "MTCaptchaToken", "websiteURL": "https://example.com/login", "websiteKey": "MTPublic-KzqLY11k5", "proxyType": "http", "proxyAddress": "1.2.3.4", "proxyPort": 8080, "proxyLogin": "user", "proxyPassword": "pass" }}Response
Section titled “Response”{ "errorId": 0, "taskId": "550e8400-e29b-41d4-a716-446655440000", "status": "processing"}Solution Object
Section titled “Solution Object”{ "token": "v1(03,79a,0,0,MTPublic-KzqLY11k5,c0b8...)"}| Field | Type | Description |
|---|---|---|
token | string | The verified token to submit with the form |
How to Use
Section titled “How to Use”- Find the MTCaptcha site key in the page source. It is typically in a script block like
mtcaptchaConfig = { sitekey: "MTPublic-..." }or in adata-sitekeyattribute. - Submit the task and poll for the solution.
- Set the returned
tokenas the value of themtcaptcha-verifiedtokenhidden input field in the form. - Submit the form. The server will verify the token against the MTCaptcha API.
Code Examples
Section titled “Code Examples”Python
Section titled “Python”import requestsimport time
API_KEY = "YOUR_API_KEY"
response = requests.post("https://api.ucaptcha.net/createTask", json={ "clientKey": API_KEY, "task": { "type": "MTCaptchaTokenProxyLess", "websiteURL": "https://example.com/login", "websiteKey": "MTPublic-KzqLY11k5" }})task_id = response.json()["taskId"]
while True: result = requests.post("https://api.ucaptcha.net/getTaskResult", json={ "clientKey": API_KEY, "taskId": task_id }).json() if result["status"] == "ready": token = result["solution"]["token"] print("Solution:", token)
# Submit the form with the verified token form_data = { "mtcaptcha-verifiedtoken": token, "username": "user", "password": "pass" } response = requests.post("https://example.com/login", data=form_data) print("Status:", response.status_code) break elif result["status"] == "failed": print("Error:", result.get("errorDescription")) break time.sleep(5)JavaScript
Section titled “JavaScript”const API_KEY = "YOUR_API_KEY";
const { taskId } = await fetch("https://api.ucaptcha.net/createTask", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ clientKey: API_KEY, task: { type: "MTCaptchaTokenProxyLess", websiteURL: "https://example.com/login", websiteKey: "MTPublic-KzqLY11k5" } })}).then(r => r.json());
while (true) { const result = await fetch("https://api.ucaptcha.net/getTaskResult", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ clientKey: API_KEY, taskId }) }).then(r => r.json());
if (result.status === "ready") { console.log("Solution:", result.solution.token); break; } else if (result.status === "failed") { console.error("Error:", result.errorDescription); break; } await new Promise(r => setTimeout(r, 5000));}# Create the taskcurl -X POST https://api.ucaptcha.net/createTask \ -H "Content-Type: application/json" \ -d '{ "clientKey": "YOUR_API_KEY", "task": { "type": "MTCaptchaTokenProxyLess", "websiteURL": "https://example.com/login", "websiteKey": "MTPublic-KzqLY11k5" } }'
# Poll for the result (replace TASK_ID with the returned taskId)curl -X POST https://api.ucaptcha.net/getTaskResult \ -H "Content-Type: application/json" \ -d '{ "clientKey": "YOUR_API_KEY", "taskId": "TASK_ID" }'Provider Coverage
Section titled “Provider Coverage”- 2Captcha
- CapSolver
Aliases
Section titled “Aliases”No backward-compatible aliases. Use MTCaptchaToken or MTCaptchaTokenProxyLess directly.