10% off ALL new Proxies – CODE: 10pro

CapSolver Proxy Setup: Proxy-Matched Solving Guide

CapSolver Proxy Setup: Proxy-Matched Solving Guide

Direct Answer

To solve token-based captchas correctly with CapSolver, use a proxied task type and add your German mobile proxy via the proxyType, proxyAddress, proxyPort, proxyLogin and proxyPassword fields. The challenge is then worked through your IP — so the token matches the IP class you submit from and is accepted, instead of being rejected on an IP mismatch. Add your endpoint and credentials from your account.


The Mistake Most Guides Make

A lot of CapSolver examples reach for the ...ProxyLess task type: you let CapSolver solve on its own IP infrastructure, then submit the token from your own proxy. For a modern token challenge (reCAPTCHA, hCaptcha, Cloudflare Turnstile) that split is exactly what makes a correctly solved token still fail — the token is minted on one IP class and submitted from another, and the site treats the mismatch as suspicious.

The fix is proxy-matched solving: use the non-ProxyLess task type and hand CapSolver your German mobile proxy, so the challenge is worked on the same IP class your request uses. CapSolver's own documentation is explicit that a ProxyLess type ignores any proxy you supply — to match your IP you must use the proxied variant.

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 CapSolver API key (the clientKey) and four values from your GermanProxy.io account:

  • Your CapSolver 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 — Create a Proxy-Matched Task

CapSolver's createTask endpoint takes a task object. Use ReCaptchaV2Task — the proxied type — and add the proxy fields so the challenge is worked through your German mobile IP.

import requests

CLIENT_KEY = "YOUR_CAPSOLVER_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",
    "proxyType":     "http",                      # http | https | socks5
    "proxyAddress":  PROXY_HOST,
    "proxyPort":     int(PROXY_PORT),
    "proxyLogin":    PROXY_USER,
    "proxyPassword": PROXY_PASS,
}

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

CapSolver also accepts the proxy as a single string instead of the five fields — set "proxy": "http:PROXY_HOST:PORT:USER:PASS" (or socks5:...) in the task. Either form points CapSolver at your endpoint. websiteKey is the site's public reCAPTCHA sitekey from the page source.

For Cloudflare Turnstile, CapSolver uses AntiTurnstileTaskProxyLess with an optional metadata object (action, cdata) — the same submit-through-your-proxy step below still applies.


Step 2 — Poll for the Token

Solving is asynchronous. Poll getTaskResult until status is ready; the token comes back in solution.gRecaptchaResponse.

import time

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

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 gave CapSolver, 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 Turnstile the flow is identical — the task type and the token field name change, but you still route the solve through 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 gave CapSolver, 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 only ask "was a human here" — it also weighs where the token was minted. When CapSolver solves on its own 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 it: the solve and the submit both happen on your dedicated German mobile connection, so the session reads as one continuous user. Hold the endpoint as a sticky session across the solve-and-submit sequence, and rotate on demand only between independent tasks. If you are already seeing blocks before any captcha, see fix 403 Forbidden when scraping.


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 CapSolver handles the residual challenges proxy-matched. For the wider picture, see mobile vs residential vs datacenter proxies and what a mobile proxy is.


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 CapSolver token still fail after a successful solve?

Usually an IP mismatch. If CapSolver works the token on its own IP but you submit from a mobile IP, the site sees two IP classes for one session and can reject the token. Use a proxied task and pass your own German mobile proxy so both sides match.

Which CapSolver task type do I use with my own proxy?

The non-ProxyLess type — ReCaptchaV2Task — and supply the proxy fields. A ...ProxyLess type ignores your proxy and uses CapSolver's own IPs, which cannot match your German mobile endpoint.

How do I pass the proxy in a CapSolver task?

Either as separate fields (proxyType, proxyAddress, proxyPort, proxyLogin, proxyPassword) or as one proxy string like http:host:port:user:pass. Both point CapSolver at your German mobile endpoint.

Does a mobile IP mean CapSolver has less to do?

Often, yes. A real German mobile IP on a CGNAT range carries higher IP reputation than a datacenter IP, so many sites challenge it less. CapSolver then handles only the residual challenges, proxy-matched. For the mechanism, see reduce CAPTCHAs with mobile proxies.

Is solving a captcha to reach a site allowed?

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

HTTP or SOCKS5 for the proxy I give CapSolver?

Either. Set proxyType to http or socks5 to match your endpoint. For most reCAPTCHA and Turnstile work, HTTP is the simplest choice. Using 2Captcha instead? See 2Captcha 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 IP — 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 start small with a shared 5G proxy.

Telegram Support
Nach oben scrollen