Authentication
This endpoint requires an API key passed via header.
Request Body
The type of challenge to solve. One of: turnstile, waf, wafauto, datadome.
The challenge-specific parameters. The required fields depend on the task_type — see the task type pages linked below.
Supported Task Types
Turnstile Cloudflare Turnstile CAPTCHA
WAF Cloudflare WAF challenge
WAF Auto Cloudflare WAF challenge (automatic)
DataDome DataDome bot protection
Request Examples
Turnstile
curl -X POST https://api.solv.now/v1/task/execute \
-H "Content-Type: application/json" \
-H "X-Api-Key: your-api-key" \
-d '{
"task_type": "turnstile",
"task_data": {
"sitekey": "0x4AAAAAABs37s-ih7Jepz0J",
"url": "https://example.com/",
"proxy": "http://user:pass@1.2.3.4:8080"
}
}'
WAF / WAF Auto
curl -X POST https://api.solv.now/v1/task/execute \
-H "Content-Type: application/json" \
-H "X-Api-Key: your-api-key" \
-d '{
"task_type": "waf",
"task_data": {
"url": "https://example.com/",
"proxy": "http://user:pass@1.2.3.4:8080"
}
}'
For wafauto, use the same payload but set "task_type": "wafauto". The response includes an additional response object with the page content.
DataDome
curl -X POST https://api.solv.now/v1/task/execute \
-H "Content-Type: application/json" \
-H "X-Api-Key: your-api-key" \
-d '{
"task_type": "datadome",
"task_data": {
"url": "https://example.com/",
"block_html": "<html>...</html>",
"proxy": "http://user:pass@1.2.3.4:8080",
"force_slider": false,
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36"
}
}'
Response Examples
Successful responses always have this structure:
{
"success" : true ,
"data" : {
"solution" : { ... }
}
}
The solution object varies by task type:
Turnstile
WAF
WAF Auto
DataDome
{
"success" : true ,
"data" : {
"solution" : {
"token" : "0.AuR5g8kP..."
}
}
}
Error Responses
All errors follow the same format:
{
"success" : false ,
"message" : "description of what went wrong"
}
Status Message Cause 400Request body could not be decodedMalformed JSON or missing required fields 400provided url for task is invalidThe URL in task_data is not a valid URL 400task not foundThe task_type value is not recognized 401X-Api-Key header is missingNo X-Api-Key header was sent 401User provided an empty or invalid API keyThe API key does not exist 401URL is blacklistedThe target domain is blocked 402insufficient balanceYour account balance is too low for this task 500* (solver related)The solver encountered an internal error 504task timed outThe solver did not respond within 30 seconds
Billing
Your balance is debited before the task is sent to the solver. If the solver fails, times out, or returns an error, the charge is automatically refunded — you are only charged for successful solves.
Requests have a hard 30-second timeout . If the solver does not respond in time, you receive a 504 and your balance is refunded.