Home/Blog/CAPTCHA Solving with Mobile Proxies
Developer Guide

CAPTCHA Solving with Mobile Proxies: A Technical Guide

CAPTCHAs block automated traffic even when your IP is clean. Solving them requires two components — a solver service and consistent session state. Here's how they integrate with mobile proxy flows.

12 min read·2Captcha, CapSolver, Anti-Captcha — Python examples

How CAPTCHA Services Work

Every commercial CAPTCHA solver exposes two operating modes. Pick the right one based on how strict the target's fingerprinting is.

Token mode

You send the site-key + page URL. The service returns a token you inject into the form. Your proxy session posts it. Works for reCAPTCHA, hCaptcha, Turnstile.

Proxy-forwarded mode

You supply your own proxy credentials to the solver so their solve context matches your session IP. Critical for sticky sessions on fingerprinting sites.

2Captcha Pricing (2026)

Human workforce, operating since 2007, covers 30+ CAPTCHA types. Good baseline for accuracy on obscure formats.

CAPTCHA typePrice per 1,000
reCAPTCHA v2€0.99 – €2.80
reCAPTCHA v3 / Enterprise$1.00 – $2.99
hCaptcha~$1.00
Cloudflare Turnstile€1.40
GeeTest v3/v4€2.80
Arkose / FunCaptcha€1.40 – €50

CapSolver Pricing (AI-first)

ML-based, faster response times, and lower unit economics on high volume. Offers TaskProxyLess and standard proxy-forwarded variants.

CAPTCHA typePrice per 1,000
reCAPTCHA v2$0.80
reCAPTCHA v3$1.00
Cloudflare Turnstile$1.20
hCaptcha$0.60 – $0.90
GeeTest v3/v4$1.20
AWS WAF$2.00

Anti-Captcha Pricing

100% human workforce, operating since 2007. Slightly more expensive on complex CAPTCHAs, but solve quality is consistent.

CAPTCHA typePrice per 1,000
Simple image$0.70 – $2.00
Complex (reCAPTCHA, hCaptcha)$3.00 – $5.00

Python Integration with 2Captcha + Mobile Proxy

Working example using RecaptchaV2TaskProxied — the solver attaches to your proxy, solves in your session context, and returns a token you post back through the same tunnel.

import requests
import time

API_KEY = "YOUR_2CAPTCHA_KEY"
PROXY = "user:pass@hostname:port"
SITE_KEY = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
PAGE_URL = "https://example.com/login"

def solve_recaptcha_v2():
    # Submit solving task with your proxy
    task = requests.post("https://api.2captcha.com/createTask", json={
        "clientKey": API_KEY,
        "task": {
            "type": "RecaptchaV2TaskProxied",
            "websiteURL": PAGE_URL,
            "websiteKey": SITE_KEY,
            "proxyType": "http",
            "proxyAddress": "hostname",
            "proxyPort": 12345,
            "proxyLogin": "user",
            "proxyPassword": "pass",
        },
    }).json()
    task_id = task["taskId"]

    # Poll for result (typical solve time 10-30s)
    for _ in range(60):
        time.sleep(5)
        result = requests.post("https://api.2captcha.com/getTaskResult", json={
            "clientKey": API_KEY,
            "taskId": task_id,
        }).json()
        if result.get("status") == "ready":
            return result["solution"]["gRecaptchaResponse"]
    raise TimeoutError("CAPTCHA solve timeout")

# Use the token in your form POST via same proxy
token = solve_recaptcha_v2()
form_data = {"g-recaptcha-response": token, "username": "...", "password": "..."}
requests.post(
    PAGE_URL,
    data=form_data,
    proxies={"http": f"http://{PROXY}", "https": f"http://{PROXY}"},
)

Why Proxy-Forwarded Mode Matters

If the solver uses a different IP than your session posting the token, sites with strict fingerprinting detect the mismatch. The solve context — IP, geolocation, browser signals — all feed into risk scores for reCAPTCHA v3 and Turnstile.

Always pass proxy credentials in the task payload for sticky workflows. The extra $0.20 per 1,000 is trivial compared to burning a session.

Cost Optimization

  • Batch solve requests when possible — many solvers support parallel task submission.
  • Cache tokens that haven't expired. reCAPTCHA v2 tokens are valid for 2 minutes.
  • Use token mode (cheaper) for simple sites; reserve proxy-forwarded for strict fingerprinters.
  • Monitor solve success rate — below 90% means you're using the wrong solver for that CAPTCHA type.

A clean mobile IP reduces CAPTCHA trigger rate dramatically. The cheapest solve is the one you never pay for — good proxy infrastructure is upstream of your solver bill.

Related Articles

Fewer CAPTCHAs Start Upstream

A clean mobile carrier IP triggers fewer challenges in the first place. Test it for $5 before you scale your solver budget.