T
Turnstile Solver
Open Source

Turnstile Solver API

Solve Turnstile challenges programmatically with a simple POST request. Fast, reliable, and community-maintained.

Quick Start

API Endpoint

POST /turnstile

Parameters

Send a JSON body with the following fields:

url string Required

The URL where Turnstile is to be validated

sitekey string Required

The site key for Turnstile

action string Optional

Action to trigger during CAPTCHA solving, e.g. login

cdata string Optional

Custom data for additional CAPTCHA parameters

cf_selector string Optional

Custom CSS selector for the Turnstile widget (default: .cf-turnstile)

Request

cURL
curl -X POST https://your-domain.com/turnstile \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "sitekey": "0x4AAAAAAA..."
  }'

Response

The API returns a task ID. Use it to query the result:

JSON — 202 Created
{
  "status": "created",
  "task_id": "d2cbb257-9c37-4f9c-..."
}

Get Result

GET /result?id=<task_id>

Query the result of a solving task by task ID:

id string Required

The unique task ID returned from the /turnstile request

Pending (202)
{
  "status": "pending"
}
Success (200)
{
  "status": "success",
  "data": {
    "token": "0.KBtT-r...",
    "elapsed_time": 7.625
  }
}
Failed (500)
{
  "status": "error",
  "error": "CAPTCHA_FAIL",
  "elapsed_time": 30.123
}