cloudflare turnstile · managed · non-interactive · invisible

Cloudflare Turnstile Solver

SolveGate solves Cloudflare Turnstile through one REST call. POST the sitekey and the page it sits on; a single-use token comes back in about a second, ready to submit as cf-turnstile-response.

average solve
success rate
$0.40per 1,000 solves
$0.075per 1,000 at volume

// failed solves are never billed · credits never expire · first 1,000 solves free

What this gate is

Cloudflare Turnstile is the challenge widget that replaced reCAPTCHA on Cloudflare-fronted sites. It renders in three modes and SolveGate handles all of them.

Managed

The visible checkbox widget. Cloudflare decides whether to show an interaction based on its own risk signals.

Non-interactive

A visible widget that never asks the visitor to click. It still issues a token that the origin verifies.

Invisible

No widget at all. The challenge runs in the background and the token lands in a hidden input.

Turnstile WAF challenge pages — the full-page interstitial Cloudflare serves before the site itself — are a different gate. They have their own page.

How to solve it, in three steps

  1. Read the sitekey. It is public — the data-sitekey attribute on the challenge element, or a value beginning 0x4 in the page source.
  2. POST it to /v1/solve. Send the gate, the sitekey and the URL the challenge sits on, authenticated with your secret key.
  3. Submit the token. The response carries a single-use token. Put it in the cf-turnstile-response field, or hand it to the site's explicit-render callback.
request
curl https://api.solvegate.io/v1/solve \
  -H "Authorization: Bearer sk_live_•••" \
  -d gate=turnstile \
  -d sitekey=0x4AAAAAAAAA_target \
  -d url=https://app.example.com
200 · gate cleared
{
  "id":       "slv_8Kd2…aF9",
  "status":   "solved",
  "gate":     "turnstile",
  "token":    "0.Xa3f…X9_cleared",
  "solve_ms": 980,
  "billed":   true
}

Parameters

FieldTypeDescription
gatestringWhich challenge stands in the way — turnstile or waf.
sitekeystringThe widget's public key. Read data-sitekey off the challenge markup.
urlstringThe page the challenge is on. Used to match the origin the token is issued for.
actionstringOptional. The Turnstile action value, when the site sets one.
proxystringOptional. Solve through your own egress IP instead of ours.

Full reference, including the async form and every error code, is in the API documentation.

What it costs

Credits are prepaid in packs and one credit is one successful solve. Bigger packs carry a lower effective rate; nothing is metered in arrears and nothing auto-renews.

PackPricePer 1,000 solves
30k credits$12$0.40
100k credits$25$0.25
250k credits$60$0.24
500k credits$100$0.20
1M credits$150$0.15
5M credits$600$0.12
10M credits$1,000$0.10
20M credits$1,500$0.075

Failed solves, timeouts and our internal retries are never billed. Credits do not expire. Full breakdown on the pricing page.

Questions, answered

A service that completes a Turnstile challenge on your behalf and returns the token the widget would have produced. You send the sitekey and the URL the widget is on; you get back a cf-turnstile-response value to submit with your form or request. SolveGate does this in about a second and only charges when a token actually comes back.

It is public and sits in the widget's markup — look for the element with class cf-turnstile and read its data-sitekey attribute, or search the page source for a key starting 0x4. That is the value you pass as sitekey.

Into the hidden input named cf-turnstile-response inside the form the widget guards, then submit the form normally. If the site uses an explicit-render callback, pass the token to that callback instead. Tokens are single-use and short-lived, so request one at the moment you need it rather than caching.

Typically under 1.5 seconds end to end. The API is synchronous by default — you can wait on the response — and there is also an async form where you poll GET /v1/solve/{id} until the status flips from pending to solved.

Credits are prepaid in packs. The smallest pack works out at $0.40 per 1,000 solves and the largest at $0.075 per 1,000, with every pack in between priced on that curve. Credits do not expire. Failed solves, timeouts and our internal retries are never billed — you pay per gate that actually opens.

You may use SolveGate only against properties you own or are explicitly authorized to test or automate — your own sites, staging environments, uptime and QA checks, and engagements where the owner has granted permission. Using it against third parties in breach of their terms is prohibited by our Acceptable Use Policy and we enforce it.

Other gates we clear

Working with Turnstile