#
Quick Start
Quick start guide for CaptchaSolv API. Send your first solve request in under a minute.
#
Installation
pip install captchasolv
pip install requests
npm install axios
#
Sync Solving (Recommended)
The /solve endpoint waits for the result and returns it directly. Set your HTTP timeout to at least 130 seconds.
from captchasolv import CaptchaSolv
solver = CaptchaSolv("YOUR_API_KEY")
result = solver.turnstile(
website_url="https://example.com",
website_key="0x4AAAAAAABS7vwvV6VFfMcD"
)
print(result.solution.token)
import requests
response = requests.post("https://v1.captchasolv.com/solve", json={
"clientKey": "YOUR_API_KEY",
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com",
"websiteKey": "0x4AAAAAAABS7vwvV6VFfMcD"
}
}, timeout=130)
print(response.json()["solution"]["token"])
const response = await axios.post('https://v1.captchasolv.com/solve', {
clientKey: 'YOUR_API_KEY',
task: {
type: 'TurnstileTaskProxyless',
websiteURL: 'https://example.com',
websiteKey: '0x4AAAAAAABS7vwvV6VFfMcD'
}
}, { timeout: 130000 });
console.log(response.data.solution.token);
#
Async Solving
Use /createTask + /getTaskResult for non-blocking workflows.
import requests, time
API_KEY = "YOUR_API_KEY"
BASE = "https://v1.captchasolv.com"
# 1. Create task
task_id = requests.post(f"{BASE}/createTask", json={
"clientKey": API_KEY,
"task": {
"type": "TurnstileTaskProxyless",
"websiteURL": "https://example.com",
"websiteKey": "0x4AAAAAAABS7vwvV6VFfMcD"
}
}).json()["taskId"]
# 2. Poll for result
while True:
result = requests.post(f"{BASE}/getTaskResult", json={
"clientKey": API_KEY,
"taskId": task_id
}).json()
if result["status"] == "ready":
print(result["solution"]["token"])
break
time.sleep(3)
const BASE = 'https://v1.captchasolv.com';
// 1. Create task
const { data: { taskId } } = await axios.post(`${BASE}/createTask`, {
clientKey: 'YOUR_API_KEY',
task: {
type: 'TurnstileTaskProxyless',
websiteURL: 'https://example.com',
websiteKey: '0x4AAAAAAABS7vwvV6VFfMcD'
}
});
// 2. Poll for result
while (true) {
const { data: result } = await axios.post(`${BASE}/getTaskResult`, {
clientKey: 'YOUR_API_KEY',
taskId
});
if (result.status === 'ready') {
console.log(result.solution.token);
break;
}
await new Promise(r => setTimeout(r, 3000));
}
#
Using Proxies
Change the task type from *TaskProxyless to *Task and add proxy:
{
"type": "TurnstileTask",
"websiteURL": "https://example.com",
"websiteKey": "0x4AAAAAAABS7vwvV6VFfMcD",
"proxy": "http://user:pass@host:port"
}
#
Next Steps