MCPcopy Index your code
hub / github.com/alperensert/capmonster_python

github.com/alperensert/capmonster_python @v5.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v5.0.0 ↗ · + Follow
214 symbols 1,158 edges 51 files 59 documented · 28% updated 3mo agov5.0.0 · 2026-03-16★ 52
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Capmonster Python

PyPI - Python Version GitHub Release GitHub last commit GitHub Repo stars

A modern, strongly-typed Python SDK for CapMonster Cloud — solve reCAPTCHA, Turnstile, GeeTest, and 20+ other CAPTCHA types with both sync and async support.

Installation

pip install capmonster_python

[!IMPORTANT] This is v4 of Capmonster Python, which includes breaking changes from v3.x. For the legacy API: pip install capmonster_python==3.2

Quick Start

from capmonster_python import CapmonsterClient, RecaptchaV2Task

client = CapmonsterClient(api_key="YOUR_API_KEY")

task = RecaptchaV2Task(
    websiteURL="https://example.com",
    websiteKey="SITE_KEY_HERE"
)

result = client.solve(task)
print(result)  # {"gRecaptchaResponse": "03AGdBq24..."}

Async

import asyncio
from capmonster_python import CapmonsterClient, RecaptchaV3Task

async def main():
    async with CapmonsterClient(api_key="YOUR_API_KEY") as client:
        task = RecaptchaV3Task(
            websiteURL="https://example.com",
            websiteKey="SITE_KEY_HERE",
            minScore=0.5,
            pageAction="verify"
        )
        result = await client.solve_async(task)
        print(result)

asyncio.run(main())

With Proxy

from capmonster_python import CapmonsterClient, RecaptchaV2Task, ProxyPayload

client = CapmonsterClient(api_key="YOUR_API_KEY")

task = RecaptchaV2Task(
    websiteURL="https://example.com",
    websiteKey="SITE_KEY_HERE",
    proxy=ProxyPayload(
        proxyType="http",
        proxyAddress="1.2.3.4",
        proxyPort=8080,
        proxyLogin="user",
        proxyPassword="pass"
    )
)

result = client.solve(task)

Client API

CapmonsterClient(api_key, timeout=30.0, max_retries=120, retry_delay=2.0)
Method Description
solve(task) Create task and poll until solved
create_task(task) Create a task, returns task_id
join_task_result(task_id) Poll until result is ready
get_task_result(task_id) Single poll (no waiting)
get_balance() Get account balance
get_user_agent() Get current valid User-Agent string
report_incorrect_image(task_id) Report bad image captcha solution
report_incorrect_token(task_id) Report bad token captcha solution

All methods have async variants with the _async suffix (e.g. solve_async, get_balance_async).

Both sync and async context managers are supported for proper connection cleanup.

Supported CAPTCHA Types

reCAPTCHA

CAPTCHA Type Class Proxy
reCAPTCHA v2 RecaptchaV2Task Optional
reCAPTCHA v2 Enterprise RecaptchaV2EnterpriseTask Optional
reCAPTCHA v3 RecaptchaV3Task No
reCAPTCHA v3 Enterprise RecaptchaV3EnterpriseTask No
reCAPTCHA Click RecaptchaClickTask Optional

Cloudflare

CAPTCHA Type Class Proxy
Turnstile TurnstileTask No
Turnstile Challenge (cf_clearance) TurnstileCloudFlareTask Required
Turnstile Waiting Room TurnstileWaitingRoomTask Required

Image-Based

CAPTCHA Type Class Proxy
Image-to-Text OCR ImageToTextTask No
Complex Image (reCAPTCHA grid) ComplexImageRecaptchaTask No
Complex Image Recognition ComplexImageRecognitionTask No

Behavioral / Interactive

CAPTCHA Type Class Proxy
GeeTest v3 GeeTestV3Task Optional
GeeTest v4 GeeTestV4Task Optional
FunCaptcha (Arkose Labs) FunCaptchaTask Optional
Hunt HuntTask Optional

Enterprise Protection

CAPTCHA Type Class Proxy
DataDome DataDomeTask Required
Imperva (Incapsula) ImpervaTask Required
Amazon WAF AmazonTask Optional
TSPD TSPDTask Optional

Platform-Specific

CAPTCHA Type Class Proxy
Binance BinanceTask Required
Temu TemuTask No
TenDI TenDITask Required

Other

CAPTCHA Type Class Proxy
Altcha AltchaTask No
Basilisk BasiliskTask No
Castle CastleTask No
MTCaptcha MTCaptchaTask Optional
Prosopo ProsopoTask Optional
Yidun YidunTask Optional

Don't see your captcha type? Use VanillaTaskPayload to build custom task payloads without waiting for an SDK update.

Advanced Usage

Callback URLs

result = client.solve(task, callback_url="https://yoursite.com/callback")

Report Incorrect Solutions

task_id = client.create_task(task)
result = client.join_task_result(task_id)

# If the token was rejected by the target site:
client.report_incorrect_token(task_id)

Fresh Token Generation

Use nocache=True on reCAPTCHA tasks to prevent cached token reuse:

task = RecaptchaV2Task(
    websiteURL="https://example.com",
    websiteKey="SITE_KEY_HERE",
    nocache=True
)

Documentation

Full API reference available at alperensert.github.io/capmonster_python.

Support

[!NOTE] Support is limited to questions and issues related to this project. Custom integrations and application-specific logic are outside the scope of support.

License

MIT License

Core symbols most depended-on inside this repo

create_task
called by 9
src/capmonster_python/client.py
create_task_async
called by 9
src/capmonster_python/client.py
to_request
called by 7
src/capmonster_python/tasks/recaptcha_v2.py
get_balance
called by 5
src/capmonster_python/client.py
join_task_result
called by 5
src/capmonster_python/client.py
get_balance_async
called by 4
src/capmonster_python/client.py
join_task_result_async
called by 4
src/capmonster_python/client.py
to_request
called by 4
src/capmonster_python/tasks/recaptcha_v2_enterprise.py

Shape

Function 105
Method 63
Class 46

Languages

Python100%

Modules by API surface

tests/client_mock_test.py50 symbols
src/capmonster_python/client.py25 symbols
tests/integration_test.py12 symbols
src/capmonster_python/tasks/turnstile.py7 symbols
src/capmonster_python/exceptions.py7 symbols
src/capmonster_python/tasks/task.py6 symbols
src/capmonster_python/tasks/complex_image_recaptcha.py5 symbols
src/capmonster_python/methods.py5 symbols
tests/amazon_test.py4 symbols
src/capmonster_python/tasks/geetest.py4 symbols
src/capmonster_python/tasks/datadome.py4 symbols
scripts/generate_changelog.py4 symbols

For agents

$ claude mcp add capmonster_python \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact