RBXSolver
LIVE — accepting new accounts

RBXSolver
verification, decoded

High-performance verification solver. Send a task, poll for the token, pay per solve — failures refund automatically.

Sign up, grab an API key, top up with crypto. First solve in under two minutes.

per 1k solve

$0.60

Full solve

per 1k PoW-only

$0.30

Light tasks

avg solve time

<1s

Best case

on failure

Refund

Auto-credited

Integration

Quick Start

Four steps from zero to a logged-in session. Everything below works exactly as shown — copy, paste, run.

1Get an API key

Sign up in the dashboard to get your sk_live_... key, then top up automatically with crypto — no waiting, no DMs. Email is optional; username and password is all it takes.

2POST /createTask
curl -X POST https://rbxsolver.site/createTask \
  -H "Content-Type: application/json" \
  -d '{
    "clientKey": "sk_live_abc123...",
    "task": {
      "type": "ChallengeTask",
      "websiteURL": "https://roblox.com",
      "websitePublicKey": "476068BF-9607-4799-B53D-966BE98E2B81",
      "proxyType": "http",
      "proxyAddress": "1.2.3.4",
      "proxyPort": 8080
    }
  }'
3Poll /getTaskResult
curl -X POST https://rbxsolver.site/getTaskResult \
  -H "Content-Type: application/json" \
  -d '{"clientKey": "sk_live_...", "taskId": "cx7f3a9b..."}'

# poll every ~500ms until "status": "ready"
# { "errorId": 0, "status": "ready",
#   "solution": { "token": "..." }, "cost": "0.000600" }

Poll every ~500ms. Stop on "status": "ready" (token inside solution) or "status": "failed" (refunded — retry). Give up after ~2 minutes.

4Submit the token

A token alone logs nobody in — authorize it on your challenge, then retry the login carrying it. This is the step most integrations miss.

import requests, json, base64

token = "..."        # from step 3
cid = "us-central-..."  # YOUR challengeId from the login 403

# 1. authorize the token on your challenge
ch = requests.post(
    "https://apis.roblox.com/challenge/v1/continue",
    json={"challengeId": cid, "challengeType": "captcha",
          "challengeMetadata": json.dumps(
              {"captchaToken": token, "unifiedCaptchaId": cid})}
).json()

# 2. retry login carrying the fresh challenge
login = requests.post(
    "https://auth.roblox.com/v2/login",
    headers={"rblx-challenge-id": ch["challengeId"],
             "rblx-challenge-type": ch["challengeType"],
             "rblx-challenge-metadata": base64.b64encode(
                 ch["challengeMetadata"].encode()).decode()},
    json={"ctype": "Username", "cvalue": USER, "password": PW})

# 200 + .ROBLOSECURITY cookie = logged in.
# Tokens are single-use with a ~2 min life — submit immediately.
?Errors & debugging
ERROR_KEY_INVALIDKey is wrong, truncated, or revoked. Copy the full key from your dashboard.
ERROR_INSUFFICIENT_BALANCETop up with crypto — balance is checked before every task.
ERROR_TASK_NOT_FOUNDWrong taskId, or the task expired. Create a fresh one.
ERROR_INVALID_REQUESTMalformed JSON or task shape. Compare against the samples above field by field.
status: failedNo token — already refunded. Retry, or rotate proxy and retry.

Sanity check: createTask charges upfront, so your balance must move on every call. If the balance never moves, the request never reached us — check the URL, the key, and your HTTP client before anything else.

API

Endpoint reference

The full public surface. Four endpoints — that is everything you need.

POST/createTask

Submit a task. Returns a taskId with status processing. Cost is held upfront and refunded automatically on failure.

POST/getTaskResult

Poll with clientKey + taskId every ~500ms. On status ready the solution contains the token.

POST/getBalance

Returns the current balance for a key. Try it live below.

POST/validateKey

Check whether a key is valid and inspect its balance and usage totals.

Solve Outcomes

Every task ends in one of three states. Failures auto-refund — you only pay for tokens.

solved

Token returned, ready to submit. Most solves land here in seconds.

processing

Still working. Keep polling getTaskResult until it resolves.

failed

No token. Balance is refunded automatically — retry or rotate proxy.

PoW-Only Task

Billed at $0.30/1k. Lighter task type — solved server-side, no proxy needed.

{
  "clientKey": "sk_live_...",
  "task": {
    "type": "PoWTask",
    "powData": { "N": "308-digit modulus...", "A": 861240949267, "T": 800000 }
  }
}

Login Task

Full login flow in one call, billed at the standard $0.60/1k rate.

{
  "clientKey": "sk_live_...",
  "task": {
    "type": "LoginTask",
    "username": "account_name",
    "password": "account_password",
    "proxy": "http://user:[email protected]:8080"
  }
}
# solution: { "verified": true, "user_id": 123456, ... }

Pass credentials plus a proxy (proxy URL string or split proxyAddress fields). The solution reports verified and user_id.

Check Balance

Inspect any key live — right here, no terminal needed.

curl -X POST https://rbxsolver.site/getBalance \
  -H "Content-Type: application/json" \
  -d '{"clientKey": "sk_live_..."}'

Migrating from another provider?

Legacy task names keep working: FunCaptchaTask maps to ChallengeTask, and FunCaptchaPoWTask maps to PoWTask. Point your existing client at this API and go.

Proxies decide your pass rate

Sticky residential or static ISP — datacenter gets challenged on sight. Full provider guide →

Site Keys

Login:476068BF-9607-4799-B53D-966BE98E2B81