Local API solver for Cloudflare Turnstile and IUAM (Under Attack Mode) β harvests tokens and cf_clearance cookies via a real browser.
Features β’ Quick Start β’ Usage β’ API β’ Contact
New in 2.0: IUAM support β pass Cloudflare "Under Attack" interstitials and harvest
cf_clearancevia the new/cf_clearanceendpoint. Modular architecture (turnstile/cf_clearance/core), in-memory task storage, quiet logs.
- π― Turnstile solving - Route-intercept stub page with real-page fallback, 5-15 seconds per solve
- π‘οΈ IUAM / Challenge pass - Managed Challenge + JS Challenge interstitials, harvests
cf_clearancewith the full replay bundle (cookies, User-Agent, headers) - π Multi-threaded - Solve multiple tasks simultaneously with a concurrency limit
- π Multiple browsers - Chrome, Edge, Chromium, Camoufox
- π Proxy support - All formats from
proxies.txt, plus per-request proxy for/cf_clearance - π REST API - Async task model (create task β poll result), easy to integrate
- π¦ No database - Tasks live in memory, nothing to maintain
git clone https://github.com/D3-vin/Turnstile-Solver-NEW.git
cd Turnstile-Solver-NEW
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # macOS/Linux
pip install -r requirements.txtpython -m patchright install chromium # or: install msedge / use system Chrome
python -m camoufox fetch # if you want Camoufoxpython api.pyServer starts on http://0.0.0.0:5072.
python api.py [options]
Options:
--no-headless Show the browser window (default: headless)
--browser_type string chromium | chrome | msedge | camoufox (default "chrome")
--thread int Max concurrent solves (default 4)
--proxy Use random proxy from proxies.txt
--useragent string Custom User-Agent
--debug Verbose logging + HTTP access logs
--host string Listen address (default "0.0.0.0")
--port string Listen port (default "5072")Test client:
python test_solve.py # Turnstile (bypass.city)
python test_solve.py --type cf_clearance # IUAM (ivasms.com)
python test_solve.py --type cf_clearance --proxy http://user:pass@ip:portGET /turnstile?url=https://example.com&sitekey=0x4AAAAAAA
| Parameter | Type | Description | Required |
|---|---|---|---|
url |
string | Page where Turnstile is validated | Yes |
sitekey |
string | Turnstile site key | Yes |
action |
string | Widget data-action binding |
No |
cdata |
string | Widget data-cdata binding |
No |
GET /cf_clearance?url=https://protected.com&proxy=http://user:pass@ip:port
| Parameter | Type | Description | Required |
|---|---|---|---|
url |
string | Cloudflare-protected page URL | Yes |
proxy |
string | Per-request proxy (cf_clearance is bound to the exit IP) | No |
timeout |
int | Solve timeout, seconds (default 60) | No |
Both endpoints return a task:
{ "errorId": 0, "taskId": "d2cbb257-9c37-4f9c-9bc7-1eaee72d96a8" }GET /result?id=d2cbb257-9c37-4f9c-9bc7-1eaee72d96a8
Processing:
{ "status": "processing" }Turnstile ready:
{ "errorId": 0, "status": "ready", "solution": { "token": "0.KBtT-r..." } }cf_clearance ready:
{
"errorId": 0,
"status": "ready",
"solution": {
"cf_clearance": { "name": "cf_clearance", "value": "...", "domain": ".example.com" },
"cookies": [ "..." ],
"user_agent": "Mozilla/5.0 ...",
"headers": { "User-Agent": "...", "Accept-Language": "..." },
"proxy": "http://...",
"warning": "cf_clearance is bound to IP + JA3/TLS + User-Agent..."
}
}
β οΈ Replaycf_clearanceonly from the same IP, with the returneduser_agent, over a client with a matching TLS fingerprint (curl-impersonate or a real browser).
Turnstile-Solver-NEW/
βββ api.py # Quart app: routes, in-memory tasks, CLI
βββ test_solve.py # Test client (turnstile / cf_clearance)
βββ requirements.txt
βββ core/
β βββ browser.py # Browser config, launch, context, proxy helpers
β βββ logger.py # Colored logger
β βββ templates.py # Turnstile HTML template, JS snippets, route glob
βββ turnstile/
β βββ solve.py # Route-intercept + real-page Turnstile solving
βββ cf_clearance/
βββ solve.py # IUAM interstitial pass + cf_clearance harvest
Install the browser: python -m patchright install chromium (or use --browser_type chrome with system Chrome).
Change it: python api.py --port 5080.
Datacenter IPs are scored harshly β run with --no-headless and/or a residential proxy.
- GitHub: https://github.com/D3-vin/Turnstile-Solver-NEW
- Telegram Channel: @D3_vin
- Telegram Chat: @D3vin_chat
- EVM: 0xeba21af63e707ce84b76a87d0ba82140048c057e (ETH, BNB, etc)
- TRON: TEfECnyz5G1EkFrUqnbFcWLVdLvAgW9Raa
- TON: UQCJ7KC2zxV_zKwLahaHf9jxy0vsWRcvQFie_FUBJW-9LcEW
- BTC: bc1qdag98y5yahs6wf7rsfeh4cadsjfzmn5ngpjrcf
- SOL: EwXXR4VqmWSNz1sjhZ8qcQ882i4URwAwhixSPEbDzyv6
- SUI: 0x76da9b74c61508fbbd0b3e1989446e036b0622f252dd8d07c3fce759b239b47d
Educational use only - see LICENSE file.