Solve endpoint

Create a captcha solve task

One synchronous call: it blocks until the token is ready, then returns it. There is no polling loop and no task-id round trip to write.

POSThttps://api.scarnox.com/api/tasks/create
Requires Authorization: Bearer <api_key>

You are only charged for solves that succeed

A failed solve costs nothing — your balance moves only whenerrorIdcomes back as 0.

Task types

PopularCaptchaTokenProxyless

$0.69 / 1k

No proxy needed — solved over Scarnox infrastructure. Simplest integration.

PopularCaptchaToken

$0.65 / 1k

Solved through a proxy you supply. Cheaper, because the request does not consume our proxy pool. proxy is required.

Body parameters

captcha_typestringrequired

PopularCaptchaTokenProxyless (no proxy needed) or PopularCaptchaToken (you supply the proxy)

site_keystringrequired

The PopularCaptcha sitekey for the target site

site_urlstringrequired

Full URL or hostname of the target page

proxystringrequired for PopularCaptchaToken

Your proxy, as http://user:pass@host:port or socks5://host:port. Ignored by the Proxyless task type.

Example body

The two task types differ by one field. Proxyless is solved on our infrastructure; the proxy variant is solved through the proxy you send.

json
{
  "captcha_type": "PopularCaptchaTokenProxyless",
  "site_key":     "YOUR_SITEKEY",
  "site_url":     "https://your-site-url.com"
}

Proxy format

http://user:pass@host:port, http://host:port or socks5://host:port. A dead or blocked proxy comes back as ERROR_PROXY_FAILED and is not billed — failed solves never are.

Success Response

json
{
  "errorId":    0,
  "taskId":     "scrx_1748350341234_ab12cd34",
  "status":     "ready",
  "solution": {
    "token":          "P1_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "challenge_type": "image_label_binary"
  },
  "cost":       0.00069,
  "balance":    9.99935,
  "createTime": 1748350341,
  "endTime":    1748350349
}

Error Response

json
{
  "errorId":          1,
  "errorCode":        "ERROR_CAPTCHA_UNSOLVABLE",
  "errorDescription": "Unable to solve the captcha. The site may use advanced protection.",
  "taskId":           "scrx_1748350341234_ab12cd34"
}

Notes

  • Always check errorId first — errorId: 0 = success, errorId: 1 = failure. Never assume success.
  • Set HTTP timeout ≥ 180s — Solves average 8–15s, can reach 60s under high load
  • Tokens expire in ~120s — Submit to the target site immediately after receiving
  • Failed solves are free — Balance is only charged when errorId is 0