Getting Started
One HTTP API for Turnstile, reCAPTCHA, Noname and Cloudflare Interstitial. Submit a task, poll for the solution β usually under ten seconds.
How it works
1. Get a key
Grab one from our Telegram bot in under a minute.
2. Submit a task
Send the page URL and sitekey, get a task ID back.
3. Get your solution
Fetch the result a moment later β token in hand.
Your first request
Three steps from zero to a solved token. Same flow for every captcha type β only the endpoint path and body fields change.
Get your API key
Message @solvium_crypto_bot on Telegram β instant key, free tier, no verification. Every authenticated request carries it in the X-Solvium-Auth header:
X-Solvium-Auth: YOUR_API_KEY
One key works for every captcha type, and keys don't expire.
Submit a task
Pick the endpoint for your captcha type and POST a JSON body. For Turnstile:
curl -X POST https://captcha.solvium.io/v2/tasks/turnstile \
-H "X-Solvium-Auth: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"site_key": "0x4AAAAAAA-3X4Nd7hf3mNGx"
}'The server responds with 201 Created and a queued task:
{
"task_id": "01959e02-08fd-7000-8cbe-f682a959b3c1",
"status": "pending",
"type": "turnstile",
"created_at": "2026-04-24T10:11:28.000Z"
}Browse the API Reference for the body schema of each captcha type.
Get your solution
Hit the status endpoint with the task_id until status is completed (or rejected):
curl https://captcha.solvium.io/v2/tasks/01959e02-08fd-7000-8cbe-f682a959b3c1 \
-H "X-Solvium-Auth: YOUR_API_KEY"Once the worker finishes, the same endpoint returns the solution:
{
"task_id": "01959e02-08fd-7000-8cbe-f682a959b3c1",
"status": "completed",
"type": "turnstile",
"created_at": "2026-04-24T10:11:28.000Z",
"completed_at": "2026-04-24T10:11:40.000Z",
"duration": 12.0,
"solution": { "token": "0.AbCdEfβ¦" },
"error": null,
"cost": "0.0009"
}The token in solution is what you submit back to the target site. See Task Status for the full state machine.
Just use the SDK
For Python, skip the polling boilerplate β pip install solvium, give it a key, get a token.
from solvium import Solvium
solution = Solvium(api_key="YOUR_API_KEY").turnstile_sync(
url="https://example.com",
site_key="0x4AAAAAAA-3X4Nd7hf3mNGx",
)
print(solution["token"])