RageCaptcha Developer API
RageCaptcha exposes a short request/poll JSON REST API for programmatic captcha solving. You submit a task with POST /create-task (returns HTTP 202 with a task_id), then poll POST /check-task every 1–2 seconds until the solve completes. This keeps every HTTP hop short — a slow solve never holds a Cloudflare request open. We currently support the PopularCaptcha family only — Standard and Enterprise variants, proxied or proxyless. Failed solves return HTTP 500 and are automatically refunded. Balance top-ups are non-refundable and we do not issue free trial credits.
X-Request-ID header. Task endpoint responses also send Cache-Control: no-store, no-cache, must-revalidate. There is no application-level rate limit or Retry-After — every accepted task starts its solver request immediately.Authenticate with your client key
Every request is authenticated with a clientkey — a unique secret developer token issued from your dashboard. Treat it like a password, keep it server-side, and rotate immediately if leaked.
POST /create-task
Submit a captcha task. The API validates, atomically charges your balance, persists the task, and immediately returns HTTP 202 with a task_id. The solver request starts in the background — poll /check-task for the result.
Request body
clientkeySTRINGREQUIREDYour secret developer API access key.
data.taskSTRINGREQUIREDBlueprint identifier (e.g. PopularCaptchaTokenProxyless). Must exist in the pricing table.
data.sitekeySTRINGREQUIREDTarget site key. Alias: site_key.
data.siteurlSTRINGREQUIREDFull origin URL where the challenge triggers. Aliases: href, site, site_url.
data.proxySTRINGCONDITIONALhttp://user:pass@ip:port. Required for all non-Proxyless blueprints.
data.rqdataSTRINGOPTIONALExtra request metadata used by high-security targets.
Response (HTTP 202)
task_idSTRINGUnique task identifier — use it with /check-task.
statusSTRINGAlways "processing" on creation.
curl -X POST https://api.ragecaptcha.com/create-task \
-H "Content-Type: application/json" \
-d '{
"clientkey": "your-api-key",
"data": {
"task": "PopularCaptchaTokenProxyless",
"sitekey": "captcha-site-key",
"siteurl": "https://example.com"
}
}'site + sitekey pairs that are explicitly whitelisted. Hostname comparison is case-insensitive and ignores scheme, path, port, and trailing dots — subdomains must be listed separately. Sitekeys are case-sensitive. Non-whitelisted pairs are rejected before any balance is deducted. Contact us to add a target.POST /check-task
Poll for the result of a task. Prefer POST — it keeps the API key out of URLs and access logs. Poll every 1–2 seconds until status is no longer processing. A failed solve returns HTTP 500 with one of the three documented solver errors and is automatically refunded. The GET form /check-task?clientkey=...&task_id=... is also accepted.
Request body
clientkeySTRINGREQUIREDYour secret developer API access key.
task_idSTRINGREQUIREDThe task ID returned by /create-task. Alias: taskId. Max 128 chars.
Response (HTTP 200)
task_idSTRINGEchoes the requested task ID.
statusSTRING"processing" while running, "success" once complete.
solutionSTRINGSUCCESSThe signed captcha token. Present only when status is "success".
curl -X POST https://api.ragecaptcha.com/check-task \
-H "Content-Type: application/json" \
-d '{
"clientkey": "your-api-key",
"task_id": "5d54269e-8cdf-40fb-a94c-912adca99ac8"
}'GET /balance
Fetch real-time balance for your account. The alias GET /getBalance returns the same response. Poll before dispatching large batches or wire into your billing alerts.
Query parameters
clientkeySTRINGREQUIREDYour secret developer API access key.
Response body
balanceNUMBERRemaining balance.
currencySTRINGBalance currency — always "USD".
curl -G https://api.ragecaptcha.com/balance \
--data-urlencode "clientkey=your-api-key"Task blueprints & pricing
Blueprints are namespaced by captcha family. Today only PopularCaptcha is live — Standard tier handles the everyday token; Enterprise tier targets Enterprise-tier sitekeys. Future families will slot in under their own namespace.
PopularCaptcha
LIVEPopularCaptcha tokens · Standard + EnterpriseMore captcha families will land under their own namespace — same endpoints, same client key.
Complete response & error reference
Application-level errors use { "error": "..." }. Framework-level 404 / 405 responses use { "detail": "..." }. Every response includes an X-Request-ID header. Failed solves are refunded automatically.
POST /create-task
task_id + status:"processing"Missing API key or dataInvalid task: <task_name>Missing sitekeyMissing siteurl or hrefInvalid API keyInsufficient balanceInternal server errorInternal server errorInternal server errorPOST /check-task (and GET form)
status:"processing"status:"success" + solutionMissing API keyMissing task IDInvalid task IDTask not foundInternal server errorInternal server errorSolver returned invalid JSON: malformed or unparseable responseService temporarily unavailableSolver failed to generate solutionGET /balance and /getBalance
balance + currencyMissing API keyInvalid API keyInternal server errorInternal server errorOther routes
{"status":"ok"}Redirect to /health{"detail":"Not Found"}{"detail":"Method Not Allowed"}