10% off ALL new Proxies – CODE: 10pro

2Captcha Proxy Setup: Solving with a German Mobile Proxy

2Captcha Proxy Setup: Solving with a German Mobile Proxy

Direct Answer

To solve token-based captchas correctly, pass your own German mobile proxy to 2Captcha using the proxyType, proxyAddress, proxyPort, proxyLogin and proxyPassword task fields. The solver then works the reCAPTCHA or Turnstile token from the same IP class you submit from — so the token is accepted, instead of being silently rejected on an IP mismatch. Add your endpoint and credentials from your account.


The Mistake Most Guides Make

Most 2Captcha tutorials send the captcha to be solved on whatever IP the solver happens to use — a random datacenter IP — and then have you submit the token from your own proxy. For a modern token challenge (reCAPTCHA, hCaptcha, Cloudflare Turnstile) that mismatch is exactly what makes a correctly solved token still fail: the site sees the token minted from one IP class and submitted from another, and treats it as suspicious.

The fix is proxy-matched solving: hand 2Captcha your German mobile proxy so the token is worked from the same IP class your request uses. 2Captcha's own documentation notes that protections such as Cloudflare and DataDome "require IP matching" — the solving IP and the submitting IP have to line up.

A CAPTCHA solver and a trusted German mobile IP are complements, not substitutes: fewer challenges appear on a high-reputation mobile IP in the first place, and the ones that do can be solved proxy-matched. See what a CAPTCHA solver is and how a mobile proxy reduces CAPTCHAs.


Before You Start

You will need a 2Captcha API key and four values from your GermanProxy.io account:

  • Your 2Captcha API key
  • Host and port of your endpoint
  • Username and password

The examples use PROXY_HOST, PORT, USER and PASS as placeholders — replace them with your own. GermanProxy.io supports HTTP, SOCKS5 and OpenVPN, so set proxyType to whichever your endpoint uses.

Install requests:

pip install requests

Step 1 — Send a Proxy-Matched Solve Task

2Captcha's createTask endpoint accepts a RecaptchaV2Task — the proxied task type. The proxy fields are what make it proxy-matched: the solver works the token through your German mobile IP.

import requests

API_KEY = "YOUR_2CAPTCHA_API_KEY"

# Your German mobile proxy — the same endpoint your own requests use
PROXY_HOST = "PROXY_HOST"
PROXY_PORT = "PORT"
PROXY_USER = "USER"
PROXY_PASS = "PASS"

task = {
    "type":          "RecaptchaV2Task",          # proxied type, NOT ...Proxyless
    "websiteURL":    "https://www.example.de/login",
    "websiteKey":    "SITE_RECAPTCHA_SITEKEY",
    "userAgent":     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
    "proxyType":     "http",                      # http | https | socks4 | socks5
    "proxyAddress":  PROXY_HOST,
    "proxyPort":     PROXY_PORT,
    "proxyLogin":    PROXY_USER,
    "proxyPassword": PROXY_PASS,
}

resp = requests.post(
    "https://api.2captcha.com/createTask",
    json={"clientKey": API_KEY, "task": task},
    timeout=30,
)
task_id = resp.json()["taskId"]
print("task id:", task_id)

websiteKey is the site's public reCAPTCHA sitekey (visible in the page source). For the proxyless variant you would use RecaptchaV2TaskProxyless and drop the proxy fields — but that lets 2Captcha pick its own IP, which cannot match your German mobile endpoint.


Step 2 — Poll for the Token

Solving is asynchronous. Poll getTaskResult until status is ready; the token comes back in solution.gRecaptchaResponse (also mirrored as solution.token).

import time

def get_token(task_id):
    while True:
        r = requests.post(
            "https://api.2captcha.com/getTaskResult",
            json={"clientKey": API_KEY, "taskId": task_id},
            timeout=30,
        ).json()
        if r.get("status") == "ready":
            return r["solution"]["gRecaptchaResponse"]
        time.sleep(5)

token = get_token(task_id)
print("token:", token[:40], "...")

Step 3 — Submit the Token From the Same IP

The token is only half the job. Submit it to the site through the same German mobile proxy you passed to 2Captcha, so the mint IP and the submit IP share one IP class:

proxies = {
    "http":  f"http://{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}",
    "https": f"http://{PROXY_USER}:{PROXY_PASS}@{PROXY_HOST}:{PROXY_PORT}",
}

resp = requests.post(
    "https://www.example.de/login",
    data={"g-recaptcha-response": token, "username": "...", "password": "..."},
    proxies=proxies,
    timeout=30,
)
print(resp.status_code)

For hCaptcha or Cloudflare Turnstile the flow is identical — the task type and the token field name change, but you still pass the same proxy fields so the challenge is worked on your German mobile IP.


Verify the IP

Before you scale, confirm both sides really run on the same German mobile IP. Request an IP-echo endpoint through the proxy you pass to 2Captcha, and check it returns a German mobile IP — not your own address and not a datacenter range:

ip = requests.get("https://api.ipify.org?format=json", proxies=proxies, timeout=30)
print(ip.json())   # should be your German mobile IP

If it returns your own address, re-check the proxy URL and credentials. See test your mobile proxy setup and, for auth errors, fix 407 proxy authentication required.


Why Proxy-Matched Solving Matters

A token challenge does not just check "was a human here" — it also weighs where the token was minted. When the solver runs on a random datacenter IP and you submit from a mobile IP, the site sees two different IP classes for one session. That inconsistency is a common reason a technically correct token is still rejected.

Proxy-matched solving removes the inconsistency: the solve and the submit both happen on your dedicated German mobile connection, so the session looks like one continuous user. Hold the endpoint as a sticky session across the solve-and-submit sequence, and rotate on demand only between independent tasks.


Why a Mobile IP Reduces CAPTCHAs at All

The best captcha is the one that never appears. Real German mobile IPs (4G/5G) sit behind CGNAT — carrier-grade NAT, where many real subscribers share one public IPv4 address (how CGNAT works). Because a single mobile IP fronts a crowd of ordinary users, sites cannot cheaply treat it as "one bot" the way they treat a lone datacenter IP, so a mobile IP tends to carry higher IP reputation and draws fewer challenges.

That is the division of labour: a trusted mobile IP keeps challenge volume low, and 2Captcha handles the residual challenges proxy-matched. For the wider picture, see mobile vs residential vs datacenter proxies and how websites detect proxies.


Scrape Responsibly

A CAPTCHA solver is for legitimate access to data you are permitted to collect — not for defeating security controls you have no right to touch. Keep your pipeline clean and defensible:

  1. Respect robots.txt and each site's terms of service, and operate only where you are permitted.
  2. Collect public data and send requests at a human-reasonable rate — add delays, don't hammer servers.
  3. Handle any personal data in line with the GDPR — collect only what you need.
  4. Solve captchas for legitimate access, not to circumvent access controls or platform rules.

These habits keep both your data and your IP reputation healthy. See is web scraping legal in the EU and are mobile proxies legal.


FAQ

Why does my solved 2Captcha token still get rejected?

Usually an IP mismatch. If the solver works the token on a random datacenter IP but you submit from a mobile IP, the site sees two different IP classes and can reject the token. Pass your own German mobile proxy so both sides share one IP class.

Do I use the proxied or the proxyless task type?

Use the proxied type (RecaptchaV2Task) with your proxy fields when the target enforces IP matching. RecaptchaV2TaskProxyless lets 2Captcha use its own IPs — fine for simple cases, but it cannot match your German mobile IP.

Which proxy types does 2Captcha accept?

HTTP, HTTPS, SOCKS4 and SOCKS5, with authentication by login and password or by IP. Set the type in proxyType and your endpoint in proxyAddress and proxyPort.

Does a mobile IP mean I stop seeing captchas?

Not entirely, but fewer appear. A real German mobile IP on a CGNAT range carries higher IP reputation than a datacenter IP, so many sites challenge it less often. The ones that remain, you solve proxy-matched. For the mechanism, see reduce CAPTCHAs with mobile proxies.

Is solving a captcha to access a site allowed?

Solve captchas only for legitimate access to data you are permitted to collect — check the terms of service and robots.txt first. A solver is not a tool to defeat security controls you have no right to touch.

HTTP or SOCKS5 for the proxy I pass to 2Captcha?

Either works. Set proxyType to http or socks5 to match your endpoint. For most reCAPTCHA and Turnstile work, HTTP is the simplest choice. Using CapSolver instead? See CapSolver with a German mobile proxy.


CTA

Solve the residual captchas proxy-matched, on an IP that draws fewer of them to begin with. Get your German mobile endpoint — HTTP/SOCKS5/OpenVPN, sticky sessions, on-demand rotation, fair-use 20 GB/day, from a transparent EU provider.


Get a German mobile proxy: Real 4G/5G IPs from Germany, fair-use 20 GB/day — see German 4G/5G mobile proxy options or get a dedicated proxy on the Blue network.

Telegram Support
Nach oben scrollen