CAPTCHA SOLVING API

It reads the ones people can barely read.

One REST endpoint for every captcha we support. Send the captcha type, the sitekey and the page URL, and get a token back in the same response. Failed solves are never billed.

Solved / 24h
Success rate
Captcha types
image_label_binary3.60s

Choose animals that live in similar places as the sample animal

0.02
0.86
0.14
0.02
0.89
0.04
0.04
0.04
0.13
200 OK2 of 9 selected

P1_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9…

Real challenges. The selected tiles are the answers this solver submitted and the challenge provider accepted. Timings are representative.

Live from production

Not a demo. This is the last 24 hours.

Every figure on this page comes from the same API you would be calling. Nothing here is illustrative.

refreshing every 30s

Throughput by hour

UTC
2914582887411165513:0019:0001:0007:00
SolvedFailedtap or hover an hour

Solved

44,579

Success rate

90.6%

By captcha type

24h
PopularCaptcha· proxyless91.3%
40,390 tasks3534 failed1 in flight
PopularCaptcha· proxied87.8%
7,420 tasks904 failed3 in flight
PopularCaptchaInvisible· proxied99.1%
1,149 tasks10 failed
PopularCaptchaInvisible· proxyless100%
56 tasks
PopularCaptchaEnterprise· proxied3.1%
195 tasks189 failed
PopularCaptchaEnterprise· proxyless100%
6 tasks

Supported captchas

One API for every captcha.

The same endpoint, request and response for each one. This list comes from the live catalogue, so new captchas appear here the day they go live.

PopularCaptcha

live

4 task types · from $0.65/1k

ProxylessYour proxy

PopularCaptcha Enterprise

live

2 task types · from $3.00/1k

ProxylessYour proxy

CaptchaFox

live

1 task type · from $0.50/1k

Your proxy
Coming soonReCAPTCHA v2reCAPTCHA v3Cloudflare TurnstileAWS WAF CaptchaGeeTest v3/v4FunCaptcha / Arkose
Task types and code for each captcha

Integration

One endpoint. About nine lines.

No SDK to install, no session to manage, no polling loop to write. POST the task, get the token in the response. Every captcha uses this same call; only captcha_type changes.

import requests

r = requests.post(
    "https://api.scarnox.com/api/tasks/create",
    headers={"Authorization": "Bearer scarnox_***"},
    json={
        "captcha_type": "PopularCaptchaTaskProxyless",
        "site_key": "10000000-ffff-ffff-ffff-000000000001",
        "site_url": "https://target.example.com",
    },
)

token = r.json()["solution"]["token"]
200application/json
{
  "errorId": 0,
  "status": "ready",
  "solution": {
    "token": "P1_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)..."
  },
  "cost": 0.00075,
  "solveTime": 7.82
}

Failed solves return a non-zero errorId and are never charged.

What you get

Claims you can check.

Every number on this page comes from the same public endpoint your integration would call. Nothing here is a figure we typed in.

Solved right now

4tasks in flight

Live count of tasks the solver is working on this second, across every captcha type. If it reads zero, it is genuinely quiet — the number is not smoothed.

Success rate, trailing 24h

90.6% of tasks returned a token

Counted over every task in the window, not a sampled subset. Failures excluded from billing are still counted here.

The whole surface

6 types
Endpoint
One POST. No SDK, no session handshake, no polling loop.
Proxy
Send your own, or none. Both first-class on the same endpoint.
Billing
Per successful solve, to five decimal places. Failures cost nothing.
Minimum
None. No seat licences and no monthly floor to clear.
Failure
Non-zero errorId in the same response shape. Never charged.
Under load
Bursts queue rather than reject, so a spike slows instead of dropping.

Who it's for

Built for code that meets a captcha.

The same endpoint serves a nightly test suite and a production fleet; you pay per solve either way.

End-to-end tests

Keep CI green on flows that sit behind a captcha - sign-up, checkout, password reset - without disabling protection in staging.

Playwright, Puppeteer, Selenium, Cypress

Monitoring

Uptime, price and availability checks that have to get through a challenge page to see the thing they watch.

Cron jobs, synthetic checks

Automation at scale

Browser automation that must keep running when a challenge appears, with per-solve billing instead of a seat licence.

Headless fleets, queues, workers

Accessibility tooling

Assistive software for users an image puzzle locks out - one API call in place of a challenge they cannot complete.

Screen-reader and extension builders

Use it on sites you are allowed to automate. Target domains that are abused can be blocked for everyone - see the error reference.

How it works

Three steps, once.

  1. 01

    Grab a key

    Register and your API key is on the dashboard immediately. No sales call, no approval queue.

    sk_live_••••••••••••

  2. 02

    POST the task

    Send the site key and URL to one endpoint. Add a proxy if the target needs one.

    POST /tasks/create

  3. 03

    Use the token

    The response carries the token and what it cost. Drop it into your form submission and carry on.

    P1_eyJ0eXAiOiJKV1Qi…

Pricing

Pay for solves. Nothing else.

No subscription, no seat licences, no expiry - and failed solves are never billed. Each captcha type has its own price; the rate card lists them all.

Proxyless

most used
from$0.69/ 1k solves

solved on our network · $0.00069 each

  • Just a sitekey and a URL
  • Every proxyless captcha type
  • Nothing to configure
Start solving

With your proxy

from$0.50/ 1k solves

solved through your IP · $0.00050 each

  • For sites that bind the token to an IP
  • http:// or socks5:// proxies
  • Proxy details never stored
Start solving

Getting started

$1minimum top-up

≈ 1,449 proxyless solves

  • $0.01 trial credit on sign-up, no card
  • Balance never expires
  • Billed to five decimal places
  • Failed solves cost nothing
Full rate card

Your data

What a task leaves behind.

Straight from the code that writes a task, not a policy page.

Stored with each task

  • Target URL and sitekeyso your task history and support tickets can show what was solved
  • Captcha type, result and timingstatus, error code, solve time, cost
  • The returned tokenshown in your history; it expires at the target within minutes anyway
  • Whether you sent a proxya yes / no flag, used to attribute proxy failures to the right side

Never stored

  • Your proxy address or its credentials - used for the solve, then dropped
  • Page content, cookies or anything from the target beyond the challenge
  • Wallet or payment details - crypto payments are handled by the payment provider

All traffic is HTTPS. Your API key is the only credential - rotate it from the dashboard and the old one stops working immediately.

Questions

The things people ask first.

You get a non-zero errorId with a description, and the task is not billed. Only successful solves draw down your balance.

Your first token is about four minutes away.

Register, copy the key, paste the snippet. Trial solves are already on the account.