MTCaptcha
Carry the public widget key through to a response token. Read the public site key in mtcaptchaConfig and the full URL of its form. The returned token goes through the existing verified-token flow.
{
"clientKey": "capzy_YOUR_API_KEY",
"task": {
"type": "MtCaptchaTaskProxyLess",
"websiteURL": "https://example.com/form",
"websiteKey": "MTPublic-abc123"
}
}Illustrative values. Replace the inputs with values from your current integration.
Read mtcaptchaConfig.
Read the public site key in mtcaptchaConfig and the full URL of its form. The returned token goes through the existing verified-token flow.
Your API key authenticates Capzy.
Provider keys, challenge IDs, images, and session values belong inside task.
Copy the public sitekey value.
- Open Sources and search loaded files or the page source for mtcaptchaConfig.
- Copy the sitekey value into websiteKey and the current form URL into websiteURL.
- When multiple configurations are present, match the one mounted in the form you are submitting.
var mtcaptchaConfig = {
sitekey: "YOUR_MTCAPTCHA_PUBLIC_KEY"
};Read the public site key, not the application's server-side verification credential.
How MTCaptcha works
MTCaptcha is a GDPR-compliant captcha service used by government sites, universities, and enterprise portals worldwide. It presents an invisible or checkbox challenge and produces a verification token.
Capzy's proprietary solver returns valid MTCaptcha verifiedtokens for authorized testing and automation.
- Fast token generation
- GDPR-compliant captcha
- Used on government/enterprise sites
- Most instances auto-pass
Know what goes in.
Choose a field to see its purpose, where to get it, and its place in the request. Optional values omitted from the example can be added when your flow uses them.
The request below follows your selected task configuration.
Request authentication
Required task inputs
websiteURL
stringRequiredThe page URL
Copy the full page URL from the address bar or the document request in Network, including the path where this flow runs.
Open the input guidehttps://example.com/form{
"clientKey": "capzy_YOUR_API_KEY",
"task": {
"type": "MtCaptchaTaskProxyLess",
"websiteURL": "https://example.com/form",
"websiteKey": "MTPublic-abc123"
}
}The selected field is highlighted when present. Preserve the declared value type and current challenge context.
Make your first request.
Create the task, keep its taskId, and poll until status is ready. Then read the selected variant's solution.
- Create the task
Send
clientKeyand the selectedtaskto/createTaskfrom your server. Keep the returnedtaskId. - Wait for the solution
Send that same key and ID to
/getTaskResult. While processing, wait two seconds before checking again. Stop on Ready or an error. - Apply the result
Use solution.token in mtcaptcha-verifiedtoken or the form's existing callback transport, then submit the original form for server validation.
import json, os, time
import requests
API = "https://api.capzy.ai"
KEY = os.environ["CAPZY_API_KEY"]
task = json.loads("{\"type\":\"MtCaptchaTaskProxyLess\",\"websiteURL\":\"https://example.com/form\",\"websiteKey\":\"MTPublic-abc123\"}")
def call(path, payload):
response = requests.post(f"{API}/{path}", json={"clientKey": KEY, **payload}, timeout=30)
response.raise_for_status()
data = response.json()
if data.get("errorId", 0) or data.get("status") == "failed":
raise RuntimeError(data.get("errorDescription") or data.get("errorCode") or "Task failed")
return data
created = call("createTask", {"task": task})
for attempt in range(60):
result = call("getTaskResult", {"taskId": created["taskId"]})
if result.get("status") == "ready":
solution = result["solution"]
print(solution)
break
time.sleep(2)
else:
raise TimeoutError("Task is still processing; keep the taskId to check it later.")
Before runningReplace all illustrative inputs with your captured values. Set CAPZY_API_KEY in your environment. Install requests with pip install requests.
Polling and failuresThe example checks HTTP/API failures, uses 30-second request timeouts, and stops after 60 result checks. Retain taskId if your task is still processing.
Understand what comes back.
Follow this task from creation to completion. Response fields and usage follow your selected request variant.
MTCaptcha response token
Use solution.token in mtcaptcha-verifiedtoken or the form's existing callback transport, then submit the original form for server validation.
- string
- The MTCaptcha verification token
{
"errorId": 0,
"status": "ready",
"solution": {
"token": "v1(<MTPublic key>,<verified-token payload>)"
}
}Illustrative values. Additional metadata may be returned; only Ready contains a completed solution.
Submit mtcaptcha-verifiedtoken
Set the original widget's mtcaptcha-verifiedtoken field to solution.token, then submit the original form for backend validation.
Execution context result is the parsed Ready response from the polling example. session, when referenced, is your existing requests.Session (or browser-compatible session) with the original cookie jar, headers, and solving proxy configured in session.proxies for both http and https. Keep this client for the complete flow. task is the task object you submitted. For Shape, action_body is the original protected request body as bytes or a string, with its original Content-Type in session.headers. Install curl_cffi when the fragment imports it; match the target's required browser/TLS identity.
token = result["solution"]["token"]
# Keep the original form's action, other fields, and session.
response = session.post("https://target.example.com/submit", data={
"mtcaptcha-verifiedtoken": token,
# Add the original application form fields here.
}, timeout=30)When something doesn't work.
Check your captured values, the selected variant, and the response before starting another task.
Connect MTCaptcha to your workflow.
Get your Capzy API key and use this guide's integration.
MtCaptchaTaskProxyLess · Live configuration