Best CAPTCHA Solver Services: Price and Solve Rate
The best CAPTCHA solver depends on challenge type and trigger rate. Six services compared on published pricing, solve rate, latency and API lock-in.

The best CAPTCHA solver for your project is decided by two numbers you already have: which challenge type your target serves, and how often it serves it. Get those right and the vendor choice is nearly automatic. Get them wrong and you will pay a premium per-solve rate to fix a problem that lives one layer down, in your IP pool. This page ranks the services worth shortlisting, shows the pricing math that actually decides the winner, and marks the blocks that no solver can clear at any price.
The short answer, by situation
If you want the decision without the reasoning, take this table.
| Your situation | Buy | Why |
|---|---|---|
| Mixed challenge types, moderate volume, one account | 2Captcha or Anti-Captcha | Broadest type coverage, and their API dialects are the two everyone else copies |
| High volume concentrated in reCAPTCHA, hCaptcha or Turnstile | CapSolver or CapMonster Cloud | Automated services list the lowest per-1,000 rates on exactly those types |
| Rare, bespoke or heavily distorted image challenges | A human-backed service such as 2Captcha or Death By Captcha | Automated models fail on one-off challenge designs they were never trained on |
| Cloudflare managed challenge, DataDome or PerimeterX walls | No solver. Buy clean IPs and a real browser session | There is no token to buy. These systems block before a widget renders |
| You would rather not operate this at all | A scraping API with unblocking bundled into the request price | One vendor, one bill, no solver worker pool to babysit |
Two things follow from that table, and most buying guides skip both. If your trigger rate is low, the price gap between the most and least expensive service here is worth pennies per 1,000 pages, so pick on coverage and reliability instead. If your trigger rate is high, no solver is the right purchase, because you are paying per unit for a problem you can remove upstream.
What you are actually buying
A CAPTCHA solving service is an outsourced worker pool behind an HTTP API. You submit a task describing the challenge, usually a site key plus the page URL for token challenges, or a base64 image for classic ones. The service returns a solution token. You inject that token into the form or the JavaScript callback on the target page, and the target decides whether to accept it.
That last clause is the one that costs people money. You are not buying a bypass, you are buying a token, and the target still gets a vote. A service can report a 99 percent internal solve rate while your end-to-end success rate sits far lower, because tokens submitted from a flagged IP get rejected anyway.
Two worker models exist:
- Human-backed. Real people look at the challenge in a queue. Slower and more expensive per solve, but far more tolerant of challenge designs nobody has seen before.
- Automated. Computer vision and token generation, no human in the loop. Faster and cheaper, but only on the challenge types the vendor has built for.
Most services now run both and route internally. What differs is which types they cover, what they charge, and how quickly they adapt when a challenge vendor ships a change.
Scraping at scale? Skip the blocks.
Fast, unblockable datacentre proxies with unlimited bandwidth.
Check the challenge type before you buy
Open the target in a browser, trigger the block, and look at what actually appears. The answer determines whether a solver is the right purchase at all.
| What you see | Solver can handle it | Notes |
|---|---|---|
| reCAPTCHA v2 checkbox or image grid | Yes | The most widely supported task type. Every service on this list covers it |
| reCAPTCHA v3, invisible and score-based | Partly | You get a token with a score. Low scores are still rejected downstream |
| hCaptcha widget | Yes | Well covered. Enterprise hCaptcha is harder and priced higher |
| Cloudflare Turnstile widget | Yes | Supported by the main services, usually at a lower rate than reCAPTCHA |
| FunCaptcha or Arkose Labs | Yes, at a premium | Rotating puzzle sets. Expect higher prices and longer solve times |
| GeeTest slider or icon challenge | Yes | Version matters. GeeTest v4 is priced separately by most vendors |
| Cloudflare "checking your browser" interstitial | No | Not a widget. It is a browser and IP reputation check |
| DataDome or PerimeterX block page | No | Bot-score walls. A purchased token does not apply |
| Plain 403, empty body, or a fake product page | No | You have been fingerprinted or rate limited, not challenged |
The bottom three rows are where budgets go to die. Teams see "blocked" in their logs, buy a solver, and the block rate does not move, because those systems evaluate IP reputation, TLS fingerprint and request timing before any challenge renders. The fix for that is in how to bypass Cloudflare for web scraping and how to detect when your scraper is blocked, not on a solver's pricing page.
The six options worth shortlisting
These are the services most production scrapers end up on, plus the bundled alternative that replaces the category.
2Captcha. The default. Widest challenge coverage of any single account, human workers behind the harder tasks, and an API dialect (in.php to submit, res.php to poll) that most competitors clone deliberately. That cloning is the real feature: write against the 2Captcha dialect and you can switch vendors by changing a base URL. Pricing on premium token types sits at the top of the range.
Anti-Captcha. The other original. A task-based JSON API (createTask and getTaskResult) that is the second de-facto standard dialect. Coverage is close to 2Captcha's, with per-type pricing that generally undercuts it on reCAPTCHA. A solid second provider in a failover pair, precisely because the dialect differs.
CapSolver. Automated-first, aimed at high-volume reCAPTCHA, hCaptcha and Turnstile traffic. Publishes rates well under a dollar per 1,000 on those types and supports both major API dialects, which is unusual and useful. Weaker fit if your workload includes odd one-off image challenges.
CapMonster Cloud. From ZennoLab, also automated-first, and the direct price rival to CapSolver on the same token types. Notable for a separate self-hosted desktop product sold on a licence rather than per solve, which changes the economics if your volume is steady enough to keep hardware busy.
Death By Captcha. One of the oldest human-backed services, still operating, with an API that predates the current conventions. Buy it for tolerance of unusual image work, and because it is a genuinely independent third option when your first two providers are both having a bad day.
Bundled unblocker and scraping APIs. Not a solver, a replacement for owning one. You send a URL, the vendor handles proxies, browser, fingerprint and any challenge, and bills per request or per credit. It costs more per successful page than a solver plus your own proxies, and removes an entire subsystem from your stack. The trade-off is laid out in web scraping API vs self-managed proxies.
Published pricing compared
Every figure below is the vendor's own published list rate as of September 2026, quoted as an approximate band because these services price per challenge type and revise rates often. Check each vendor's current pricing page before you budget. None of these numbers were measured or benchmarked by SparkProxy.
| Service | Worker model | Simple image, per 1,000 | reCAPTCHA v2, per 1,000 | API dialect |
|---|---|---|---|---|
| 2Captcha | Human plus automated | About $0.50 to $1.00 | About $3.00 | Own (`in.php` and `res.php`), widely cloned |
| Anti-Captcha | Human plus automated | About $0.50 to $1.00 | About $1.00 to $2.00 | Own (`createTask`), widely cloned |
| CapSolver | Automated | Limited coverage | Under about $1.00 | Supports both major dialects |
| CapMonster Cloud | Automated | About $0.30 to $0.60 | Under about $1.00 | Anti-Captcha compatible |
| Death By Captcha | Human-backed | About $1.40 | About $2.90 | Own, older style |
| Bundled unblocker API | Vendor's own stack | Included in request price | Included in request price | Vendor specific |
Premium types cost more everywhere. FunCaptcha, GeeTest v4 and enterprise hCaptcha are billed above the reCAPTCHA v2 line at every vendor, and some quote them only on request. If your target serves one of those, price the whole shortlist on that type alone, because it will dominate the bill. Our guides on bypassing Arkose Labs FunCaptcha and bypassing GeeTest cover what those challenges check.
The pricing math that actually decides it
Per-solve pricing is the wrong unit. You do not buy solves, you buy pages, and the conversion factor is your trigger rate: the share of requests that hit a challenge at all.
Effective cost per 1,000 pages = price per 1,000 solves x trigger rate.
| Price per 1,000 solves | 2% trigger | 10% trigger | 40% trigger |
|---|---|---|---|
| $3.00 | $0.06 | $0.30 | $1.20 |
| $1.50 | $0.03 | $0.15 | $0.60 |
| $0.60 | $0.012 | $0.06 | $0.24 |
Read the first column carefully. At a 2 percent trigger rate, moving from the most expensive service on the shortlist to the cheapest saves under five cents per 1,000 pages. Across a million pages a month that is about $48. Not nothing, but nowhere near enough to justify a migration, narrower challenge coverage, or a vendor with a thinner track record. At low trigger rates, buy on coverage and uptime and stop optimising the rate card.
Now read the last column. At a 40 percent trigger rate you are paying $0.24 to $1.20 per 1,000 pages in solver fees alone, plus the latency cost of all 400 challenges, plus a success rate that is now hostage to a third party. That workload does not need a cheaper solver. It needs the trigger rate brought down, which is a proxy and fingerprint problem.
Here is the same arithmetic as a script you can point at your own logs:
def solver_cost_per_1k_pages(price_per_1k_solves: float, trigger_rate: float) -> float:
"""trigger_rate = challenges_seen / requests_sent, taken from your own logs."""
return price_per_1k_solves * trigger_rate
for trigger in (0.02, 0.10, 0.40):
for price in (3.00, 1.50, 0.60):
cost = solver_cost_per_1k_pages(price, trigger)
print(f"trigger {trigger:>5.0%} rate ${price:.2f} -> ${cost:.3f} per 1k pages")
One more term belongs in that model. A failed solve is still billed on some plans, and at minimum it costs the retry, so budget on solves attempted, not tokens accepted. At an 80 percent acceptance rate, your real cost is the table value divided by 0.8.
Solve rate, latency, and what vendors do not publish
Every vendor advertises an accuracy figure, and none of them measures the thing you care about. Their number is internal: of the tasks their workers completed, how many were judged correct. Yours should be end to end.
Accepted token rate = tokens the target accepted / challenges you submitted.
The gap between those two comes from things the solver does not control. A reCAPTCHA v3 token comes back with a score attached, and a low score fails at the target even though the solve technically succeeded. A token generated for one IP and submitted from another can be rejected outright. Session cookies, user agent and TLS fingerprint all have to stay consistent between the page that issued the challenge and the request that submits the token.
Latency is the second unpublished number, and it sets your infrastructure cost. Human-backed solves on hard types are commonly quoted in the tens of seconds, automated solves on common token types in single-digit seconds. Whatever the real figure is for your target, size your worker pool from it:
Concurrent workers needed = challenges per second x average solve seconds.
At 5 challenges per second and a 15 second average, you need roughly 75 in-flight tasks to avoid a queue, and your solver plan has to permit that concurrency. Plans with low concurrency caps quietly turn into throughput ceilings, the same failure mode as an undersized thread count on a proxy plan.
Three more things to check before you commit:
- Failure billing. Does a task that returns
ERROR_CAPTCHA_UNSOLVABLEcost you anything? - Refund and expiry policy. Prepaid balances at several vendors expire. Ask in writing before topping up a large amount.
- Type deprecation. When a challenge vendor ships a change, how long has this service historically taken to restore support? Their status page and changelog answer that better than their sales page.
API lock-in and how to stay portable
Two API dialects dominate: the 2Captcha in.php and res.php submit-and-poll pattern, and the Anti-Captcha createTask and getTaskResult JSON pattern. Most newer services implement one or both on purpose, so switching is cheap if, and only if, you wrote an adapter instead of scattering vendor calls through your codebase.
import time, requests
class SolverClient:
"""2Captcha-dialect client. Point base_url at any compatible vendor."""
def __init__(self, api_key: str, base_url: str = "https://2captcha.com"):
self.key, self.base = api_key, base_url.rstrip("/")
def solve_recaptcha_v2(self, site_key: str, page_url: str, timeout: int = 180) -> str:
r = requests.get(f"{self.base}/in.php", params={
"key": self.key, "method": "userrecaptcha",
"googlekey": site_key, "pageurl": page_url, "json": 1,
}, timeout=30).json()
if r.get("status") != 1:
raise RuntimeError(f"submit failed: {r.get('request')}")
task_id, deadline = r["request"], time.time() + timeout
while time.time() < deadline:
time.sleep(5)
res = requests.get(f"{self.base}/res.php", params={
"key": self.key, "action": "get", "id": task_id, "json": 1,
}, timeout=30).json()
if res.get("status") == 1:
return res["request"]
if res.get("request") != "CAPCHA_NOT_READY":
raise RuntimeError(f"solve failed: {res.get('request')}")
raise TimeoutError("solver did not return in time")
Keep two providers configured and route by challenge type: the cheap automated service for your bulk token type, the human-backed one for everything unusual. Failover is not paranoia here. These services get rate limited, run out of workers at peak, and occasionally suspend accounts with little warning. A single-vendor scraper stops dead when that happens.
Cut the bill at the IP layer first
The trigger rate that drives the whole cost model is mostly a function of what your requests look like before any challenge appears. Datacenter ranges with a bad history, a TLS fingerprint that does not match the user agent you claim, and a request cadence no human would produce all push it up. Fix those and the solver becomes a small line item.
Practical order of work, cheapest first:
- Move off free or heavily shared IPs onto a pool where you control concurrency. Details in how to avoid getting your proxy blocked.
- Match your TLS and HTTP/2 fingerprint to the browser you claim to be. See how to bypass IP fingerprinting with clean datacenter subnets.
- Keep sessions coherent. One IP per session for multi-step flows, so cookies and tokens line up.
- Only then buy solves for whatever still gets challenged.
SparkProxy sells the layer underneath the solver rather than the solver itself. The datacenter network runs 1M+ IPs across 80+ countries, including 50,000+ US addresses, behind one gateway at gateway.sparkproxy.io: port 11000 for rotating HTTP and HTTPS, 11002 for sticky sessions, 13000 for SOCKS5. Every plan includes unlimited bandwidth and 30 days of validity, which matters here because retrying a challenged page costs you nothing in traffic.
| Plan | Price | Threads | Whitelist slots | Speed ceiling |
|---|---|---|---|---|
| Starter | $75/mo | 100 | 5 | 25 Mbps |
| Core | $140/mo | 250 | 10 | 50 Mbps |
| Boost | $240/mo | 500 | 15 | 100 Mbps |
| Plus | $440/mo | 1000 | 25 | 150 Mbps |
Those speed figures are ceilings under the Fair Usage Policy, not guaranteed throughput. If you would rather not assemble proxies, fingerprints and solving yourself, the SparkProxy Scraping API bundles them per request: a plain fetch costs 1 credit, JS render 5, screenshot or PDF 10, and there are 1,000 free credits with no card to test on.
import requests
API = "https://scrape.sparkproxy.io/api/v1"
HEADERS = {"X-API-Key": "YOUR_API_KEY"}
resp = requests.get(API, headers=HEADERS, params={
"url": "https://example.com/product/123",
"render_js": "true",
"premium_proxy": "true",
"country_code": "us",
}, timeout=90)
print(resp.status_code, len(resp.text))
For the tactics that lower trigger rate without spending anything, start with how to avoid CAPTCHAs when web scraping.
Legal and compliance questions to settle first
Solving a challenge is rarely a criminal act by itself, but it is almost always a breach of the target's terms of service, and the surrounding conduct is what creates real exposure. Circumventing protection on login pages, payment flows, account creation, ticketing, or anything holding personal data moves the question into computer-misuse and fraud territory in most jurisdictions, and no vendor's marketing page is a defence.
Before procurement signs anything, get answers on paper:
- What is being collected, and is it public, unauthenticated data?
- Does the workflow create accounts, submit forms, or transact? If yes, escalate to counsel before writing code.
- Where are the solving workers located, and does that raise a data transfer issue for the images you send them?
- What does the solver vendor log, and for how long? You may be shipping fragments of target pages to a third party.
Answering those in a security review is the difference between a tool your company keeps and one it removes after the first audit.
A two-hour buying test
Run this before you commit to a plan. It costs a few dollars in credits and settles the question with your own data.
- Measure your trigger rate. Push 1,000 real requests through your existing proxies, count how many return a challenge, and record the type on every hit.
- Convert it to a budget. Multiply each vendor's published rate for that type by your trigger rate. If two land within a few cents per 1,000 pages, price is not the deciding factor.
- Buy the smallest top-up at two vendors. One automated, one human-backed, both behind the same adapter.
- Submit 200 real challenges to each. Real site key, real page URL, from the same IP that will submit the token.
- Score end to end. Count tokens the target accepted, not solves the vendor reported. Record the 95th percentile time to accepted token, not just the average.
- Test a failure. Kill the primary vendor's credentials mid-run and confirm your code fails over instead of stalling.
- Re-run at your real concurrency. Solve times stretch under load, and cheap plans' concurrency caps are where that shows up.
Whatever wins that test is your answer, and it will be specific to your target: a service that is excellent on hCaptcha at one site can be mediocre on the same type at another, because the target's own scoring differs. That is also why published accuracy claims are close to useless as a purchasing input. Related reading on the challenge types: bypassing reCAPTCHA, bypassing hCaptcha and bypassing Cloudflare Turnstile.
Frequently asked questions
FAQ
2Captcha is the safest default because it covers the widest range of challenge types and its API is cloned by most competitors, which keeps you portable. CapSolver and CapMonster Cloud publish lower rates for high-volume token challenges, so they usually win on cost once your traffic concentrates in reCAPTCHA, hCaptcha or Turnstile.
Published list rates as of September 2026 run from roughly $0.50 per 1,000 for simple image tasks to around $3 per 1,000 for reCAPTCHA and premium challenge types, with the automated services listing under $1 for common token types. The figure that matters is that rate multiplied by your trigger rate, which converts it to cost per 1,000 pages.
On the high-volume token types they target, automated services such as CapSolver and CapMonster Cloud are usually faster and cheaper than human farms. Human-backed services still handle unusual, bespoke or heavily distorted image challenges more reliably, which is why many teams keep both and route by challenge type.
Not on its own. Those systems evaluate IP reputation, TLS fingerprint and browser behaviour before any widget appears, so a token bought from a solving service does not satisfy them. Clean IPs, a matched TLS fingerprint and a real browser session are what clear those blocks.
Solving a CAPTCHA is not generally a criminal act, but it almost always breaches the target site's terms of service and can breach computer-misuse law if you are circumventing protection on accounts, payments or personal data. Get the specific use case reviewed by counsel rather than relying on a vendor's marketing copy.
Yes, and the proxies matter more. IP reputation is what determines how often a challenge appears at all, so a clean rotating pool cuts your solver bill directly. Solvers only handle the challenges your IPs failed to avoid.
Get 20% off your first month
Premium datacentre proxies with unlimited bandwidth. Use the code at checkout.
Save up to 15% more on quarterly, half-yearly and yearly plans
Related articles

Best ISP Proxy Providers Compared on Price, Pools and Uptime
The best ISP proxies compared on billing model, pool claims and uptime, with buying criteria, a 48-hour test plan, and when to buy datacenter instead.

Best Datacenter Proxies Ranked by Price and Performance
Best datacenter proxies compared on each vendor's own published prices: Webshare, IPRoyal, Oxylabs, Bright Data, Decodo and SparkProxy, with a real cost model.

Best Cheap Proxy Providers That Are Worth Buying
Cheap proxies ranked by real cost per successful request: budget billing models compared, honest trade-offs, red flags, and a free test to run before you pay.
