Cloudflare Turnstile solver API
Send the sitekey and page URL. Xsolve returns a Turnstile token you can attach to the same request your users would complete in a browser.
Send a Turnstile task with cURL
The native endpoint is POST /task with mode: "turnstile". Optional fields include action, cdata, and a proxy string.
curl -X POST https://api.xsolve.me/task \
-H "X-Api-Key: <Your API Key>" \
-H "Content-Type: application/json" \
-d '{
"mode": "turnstile",
"sitekey": "0x4AAAAAAA48l90EkbvST26P",
"url": "https://example.com/login"
}'
Integrate the Turnstile solver in Python
Python clients send the same JSON fields as the cURL request. Replace the API key, sitekey, and page URL with your integration values. Inspect the JSON response before passing a solved token to the original request.
import requests
response = requests.post(
"https://api.xsolve.me/task",
headers={"X-Api-Key": "<Your API Key>"},
json={
"mode": "turnstile",
"sitekey": "<Turnstile Sitekey>",
"url": "https://example.com/login",
},
timeout=60,
)
response.raise_for_status()
print(response.json()) For response fields and error handling, read the Xsolve API documentation .
What you send
- mode: always turnstile
- url: the page that hosts the widget
- sitekey: the public Turnstile sitekey
- action and cdata: optional widget metadata
Pricing
$0.08
per 1,000 successful Turnstile solves
Failed attempts are not billed. The same rate applies to IUAM .
Frequently asked questions
How does the Xsolve Turnstile solver API work?
POST a Turnstile task to https://api.xsolve.me/task with your API key, the page URL, and the sitekey. The response includes a solved token you can submit with the original form or request.
How much does Turnstile solving cost?
Turnstile tasks cost $0.08 per 1,000 successful requests. Failed solves are not billed.
Do I need a proxy for Turnstile?
A proxy is optional for Turnstile. You can send HTTP, HTTPS, or SOCKS5 proxies when the target site expects a matching client IP.
Moving from CapSolver, 2Captcha, or another client? Keep the request body and change the base URL . For Cloudflare challenge pages without a sitekey, use the IUAM solver .