MTCaptcha

MTCaptcha Solver: Bypass MTCaptcha and Get a Verified Token

Send the MTPublic sitekey and the page address, and CapSkip hands back a verified MTCaptcha token for the form. Text challenges and invisible widgets are answered on a PC or VPS you run, usually in about 3 seconds, with no meter counting tokens.

Windows x64·Runs locally, so no CAPTCHA leaves your machine
  • Text image and invisible mode
  • v1 token, ready for the form
  • Flat monthly price
MTCaptcha tokens a month40,000
40.0k250.0k
Metered elsewhere, about $1.45 per 1,000$58.00
CapSkip Bronze, flat$35.00
$23.00stays in your pocketevery month, at this volume

MTCaptcha guards login, sign-up and checkout forms with a short line of warped letters, or with an invisible check that only shows a picture when a visit looks suspicious. CapSkip is an MTCaptcha solver that clears it for your scripts: it returns the verified token the widget would have written into the form, and your automation submits the page as a person would. All of it happens on a Windows machine of your own, be it a desktop, a VPS or a dedicated server.

A job needs very little: the sitekey that starts with MTPublic-, the address of the page holding the widget, and the action name if the page sets one. You never open the widget yourself. CapSkip requests and answers its own challenge, then replies with a token that begins with v1(, ready for the mtcaptcha-verifiedtoken field.

Metered services charge about $1.45 for every thousand MTCaptcha tokens, and a token is single-use, so every form you submit is another one. With CapSkip you pay one monthly price from $35 for each computer that runs it, and the number of tokens never enters the bill. Scripts built around in.php and res.php, createTask jobs of type MTCaptchaTask, and DeathByCaptcha uploads of type 18 all keep working once they point at CapSkip.

Use each token at once. An MTCaptcha token works one time and only for a few minutes, so request it just before you submit the form and never keep a stock of them. Read the MTCaptcha API reference

What the MTCaptcha solver handles

Visible and invisible widgets

The standard widget with its text picture and the low-friction mode that stays hidden until it doubts a visitor both come back as the same kind of token, so one integration covers either setup.

A token the form accepts

The reply is the verified token MTCaptcha issues, starting with v1(. Put it in the mtcaptcha-verifiedtoken field, or wherever the page reads it, and submit the form straight away.

About 3 seconds a token

A typical MTCaptcha job is finished in around 3 seconds. Nothing of yours waits in a shared queue, so the pace is set by your machine and the number of MTCaptcha jobs you let run at once.

Wrong sitekeys flagged at once

A sitekey MTCaptcha does not know, or one that is not allowed on the page you named, comes back as its own error rather than an endless retry, so a typo in your config is obvious on the first job.

Three request formats accepted

method=mt_captcha on in.php, createTask with MTCaptchaTask or MtCaptchaTaskProxyless, and DeathByCaptcha type 18 all work, and every reply is formatted the way the calling library expects.

Every form submission covered

Tokens are single-use, so a busy sign-up or login flow burns through them quickly. Each one falls under the monthly plan, however many forms you post.

Three ways to send MTCaptcha jobs to CapSkip

Python
import time
import requests

API = "http://127.0.0.1:8080"
KEY = "YOUR_API_KEY"

# The sitekey comes from the page's mtcaptchaConfig object.
job = requests.post(API + "/in.php", data={
    "key": KEY,
    "method": "mt_captcha",
    "sitekey": "MTPublic-KzqLY1cKH",
    "pageurl": "https://www.example.com/login",
    "json": 1,
}).json()

while True:
    time.sleep(3)
    res = requests.get(API + "/res.php", params={
        "key": KEY, "action": "get", "id": job["request"], "json": 1,
    }).json()
    if res["request"] != "CAPCHA_NOT_READY":
        break
if res["status"] != 1:
    raise RuntimeError(res["request"])

# The token is single-use and short-lived: submit the form right away.
requests.post("https://www.example.com/login", data={
    "username": "alice",
    "password": "YOUR_PASSWORD",
    "mtcaptcha-verifiedtoken": res["request"],
})

Plain HTTP is enough for MTCaptcha: post the sitekey and page address to in.php, poll res.php for the token, then send it with the form in the mtcaptcha-verifiedtoken field.

Legacy in.php and res.php

Post method=mt_captcha with the sitekey and the page URL, add the action if the page sets one, then poll res.php and read the v1 token after OK|.

createTask with MTCaptchaTask

JSON clients send MTCaptchaTask, or MtCaptchaTaskProxyless when no proxy goes with the job, with isInvisible for low-friction widgets, and read the token from the solution that getTaskResult returns.

DeathByCaptcha type 18

Tools written for DeathByCaptcha keep uploading type 18 with their mtcaptcha_params, and the result carries the token in its text field, which is the field those tools already read.

Your first MTCaptcha token in three steps

  1. Set up CapSkip next to your scripts

    Install it on the Windows machine that posts your forms. No browser is involved in an MTCaptcha job, so modest hardware copes fine. Download CapSkip

  2. Start a trial or pick a plan

    The free trial lets you check MTCaptcha on your own targets before you pay. When you are ready, choose how many machines to license. See the plans

  3. Send the sitekey, post the form

    Submit the MTPublic sitekey and the page URL, wait about 3 seconds, and put the returned token in mtcaptcha-verifiedtoken as you submit. Open the MTCaptcha docs

Flat-rate MTCaptcha solving vs paying per token

Both routes end with a v1 token in your form. They differ in what each token costs and in who learns which sites you automate.

FeatureCapSkipPer-token services
Monthly billOne price per machine from $35, unlimited tokensAbout $1.45 per 1,000 MTCaptcha tokens
Widget modesText challenges and invisible widgets through one requestNot every service takes the invisible mode
Typical solve timeAbout 3 seconds, with no queue in front of your jobsDepends on the provider's load at the time
A single-use token per formAs many fresh tokens as your forms need, same priceEvery form you submit is another charge
Your existing clientYour in.php, createTask or type 18 calls, unchangedOften tied to that vendor's own SDK and task names
Who sees your targetsNobody: sitekeys and pages stay on your machineA third party logs every sitekey and page you send

Pricing

Stop paying per solve

Choose your license

Bronze License

$35/ month

Subscribe to Bronze

Instant license activation

Billed monthly. Cancel from your account whenever you like.

Same features. More machines, more throughput.

Every machine solves as fast as its own CPU and memory allow. More machines run more threads at the same time, so Silver solves twice as many CAPTCHAs at once and Gold three times as many.

  • Unlimited solving, no daily cap
  • Unlimited threads, speed scales with your hardware
  • 90% to 100% recognition accuracy
  • Drop-in replacement for the major solving service APIs
  • Works with almost any tool, no coding required
  • REST API, SDKs and a browser extension
  • Free training when a new CAPTCHA type appears
  • Runs on your machine, nothing leaves it

Every CAPTCHA type CapSkip solves is on every license. See the coverage band

Just want to try it first?

Start with a free 3-day trial and solve 500 CAPTCHAs of any type on your own targets.

Start the free trial

How MTCaptcha works, and how to bypass it through an API

Sites add MTCaptcha by loading a small script and giving it a sitekey that begins with MTPublic-. In its standard form it shows a picture of four to seven distorted characters, partly covered by a coloured ellipse, with an input box below it and buttons for audio and a new picture. Answers are not case sensitive. Sites that want less friction turn on the invisible mode, which lets most visitors through untouched and only puts the picture in front of the ones it doubts.

Whichever mode a site uses, the outcome a form needs is the same: a verified token, beginning with v1(, that the widget places in a hidden field named mtcaptcha-verifiedtoken. When the form arrives, the site's server asks MTCaptcha whether that token is genuine. That makes the token, not the answer to one particular picture, the thing an MTCaptcha bypass has to produce, and it is what CapSkip returns.

Two properties of the token shape any automation. It is single-use, so every form submission needs a fresh one, and it is short-lived, valid for a few minutes at most, so request it just before you post the form rather than collecting a stock in advance. It is also tied to the sitekey and to the domains that sitekey is registered for, which is why the page address you send has to be the real one.

A few tests can run from your own connection. When you solve MTCaptcha at volume, spread the work over a pool of proxies, either a list set in the app or one proxy sent with each job, because every solve fetches fresh challenges from MTCaptcha, and a steady stream of them from a single address is exactly what rate limiting is designed to slow down.

Related guides: MTCaptcha API reference · Image CAPTCHA solver · CAPTCHA solving for web scraping

What comes back from an MTCaptcha job?
A verified MTCaptcha token that starts with v1(. The legacy res.php call gives it after OK|, or in the request field with json=1. A createTask job returns it as the token in the solution object, and DeathByCaptcha type 18 returns it in the text field.
Where do I find the MTCaptcha sitekey?
Look in the page source for the mtcaptchaConfig object: its sitekey value starts with MTPublic-. If the page sets an action there as well, send that too. When the widget is already on screen, the same sitekey appears in the address of its iframe on service.mtcaptcha.com.
Does CapSkip handle invisible MTCaptcha?
Yes. Invisible, or low-friction, widgets are answered through the same request as the visible text challenge, and the reply is the same kind of token. With createTask you can mark the job with isInvisible, and if MTCaptcha decides a picture is needed after all, CapSkip answers it.
How long does an MTCaptcha token stay valid?
Only a few minutes, and only once. Ask for it right before you submit the form and use it straight away. A token that sat in a queue or was already used will be rejected by the site, so request a fresh one for each submission.
Do I need proxies for MTCaptcha?
Not to get started: MTCaptcha solves from your own connection, which is fine for tests and the occasional form. For steady volume, spread jobs over several proxies, loaded as a list in the settings or attached to each request, so no single address sends MTCaptcha enough requests to be slowed down.
How fast is an MTCaptcha solve?
About 3 seconds is typical. Your jobs never wait behind anyone else's, so speed depends on the machine running CapSkip and on how many MTCaptcha jobs you allow side by side, and that limit is yours to raise or lower.
What if the sitekey or the page address is wrong?
CapSkip stops and tells you instead of retrying forever. A sitekey MTCaptcha does not recognise returns ERROR_RECAPTCHA_INVALID_SITEKEY, and a sitekey that is not allowed on the domain of the page you sent returns ERROR_RECAPTCHA_INVALID_DOMAIN. Fix the job and send it again.
Will my existing MTCaptcha code work with CapSkip?
Usually without changes. CapSkip accepts in.php with method=mt_captcha, createTask with MTCaptchaTask or MtCaptchaTaskProxyless (and the MtCaptchaTaskProxyLess spelling CapSolver uses), and DeathByCaptcha type 18. Pick the same service in the CapSkip settings and your code keeps running unchanged, now answered on your own computer.
Does solving more MTCaptcha cost more?
No. You license machines, not tokens: Bronze covers one computer for $35 a month, and nothing is metered on top. A sign-up flow that asks for a fresh token on every attempt is billed exactly like a script that needs one each morning.

Get past MTCaptcha without paying per token

Point your form automation at CapSkip and let it fetch an MTCaptcha token whenever a page asks for one. Visible pictures, invisible checks and every repeat token are covered by the same monthly price.