turnstile waf · interstitial challenge pages · token reuse

Cloudflare Challenge Solver

The full-page interstitial Cloudflare serves before it will show you the site — the one that says "Checking your browser" — is a Turnstile WAF challenge. SolveGate clears it through the same endpoint, with gate=waf.

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

A WAF challenge page is not the inline widget. Cloudflare serves it in place of the page, holds the request, and only proxies through once the challenge clears. It is what sits behind most "Just a moment…" screens and many 403s on Cloudflare-fronted origins.

Captcha challenge

The interstitial that renders a Turnstile widget and blocks the page until it is satisfied.

Interstitial page

The scripted hold with no visible widget, issued and verified before the origin is reached.

Token reuse

Once cleared, the clearance is reusable for the window Cloudflare grants it, so a solve covers more than one request.

The inline Turnstile widget embedded in a form is a different gate. It has its 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=waf \
  -d sitekey=0x4AAAAAAAAA_target \
  -d url=https://app.example.com
200 · gate cleared
{
  "id":       "slv_8Kd2…aF9",
  "status":   "solved",
  "gate":     "waf",
  "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

An interstitial Cloudflare serves instead of the site while it decides whether to let the request through. It is issued by the WAF rather than embedded by the site author, which is why it replaces the page rather than sitting inside a form. SolveGate treats it as gate=waf.

Turnstile is a widget the site owner embeds in their own markup and verifies server-side. A WAF challenge is served by Cloudflare's edge in front of the origin, so there is no form to attach a token to — clearing it is what lets the request reach the site at all.

For the window Cloudflare grants, yes — that is what token reuse means. A single solve can cover a run of requests rather than one, which is why WAF work is usually cheaper in practice than the per-request rate suggests.

A 1020 is a firewall rule denying the request outright — there is no challenge to solve, and no solver can help. If you are getting 1020 rather than an interstitial, the fix is at the rule level on a property you control, not at the solve level.

The same meter as Turnstile: prepaid credits from $0.40 per 1,000 solves down to $0.075 per 1,000 on the largest pack, with failed solves never billed.

Other gates we clear

Working with Turnstile