> For the complete documentation index, see [llms.txt](https://docs.apexsolutions.lol/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apexsolutions.lol/api-reference/mtcaptcha.md).

# MTCaptcha

Solve the MTCaptcha image captcha and get the verified vt token.

Runs the MTCaptcha flow - fetch the challenge, read the distorted image, and produce the required proof - and returns the verified one-time `vt` token.

### What you get back

The response carries the verified `vt` token under `result`. Put the `vt` in the form's token field (the one MTCaptcha normally fills) and submit normally - the site verifies it server-side.

### Sitekey and host

You need the **public sitekey** (`MTPublic-...`), visible in the MTCaptcha iframe URL, and the **host** of the target page. No site is assumed.

### Proxy

A **proxy is required** - the solver always runs through yours, never from Apex's servers.

## Solve the MTCaptcha challenge

> Runs a MTCaptcha solve for a \`sitekey\` + \`host\` and returns the\
> verified \`vt\` token. Retries internally with fresh challenges (up to\
> \`max\_attempts\`, default 4) because each challenge is one-shot.<br>

```json
{"openapi":"3.0.3","info":{"title":"MTCaptcha","version":"1.0.0"},"tags":[{"name":"MTCaptcha","description":"Runs the MTCaptcha flow - fetch the challenge, read the distorted image,\nand produce the required proof - and returns the verified one-time `vt`\ntoken.\n\n## What you get back\n\nThe response carries the verified `vt` token under `result`. Put the `vt`\nin the form's token field (the one MTCaptcha normally fills) and submit\nnormally - the site verifies it server-side.\n\n## Sitekey and host\n\nYou need the **public sitekey** (`MTPublic-...`), visible in the MTCaptcha\niframe URL, and the **host** of the target page. No site is assumed.\n\n## Proxy\n\nA **proxy is required** - the solver always runs through yours, never\nfrom Apex's servers.\n"}],"servers":[{"url":"https://mtcaptcha.apexsolutions.lol"}],"paths":{"/payload":{"post":{"tags":["MTCaptcha"],"summary":"Solve the MTCaptcha challenge","description":"Runs a MTCaptcha solve for a `sitekey` + `host` and returns the\nverified `vt` token. Retries internally with fresh challenges (up to\n`max_attempts`, default 4) because each challenge is one-shot.\n","parameters":[{"name":"Content-Type","in":"header","required":true,"description":"The Content-Type of the request body.","schema":{"type":"string","enum":["application/json"]}},{"name":"Authorization","in":"header","required":true,"description":"Your API key for authentication.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MtCaptchaSolveRequest"}}}},"responses":{"200":{"description":"Challenge solved. The verified token is under `result.vt`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MtCaptchaSolveResponse"}}}},"400":{"description":"Missing or invalid request. See the error envelope for the reason.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Proxy connection failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"MtCaptchaSolveRequest":{"type":"object","required":["params","proxy"],"properties":{"params":{"type":"object","required":["sitekey","host"],"properties":{"sitekey":{"type":"string","description":"The public MTCaptcha sitekey (format `MTPublic-...`), from the widget iframe URL."},"host":{"type":"string","description":"Origin of the target page (e.g. `https://example.com`)."},"hostname":{"type":"string","description":"Hostname of the target (derived from `host` when omitted)."},"lang":{"type":"string","description":"Widget language (derived from the proxy geo when omitted)."},"max_attempts":{"type":"integer","description":"Maximum internal solve attempts (fresh challenge each). Default 4."}}},"proxy":{"type":"string","description":"Required. Your proxy - the solver always routes through it, never from Apex's servers."}}},"MtCaptchaSolveResponse":{"type":"object","properties":{"solve_id":{"type":"string","description":"Identifier of the solve."},"status":{"type":"string","description":"Always `succeeded` on a 200."},"provider":{"type":"string","description":"Always `mtcaptcha`."},"result":{"type":"object","properties":{"vt":{"type":"string","description":"The verified one-time token to drop into the form's token field."}}}}},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error message."}}}}}}}}
```
