cracker-logoCracker

API Reference

Complete guide for integrating with the Solvium API.

Working with the API consists of two main parts: creating a task and getting the task status. Let's look at the first step — creating a task.

Step 1. Creating a Task

To create a task, you need to use one of the methods for your required task. You can see the methods below.

Cloudflare

GET
Create Turnstile Task
The server responds with a task identifier that can be used to check the solution status.

Turnstile

URL

https://captcha.solvium.io/api/v1/task/turnstile

Parameters

NameTypeRequiredDescriptionDefaultExample
urlQueryYesURL where the captcha is located.https://testnet.monad.xyz
sitekeyQueryYesKey that can be found in the page's source code.0x4AAAAAAA-3X4Nd7hf3mNGx

Headers

NameTypeRequiredDescriptionDefaultExample
authorizationHeaderYesYour API key, available at @solvium_crypto_botBearer IE0B81Vn...

Responses

Google

GET
Create reCAPTCHA V2 Task
The server responds with a task identifier that can be used to check the solution status.

Turnstile

URL

https://captcha.solvium.io/api/v1/task/recaptcha-v2

Parameters

NameTypeRequiredDescriptionDefaultExample
urlQueryYesURL where the captcha is located.https://example.com
sitekeyQueryYesKey that can be found in the page's source code.6Lc4jRkrAAAAAA...
actionQueryNoThis parameter is specified during reCAPTCHA call.SIGNUP
enterpriseQueryNoIndicates that the Enterprise version of reCAPTCHA needs to be solved.falsetrue
proxyJSONYesProxy through which the solution will be obtained.http://user:password@address:port

Headers

NameTypeRequiredDescriptionDefaultExample
authorizationHeaderYesYour API key, available at @solvium_crypto_botBearer IE0B81Vn...

Responses

Examples

Noname

GET
Create Noname Task
The server responds with a task identifier that can be used to check the solution status.

Turnstile

URL

https://captcha.solvium.io/api/v1/task/noname

Parameters

NameTypeRequiredDescriptionDefaultExample
urlQueryYesURL where the captcha is located.https://example.com
sitekeyQueryYesKey that can be found in the page's source code.0x4AAAAAAA-...

Headers

NameTypeRequiredDescriptionDefaultExample
authorizationHeaderYesYour API key, available at @solvium_crypto_botBearer IE0B81Vn...

Responses

Vercel

GET
Create Vercel Task
The server responds with a task identifier that can be used to check the solution status.

Turnstile

URL

https://captcha.solvium.io/api/v1/task/vercel

Parameters

NameTypeRequiredDescriptionDefaultExample
challengeTokenQueryYesToken obtained from the protected site.2.1743847465.60.MGY1Y2JjYWNlZD...

Headers

NameTypeRequiredDescriptionDefaultExample
authorizationHeaderYesYour API key, available at @solvium_crypto_botBearer IE0B81Vn...

Responses

Examples

Step 2. Getting Status

Now that you've created a task, you have a unique task identifier — task_id. You can use it to check the solution readiness status and then get the solution itself.

GET
Get Task Status
This method gets the task status.

URL

https://captcha.solvium.io/api/v1/task/status/{task_id}

Parameters

NameTypeRequiredDescriptionDefaultExample
task_idURLYesUnique task identifier to check its status.01959e02-08fd-7000-...

Headers

NameTypeRequiredDescriptionDefaultExample
authorizationHeaderYesYour API key, available at @solvium_crypto_botBearer IE0B81Vn...

Responses

Errors

When a task finishes but couldn't be solved, the status endpoint returns status: "failed" and the error field is set to one of the codes below.

JSON
{
  "id": "01959e02-08fd-7000-8cbe-f682a959b3c1",
  "status": "failed",
  "type": "turnstile",
  "error": "ERROR_RENDER",
  "result": null
}
CategoryCodeHow to fix
Input validationINVALID_PARAMSRe-check the endpoint's required fields; make sure none are empty or the wrong type.
Input validationMISSING_PARAMSend both url and body in the POST body.
Input validationINVALID_BASE64Re-encode the raw HTML bytes with standard base64 — e.g. Python base64.b64encode(html).decode().
Input validationNO_PROXYAlways pass a proxy parameter for reCAPTCHA v3.
Challenge renderingERROR_RENDERVerify the sitekey matches what the target site actually uses and that the URL still serves a Turnstile widget.
Challenge renderingCHALLENGE_ERRORThe sitekey is probably not authorised for that domain. Confirm the sitekey/URL pair is still valid.
Challenge renderingINVALID_CHALLENGEFetch a fresh x-vercel-challenge-token right before submitting — they expire in seconds.
Challenge renderingWRONG_CHALLENGE_PAYLOADRe-download the protected page from scratch and submit the new body.
Proxy & IPPROXY_BLOCKEDRotate to a cleaner (preferably residential) IP.
Proxy & IPPROXY_ERRORCheck credentials and latency; make sure the proxy supports HTTPS and isn't dead.
Proxy & IPIP_BLOCKED_BY_CLOUDFLARESwitch to a fresh IP and refetch the protected page.
Proxy & IPBOT_DETECTED_BY_CLOUDFLAREUse a static residential proxy and the exact User-Agent documented for cf-clearance.
Solve failureTOO_MANY_ATTEMPTS_SOLVINGThe proxy is flagged; rotate to a cleaner (residential) IP.
Solve failureRECAPTCHA_TIMEOUTRetry once. If persistent, switch proxies.
Solve failureHCAPTCHA_TIMEOUTRetry. Persistent timeouts usually mean the sitekey distrusts your IP — rotate.
Solve failureSOLVE_TIMEOUTProxy is too slow or the challenge is abnormally heavy. Retry with a faster proxy.
Solve failureUPSTREAM_TIMEOUTTransient; retry once.
Solve failureUPSTREAM_ERRORUsually the target site changed its challenge flow. Fetch a new token and retry.
Token & outputEMPTY_TOKENRetry. If it repeats, double-check the sitekey / domain pair.
Token & outputNO_TOKENRetry — usually a mid-solve proxy drop.
LifecycleCANCELLEDResubmit the task.
LifecycleGENERAL_ERROROpen a ticket with the task_id so we can investigate.

© 2026 Solvium. All rights reserved.