alternatives / 2captcha

2Captcha alternative for Cloudflare Turnstile: an honest comparison

2Captcha publishes a rate of $1.45 per 1,000 Cloudflare Turnstile solves and documents more than forty other captcha types. SolveGate solves Turnstile and Turnstile WAF challenge pages only, and sells prepaid credit packs that work out from $0.40 per 1,000 solves on the smallest pack down to $0.075 per 1,000 on the largest. If your automation meets more than one captcha vendor, 2Captcha is the broader tool; if it only ever meets Turnstile, the narrower service is cheaper per solve and simpler to wire up.

Competitor pricing verified 13 August 2026 from 2Captcha's public pricing page (2captcha.com/pricing) and their Cloudflare Turnstile product page; prices change without notice, so confirm current rates on their site before budgeting.

Start with the limitation, not the pitch

SolveGate solves two things: the Cloudflare Turnstile widget (managed, non-interactive and invisible) and Turnstile WAF challenge pages. It does not solve reCAPTCHA, hCaptcha, GeeTest, FunCaptcha, Arkose Labs, DataDome, Imperva or AWS WAF. If any of those appear anywhere in your flow, SolveGate cannot complete the job and 2Captcha can. That is the whole trade, stated up front so you do not have to dig for it.

2Captcha's pricing page, retrieved on 13 August 2026, lists over forty captcha types with published rates. That includes reCAPTCHA v2 at $1 to $2.99 per 1,000, reCAPTCHA v3 at $1.45 (score at or below 0.3) and $2.99 (score above 0.3), reCAPTCHA Enterprise at $1 to $2.99, GeeTest at $2.99, Arkose Labs at $1.45 to $50, Amazon captcha at $1.45, DataDome at $1.45 and Imperva at $2.99. One account and one integration covers all of them.

Both services are tools for automating properties you own or are authorised to test: your own QA suites, CI pipelines, uptime checks, staging environments and anti-bot configuration testing. Point them at someone else's site and the tooling question stops being the interesting one.

Side by side on documented attributes

Every 2Captcha figure below comes from a page on 2captcha.com that we fetched; the URLs are listed at the end. Nothing here is an inference about performance, reliability or support, because none of that is checkable from published pages. The two pricing models are not the same shape: 2Captcha quotes a rate per 1,000 solves, while SolveGate sells prepaid credit packs where one credit is one successful solve, so its per-1,000 figures are the effective rate of a given pack rather than a metered rate.

Attribute2CaptchaSolveGate
Price per 1,000 Turnstile solves$1.45$0.40 on the smallest pack (30,000 solves for $12), down to $0.075 on the largest (20 million for $1,500)
Captcha types with published rates40+, including reCAPTCHA v2/v3/Enterprise, GeeTest, Arkose Labs, Amazon, DataDome, Imperva, MTCaptcha, Lemin, Capy, KeyCAPTCHA and image/text captchasTurnstile and Turnstile WAF challenge pages only
Turnstile variants documented"all of Turnstile subtypes, including non-interactive, manual, and invisible"; "Both the standalone captcha and challenge mode are supported"Managed, non-interactive and invisible widgets; WAF challenge pages via gate: "waf"
Billing on a failed solveDocumented: after three unsuccessful worker attempts the API returns ERROR_CAPTCHA_UNSOLVABLE (id 12) and "The captcha price is automatically returned to your balance"Failed solves are never billed
API shapeJSON API at api.2captcha.com: createTask, then poll getTaskResult; legacy in.php/res.php also documentedPOST /v1/solve, then poll GET /v1/solve/{id}; polling is free
Turnstile task typesTurnstileTaskProxyless (their proxy pool) and TurnstileTask (your proxy, via proxyType/proxyAddress/proxyPort/proxyLogin/proxyPassword)Single POST /v1/solve with gate, sitekey and url
AuthenticationclientKey field in the JSON request bodyBearer secret key in the Authorization header
Official client librariesPython, PHP, Go, Ruby, C#, Java, JavaScriptNode 18+ and Python 3.9+, published as "solvegate" on npm and PyPI
Free allowanceNot documented on the pages checkedFirst 1,000 solves free
Payment modelPrepaid balance; Visa, Mastercard, PayPal, Airtm, Alipay, BTC and USDT listedPrepaid credit packs; one credit is one successful solve, and credits do not expire

Both bill prepaid and both document a no-charge outcome for solves that fail, though they reach it differently: 2Captcha charges and then returns the amount to your balance after three worker attempts, while SolveGate does not bill a failed solve at all. Reconciliation looks different in each case, which matters if you are tracking spend per CI run.

When 2Captcha is the better choice

Pick 2Captcha, without agonising over it, in any of these situations.

  • Your target uses more than one captcha vendor, or you do not control which one it uses. A single Cloudflare configuration change can move a page from Turnstile to something else, and a Turnstile-only provider has no answer for that.
  • You are testing reCAPTCHA, hCaptcha-era flows, GeeTest, Arkose Labs, DataDome, Imperva or Amazon captcha. SolveGate does not solve any of them.
  • You need image, text, rotate, click, slider or bounding-box captchas solved. 2Captcha publishes rates for all of those from $0.50 per 1,000; SolveGate has no equivalent.
  • Your stack is PHP, Go, Ruby, C# or Java. 2Captcha publishes official libraries in all five. SolveGate ships Node and Python SDKs only, so anything else means calling the HTTP API directly.
  • You want one vendor, one invoice and one integration across a portfolio of different targets. Consolidation has real operational value, and per-solve price is not the only cost.
  • You need to route solves through your own proxies. 2Captcha documents proxy parameters on the TurnstileTask type.
  • You want to pay only for what you use, with no commitment up front. 2Captcha's balance is spent captcha by captcha across every type; SolveGate asks you to buy a pack, and the smallest is $12.

Breadth is a genuine advantage, not a consolation prize. If you are unsure which captcha types you will encounter over the next year, the broad provider is the lower-risk pick.

When SolveGate is the better choice

The narrow case is narrow on purpose.

SolveGate is not metered pay-as-you-go and has no marginal volume brackets. You buy a pack of credits, one credit covers one successful solve, and a bigger pack carries a lower effective rate. This is the full catalogue.

PackPriceEffective per 1,000 solves
30,000 solves$12$0.40
100,000 solves$25$0.25
250,000 solves$60$0.24
500,000 solves$100$0.20
1,000,000 solves$150$0.15
5,000,000 solves$600$0.12
10,000,000 solves$1,000$0.10
20,000,000 solves$1,500$0.075
  • Turnstile is the only challenge in your path and you expect it to stay that way, typically because you configured Cloudflare on the property yourself.
  • Per-solve price dominates your bill. The smallest pack, 30,000 solves for $12, is $0.40 per 1,000 against 2Captcha's published $1.45 per 1,000, about 72% less, and that is the most you can pay; the largest pack, 20 million solves for $1,500, is $0.075 per 1,000.
  • You want a smaller surface to integrate: one POST with gate, sitekey and url, a bearer key, and a free GET to poll. There is no task-type taxonomy to learn because there are only two gates.
  • You are on Node 18+ or Python 3.9+ and want a maintained SDK rather than hand-rolled HTTP.
  • You want to try it before committing a deposit. The first 1,000 solves are free.

If both providers can do the job, the decision is price and integration surface against portfolio risk. Neither of those requires trusting a marketing claim.

The two APIs, side by side

Both are submit-then-poll. The difference is how much vocabulary you have to carry. 2Captcha's Turnstile task takes websiteURL and websiteKey, plus action, data (the cData value), pagedata (the chlPageData value) and userAgent when you are solving a Cloudflare challenge page rather than a standalone widget.

bash
# --- 2Captcha: create a Turnstile task, then poll for the result ---
curl -sS -X POST https://api.2captcha.com/createTask \
  -H 'Content-Type: application/json' \
  -d "{
        \"clientKey\": \"$TWOCAPTCHA_KEY\",
        \"task\": {
          \"type\": \"TurnstileTaskProxyless\",
          \"websiteURL\": \"https://staging.example.com/login\",
          \"websiteKey\": \"$SITEKEY\"
        }
      }"
# -> {"errorId":0,"taskId":<id>}

curl -sS -X POST https://api.2captcha.com/getTaskResult \
  -H 'Content-Type: application/json' \
  -d "{\"clientKey\": \"$TWOCAPTCHA_KEY\", \"taskId\": $TASK_ID}"
# -> {"errorId":0,"status":"ready","solution":{"token":"...","userAgent":"..."},"cost":"..."}


# --- SolveGate: same job, two calls ---
curl -sS -X POST "$SOLVEGATE_API/v1/solve" \
  -H "Authorization: Bearer $SOLVEGATE_KEY" \
  -H 'Content-Type: application/json' \
  -d "{
        \"gate\": \"turnstile\",
        \"sitekey\": \"$SITEKEY\",
        \"url\": \"https://staging.example.com/login\"
      }"

# Polling is free; use gate "waf" instead when the target is a
# Cloudflare challenge page rather than an embedded widget.
curl -sS "$SOLVEGATE_API/v1/solve/$SOLVE_ID" \
  -H "Authorization: Bearer $SOLVEGATE_KEY"

One practical difference in error handling: 2Captcha's unsolvable outcome is a documented error code, ERROR_CAPTCHA_UNSOLVABLE with id 12, raised after three worker attempts, with the price returned to your balance. Whatever you pick, treat the unsolvable path as a normal branch in your client, not an exception, because a challenge that will not solve is a routine event at scale.

Turnstile facts that apply whichever provider you pick

These come from Cloudflare's own documentation and constrain any integration.

  • A widget runs in one of three modes: managed (Cloudflare chooses between a non-interactive and a checkbox challenge based on risk), non-interactive (visible widget, no interaction required) and invisible (no visible widget at all). Your solver has to handle whichever your target is configured for.
  • The sitekey is the public half of the pair and is readable from the page; the secret key is used only for server-side validation against Cloudflare's siteverify endpoint. You never hand a secret key to a solving service.
  • Tokens expire after 300 seconds and each token validates once. Budget for that: a token fetched and then queued behind a slow test step can expire before you submit it, and a retry that reuses a spent token fails validation rather than the challenge.
  • Cloudflare publishes dummy sitekeys for testing: 1x00000000000000000000AA always passes with a visible widget, 2x00000000000000000000AB always fails, 1x00000000000000000000BB always passes invisibly, 2x00000000000000000000BB always fails invisibly, and 3x00000000000000000000FF forces an interactive challenge. Use these to exercise your error paths without spending credits at any provider.

If you are building a harness for your own staging environment, wire the failure keys in first. Most integration bugs show up in the branch that handles a challenge that did not solve, not in the happy path.

How to decide in ten minutes

  • Load your target and read the challenge off the page. If it is a div with data-sitekey and the Turnstile script, or a Cloudflare interstitial, both providers apply. If it is anything else, use 2Captcha.
  • Count your monthly solves, then price each side on that number. At 100,000 Turnstile solves a month, 2Captcha's published $1.45 per 1,000 is $145. At SolveGate the matching pack is 100,000 solves for $25, an effective $0.25 per 1,000, so about $120 less on the month.
  • Check your language. Node or Python, either works. PHP, Go, Ruby, C# or Java, 2Captcha has a published library and SolveGate does not.
  • Ask how likely the target's captcha vendor is to change. If you do not control the property's configuration, price the risk of having to integrate a second provider later.
  • Run both against Cloudflare's dummy sitekeys and your own staging site before you commit. SolveGate's first 1,000 solves are free, so the comparison costs you nothing on that side.

A reasonable outcome of this page is that you use 2Captcha. If your work spans captcha vendors, that is the correct answer and no amount of per-solve pricing changes it.

Common questions

It depends on whether Turnstile is the only challenge you meet. SolveGate is a narrower alternative built for Turnstile and Turnstile WAF challenge pages. It sells prepaid credit packs rather than a metered rate: the smallest pack is 30,000 solves for $12, an effective $0.40 per 1,000, and the largest is 20 million for $1,500, an effective $0.075 per 1,000, against 2Captcha's published $1.45 per 1,000 for Turnstile. It solves nothing else, so it is only a replacement if your automation never encounters reCAPTCHA, GeeTest, Arkose Labs, DataDome, Imperva or AWS WAF.

2Captcha's pricing page and its Cloudflare Turnstile product page both list $1.45 per 1,000 solves, checked on 13 August 2026. Their published rates for other types range from $0.50 per 1,000 for image, audio and rotate captchas up to $2.99 for GeeTest, Imperva and reCAPTCHA v3 above a 0.3 score. Prices change without notice, so confirm on their page before you budget.

You buy a prepaid pack of credits and one credit covers one successful solve. There are no marginal volume brackets and no metering: a bigger pack carries a lower effective rate, from $12 for 30,000 solves ($0.40 per 1,000) to $1,500 for 20 million ($0.075 per 1,000), with 100,000 for $25, 250,000 for $60, 500,000 for $100, 1 million for $150, 5 million for $600 and 10 million for $1,000 in between. Failed solves are not billed, retrieving a solve is free, credits do not expire, and the first 1,000 solves are free.

2Captcha documents the error code ERROR_CAPTCHA_UNSOLVABLE (id 12), raised when a captcha cannot be solved after three worker attempts, and states that "The captcha price is automatically returned to your balance." SolveGate does not bill a failed solve in the first place. The end position is similar; the accounting differs, which matters if you reconcile spend per pipeline run.

No. SolveGate solves Cloudflare Turnstile widgets (managed, non-interactive and invisible) and Turnstile WAF challenge pages, and nothing else. If you need reCAPTCHA, GeeTest, Arkose Labs, DataDome, Imperva or Amazon captcha, use a broad provider such as 2Captcha, which publishes rates for all of them.

2Captcha's documentation lists official client libraries for Python, PHP, Go, Ruby, C#, Java and JavaScript. SolveGate publishes SDKs for Node 18+ and Python 3.9+ under the name "solvegate" on npm and PyPI. Both expose a plain HTTP JSON API, so any language can integrate without an SDK.

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