CapSolver alternative for Cloudflare Turnstile
CapSolver is a broad captcha-solving API: its published price list covers reCAPTCHA, GeeTest, AWS WAF, image-to-text, Cloudflare Turnstile and Cloudflare Challenge, with Turnstile listed at $1.20 per 1,000. SolveGate solves Cloudflare Turnstile and Turnstile WAF challenge pages and nothing else, and sells prepaid credit packs rather than a metered rate: one credit is one successful solve, the smallest pack works out at $0.40 per 1,000 and the largest at $0.075 per 1,000. If your workload is only Turnstile, the narrower service costs less; if it is anything else, CapSolver covers ground SolveGate does not.
Competitor pricing verified 13 August 2026 from each vendor's public pricing page.
Where the two actually differ
The difference is scope, not architecture. CapSolver's pricing table lists nine solution lines and its getting-started guide documents task types spanning recognition tasks (ImageToText, VisionEngine) and token tasks (reCAPTCHA v2/v3, GeeTest, DataDome, MTCaptcha, AWS WAF, Cloudflare Turnstile, Cloudflare Challenge). SolveGate has one product surface: POST /v1/solve with gate set to turnstile or waf.
SolveGate does not solve reCAPTCHA, hCaptcha, GeeTest, FunCaptcha, DataDome or AWS WAF. If your scrapers or test suites hit any of those, SolveGate cannot replace CapSolver — you would be running two vendors. That is the honest trade, and it is worth settling before you compare prices.
Both are prepaid, both are HTTP JSON APIs, and both document a Cloudflare Turnstile path and a separate Cloudflare challenge-page path. The billing models differ in shape: CapSolver publishes a per-1,000 pay-per-use rate per challenge type, while SolveGate sells credit packs only. What follows is only what each vendor publishes on its own pages.
Published prices and documented attributes
| Attribute | CapSolver (published) | SolveGate |
|---|---|---|
| Challenge types on the published price list | reCAPTCHA v2 ($0.80/1k), reCAPTCHA v3 ($1.00/1k), reCAPTCHA v2 Enterprise ($1.00/1k), reCAPTCHA v3 Enterprise ($3.00/1k), AWS WAF ($2.00/1k), GeeTest v3/v4 ($1.20/1k), ImageToText ($0.40/1k), Cloudflare Turnstile ($1.20/1k), Cloudflare Challenge ($1.20/1k) | Cloudflare Turnstile (managed, non-interactive, invisible) and Turnstile WAF challenge pages only |
| Price per 1,000 for Turnstile | $1.20 | Prepaid packs: $0.40 per 1,000 on the 30k pack, down to $0.075 per 1,000 on the 20M pack |
| Price per 1,000 for Cloudflare challenge pages | $1.20 | Same credits as Turnstile: $0.40 per 1,000 down to $0.075 per 1,000 |
| Billing model | Pay-per-use rate per 1,000, plus prepaid packages priced in the dashboard | Prepaid credit packs only. One credit is one successful solve; the pack you buy sets the rate for every credit in it |
| Free allowance | Not documented on the pages checked | First 1,000 solves free |
| Failed solves billed | The Cloudflare Turnstile product page states you pay only for successful solves | Never billed |
| Authentication | clientKey in the JSON request body | Bearer secret key in the Authorization header |
| Call shape | POST /createTask returns a taskId; poll POST /getTaskResult | POST /v1/solve returns the token; GET /v1/solve/{id} to poll, free |
| Documented Turnstile parameters | websiteURL, websiteKey, optional metadata.action and metadata.cdata | gate, sitekey, url |
| Cloudflare challenge-page task | AntiCloudflareTask; docs state a proxy is mandatory and must be static or sticky, not rotating | gate: "waf" on the same endpoint |
| Official SDKs | Docs state libraries exist for popular languages; no language list was retrievable from the pages checked | solvegate on npm (Node 18+) and PyPI (Python 3.9+) |
SolveGate has no per-1,000 meter and no marginal volume brackets. You buy a pack of credits and a larger pack carries a lower effective rate across the whole pack. Credits do not expire. The full catalogue is below, with the effective rate stated per 1,000 successful solves so it can be compared against a published per-1,000 price.
| Pack | Price | Effective per 1,000 solves |
|---|---|---|
| 30,000 credits | $12 | $0.40 |
| 100,000 credits | $25 | $0.25 |
| 250,000 credits | $60 | $0.24 |
| 500,000 credits | $100 | $0.20 |
| 1,000,000 credits | $150 | $0.15 |
| 5,000,000 credits | $600 | $0.12 |
| 10,000,000 credits | $1,000 | $0.10 |
| 20,000,000 credits | $1,500 | $0.075 |
CapSolver's pricing section also advertises prepaid packages alongside pay-per-use and points to a package marketplace in the dashboard. The per-package rates sit behind the dashboard, so treat the per-1,000 figures above as the published pay-per-use rates rather than the floor. CapSolver's terms state it does not offer refunds, so size top-ups accordingly.
One asymmetry worth reading carefully: CapSolver's Turnstile product page states that you pay only for successful solves, while its terms of service do not restate that as a billing rule. SolveGate's position is stated as a billing rule — a solve that does not return a token is not charged.
When CapSolver is the better choice
Pick CapSolver, without hesitation, in any of these cases.
- Your targets use more than one captcha vendor. A single integration covering reCAPTCHA v2/v3, GeeTest, DataDome, AWS WAF and Turnstile is worth more than a per-1,000 difference on one of them.
- You need reCAPTCHA Enterprise or AWS WAF specifically. SolveGate has no product there at any price.
- You need image-to-text or OCR-style recognition tasks. That is a different class of work; SolveGate does not do it.
- You are already running CapSolver at volume on mixed traffic and Turnstile is a minority of it. Splitting a small slice across a second vendor adds a second key, a second balance and a second failure mode for a small saving.
- You want a browser extension or the documented Selenium, Playwright, Puppeteer and n8n integrations as a packaged path rather than writing the HTTP call yourself.
- You would rather draw down a single metered balance across every challenge type than buy a pack sized to one workload in advance.
Breadth is a real product decision, not a weakness. If the shape of your traffic is unpredictable, breadth is the thing that keeps working when a target swaps its challenge provider.
When SolveGate is the better fit
- Every challenge you hit is Turnstile or a Turnstile-backed Cloudflare challenge page. At 100,000 solves, CapSolver's published $1.20 per 1,000 comes to $120; the SolveGate pack that fits that volume is 100,000 credits for $25.
- Turnstile volume is high enough that the rate dominates your bill. At 1,000,000 solves the same published CapSolver rate comes to $1,200, against $150 for the SolveGate 1M pack; the largest pack, 20M credits for $1,500, works out at $0.075 per 1,000.
- You want billing that never charges a failed attempt as a stated rule rather than a product-page claim.
- You want to evaluate before paying anything. The first 1,000 solves are free, which is enough to run a CI suite end to end.
- You want a smaller API to reason about: one endpoint, two
gatevalues, a bearer token, and a free polling endpoint.
Those comparisons hold only for Turnstile and only against CapSolver's published pay-per-use rate. CapSolver's dashboard package rates are not public, so price them yourself before treating either figure as final.
The two APIs side by side
CapSolver's Turnstile flow is create-then-poll. You submit a task and receive a taskId, then poll getTaskResult until the solution appears; the docs describe token tasks as taking on the order of seconds.
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": "https://staging.example.com/login",
"websiteKey": "0x4AAAAAAAAA_target",
"metadata": {
"action": "login",
"cdata": "0000-1111-2222-3333-example-cdata"
}
}
}The getTaskResult solution carries token, type and the userAgent used for the solve. Match that user agent on the request you then send, or the token is being presented from a different client than the one that earned it.
SolveGate returns the token on the POST itself. GET /v1/solve/{id} exists for callers that prefer to poll, and polling is free.
curl -s https://api.solvegate.io/v1/solve \ -H "Authorization: Bearer $SOLVEGATE_KEY" \ -H 'content-type: application/json' \ -d '{"gate":"turnstile","sitekey":"0x4AAAAAAAAA_target","url":"https://staging.example.com/login"}' # { # "id": "slv_8Kd2aF9", # "status": "solved", # "gate": "turnstile", # "token": "0.Xa3f...X9", # "solve_ms": 980, # "billed": true # }
billed: true means one credit was drawn from the pack. A response without a token does not draw one.
For Cloudflare challenge pages the shapes diverge more. CapSolver's AntiCloudflareTask takes websiteURL plus a mandatory static or sticky proxy, and returns cookies including cf_clearance. SolveGate takes the same body as a Turnstile solve with gate set to waf.
Porting a Turnstile call
If you already have CapSolver wired in, the Turnstile path is one function. Replacing it is a body swap and the removal of the polling loop.
import os, requests SOLVE_URL = "https://api.solvegate.io/v1/solve" HEADERS = {"Authorization": f"Bearer {os.environ['SOLVEGATE_KEY']}"} def solve_turnstile(sitekey: str, url: str, action: str | None = None) -> str: """Drop-in replacement for a CapSolver AntiTurnstileTaskProxyLess call. websiteKey -> sitekey, websiteURL -> url, metadata.action -> action. Returns the token to place in the cf-turnstile-response field. """ body = {"gate": "turnstile", "sitekey": sitekey, "url": url} if action: body["action"] = action res = requests.post(SOLVE_URL, headers=HEADERS, json=body, timeout=60) res.raise_for_status() return res.json()["token"]
The parameter mapping is direct: websiteKey becomes sitekey, websiteURL becomes url, and metadata.action becomes action. Keep both vendors behind one internal function during the cutover so you can switch back with an environment variable rather than a deploy. Size the first pack to the cutover window rather than the year: credits do not expire, so a smaller pack costs nothing but a higher rate on the credits you actually use.
What neither service does for you
A solver returns a token. Cloudflare's own rules still govern what that token is worth, and those rules cause most of the failures teams blame on the solver.
- A Turnstile token is valid for five minutes, per Cloudflare's server-side validation docs. Request it at the moment you submit the form, not at the start of a long test run.
- Each token can be validated once. A replayed token is rejected with the
timeout-or-duplicateerror code fromhttps://challenges.cloudflare.com/turnstile/v0/siteverify. - If the widget was rendered with
data-actionorcData, the origin can check those values back fromsiteverify. Pass them through when you request the solve, or validation can fail on a token that was otherwise fine. - Cloudflare's
siteverifyalso returnshostname. A token earned against one host is checkable against the site that issued it. - Turnstile renders in three modes — managed, non-interactive and invisible. Managed can show a checkbox based on Cloudflare's risk signals, so the same sitekey does not always produce the same visible flow.
Scope and authorisation
SolveGate is built for automation against properties you own or are authorised to test: QA suites, CI pipelines, uptime monitoring, staging environments, and checking how your own anti-bot configuration behaves. That boundary applies to any solver you pick, CapSolver included; both vendors' terms place responsibility for lawful use on the account holder. Decide which side of it your workload sits on before you compare rates.
Common questions
Yes. CapSolver documents the task type AntiTurnstileTaskProxyLess, taking websiteURL and websiteKey with optional metadata.action and metadata.cdata, and lists Cloudflare Turnstile at $1.20 per 1,000 on its public pricing table as of 13 August 2026. It documents Cloudflare Challenge separately as AntiCloudflareTask, also at $1.20 per 1,000.
On published rates, SolveGate. CapSolver lists $1.20 per 1,000 pay-per-use. SolveGate does not meter: it sells prepaid credit packs whose effective rate runs from $0.40 per 1,000 on the 30,000-credit pack ($12) to $0.075 per 1,000 on the 20,000,000-credit pack ($1,500). At 100,000 solves that is $120 at CapSolver's published rate against $25 for the SolveGate 100,000-credit pack. CapSolver also advertises prepaid packages whose rates sit behind its dashboard, so if you buy packages, price them yourself before assuming the pay-per-use figure applies.
You buy a pack of credits and one credit is one successful solve. The packs are 30,000 for $12, 100,000 for $25, 250,000 for $60, 500,000 for $100, 1,000,000 for $150, 5,000,000 for $600, 10,000,000 for $1,000 and 20,000,000 for $1,500. A larger pack carries a lower effective rate across the whole pack; there are no marginal brackets, so the pack you buy sets the rate for every credit in it. Credits do not expire, failed solves are not billed, and retrieving a solve with GET /v1/solve/{id} is free.
Only if all your traffic is Cloudflare Turnstile or Turnstile WAF challenge pages. SolveGate does not solve reCAPTCHA, hCaptcha, GeeTest, FunCaptcha, DataDome or AWS WAF. For mixed captcha traffic you would keep CapSolver and route only Turnstile to SolveGate, or stay on one vendor.
With CapSolver, yes for that task: its AntiCloudflareTask docs state a proxy is required and must be static or sticky rather than rotating, with a session held for three minutes or more. Its Turnstile task type is the proxyless variant. SolveGate exposes challenge pages as gate: "waf" on the same /v1/solve endpoint as a Turnstile solve, billed from the same credits.
SolveGate does not bill failed solves; no credit is drawn unless a token is returned. CapSolver's Cloudflare Turnstile product page states that you pay only for successful solves; its terms of service do not restate that as a billing rule, and they state that refunds are not offered. Check your own dashboard ledger against your success count during evaluation.
Related
More in Alternatives
Automating a gate you own or are authorised to test?
// SolveGate clears Cloudflare Turnstile and WAF challenges through one REST call · first 1,000 solves free