SolverCF Documentation
SolverCF is a captcha-solving API focused on Cloudflare Turnstile, Cloudflare Challenge, and Google reCAPTCHA v3 / v3 Enterprise. You send a task describing the page you're stuck on, a pool of workers solves it using a real browser session, and you poll back for a working token to submit to that page.
The request/response format is compatible with the CapMonster and CapSolver API conventions, so existing integrations — including browser extensions built for those platforms — can point at SolverCF with minimal changes.
What you can solve
| Service | type value |
Typical speed |
|---|---|---|
| Cloudflare Turnstile | TurnstileTask |
a few seconds |
| Cloudflare Turnstile (instant pool) | TurnstileTaskPool |
immediate (pre-solved) |
| Google reCAPTCHA v3 | RecaptchaV3Task / RecaptchaV3TaskProxyless |
a few seconds |
| Google reCAPTCHA v3 Enterprise | RecaptchaV3EnterpriseTask / RecaptchaV3EnterpriseTaskProxyless |
a few seconds |
See Task Types & Pricing for the current price of each. Alongside captcha solving, SolverCF also offers a temporary email service (create disposable inboxes, read mail) — see Temporary Email.
How it works
- You
POSTa task (target URL + site key + type) to Create Task. The response only contains ataskId— the task itself hasn't been solved yet. - A worker in SolverCF's pool picks up the task, opens a real browser session against the target site, and solves the challenge.
- You poll Get Task Result with the returned
taskIdevery 1–2 seconds untilstatusbecomesready. - You get back a
token(orcookie, depending on the task) — submit it to the target site together with theuserAgentreturned alongside it.
Task lifecycle & timeouts
A task moves through a small state machine you should be aware of when deciding how long to keep polling:
| Status | Meaning |
|---|---|
created |
Accepted, waiting for a worker to pick it up |
processing |
A worker has claimed it and is actively solving |
ready / success |
Solved — solution is populated |
failed |
A worker attempted it but couldn't solve it |
expired |
No worker claimed it within 1 minute of creation |
Timeout budget: if no worker claims your task within 1 minute, it expires. Once a worker has claimed it, it has up to 3 minutes to finish before the task is marked
failed. In practice, most tasks resolve in a few seconds — if you're still polling past 1–2 minutes with no result, stop and create a new task rather than polling indefinitely.
API design notes
A few things that aren't obvious from the endpoint list alone, but matter once you start integrating:
- Every response is
HTTP 200 OK, including failures. Success/failure is signaled entirely by theerrorIdfield in the JSON body (0= success,1= failed), never by the HTTP status code. Don't gate your error handling on the status code — checkerrorId. - CORS is fully open on the captcha-solving endpoints (
token/extension/*), so you can call them directly from browser-side JavaScript without a backend proxy, if that fits your use case. softId,source, andversionin the request body are accepted for compatibility with the CapMonster/CapSolver extension protocol but aren't used by SolverCF — safe to omit them if you're integrating directly rather than through one of those extensions.
Getting help
- Telegram support: t.me/solvercf
- Community group: t.me/solvercf_group
Continue to Getting Started to make your first request.