Skip to main content

scarnox-python

Official Python client for the Scarnox captcha-solving API.

One call in, one token out. No task ids, no polling loop, and you only pay for captchas that were actually solved.

from scarnox import Scarnox

client = Scarnox()   # reads SCARNOX_KEY from the environment
token = client.solve(site_key="SITEKEY", site_url="https://example.com/signup").token

Why Scarnox

  • Synchronous: solve() returns the token. There is no create-then-poll dance to write or debug.
  • Pay per success: failed solves are never charged. Proxyless solving is $0.75 per 1,000 successful solves (pricing).
  • Retries built in: the client follows the API's retry policy. Busy and timeout errors back off with jitter, an unsolvable board gets one more try, and account errors are raised straight away.
  • No proxy needed: bring your own proxy only if the target site checks that the token was solved from the same IP that submits it.

Install

pip install scarnox

Get an API key at solver.scarnox.com/register, then:

export SCARNOX_KEY=scarnox_XXXXXXXXXXXXXXXXXXXX

Usage

from scarnox import Scarnox, ScarnoxError

client = Scarnox()

try:
    s = client.solve(
        site_key="SITEKEY",                    # the page's data-sitekey attribute
        site_url="https://example.com/signup", # the page the captcha is on
        # proxy="http://user:pass@host:port",  # optional: solve through your own IP
        # invisible=True,                      # optional: invisible widget (no checkbox)
    )
    print(s.token, s.cost, s.balance)
except ScarnoxError as e:
    print(e.code, e.description)               # e.g. ERROR_INSUFFICIENT_BALANCE

Submit the token right away. Tokens expire within about two minutes. Put it in the page's h-captcha-response field (and g-recaptcha-response if present), or pass it to the widget's JavaScript callback.

Playwright

examples/playwright_example.py opens a page, reads its sitekey, solves it, fills the response fields and submits the form, in about 30 lines.

Balance

client.balance()   # 9.994 (USD)

Every successful solve also returns balance, so most integrations never call this.

Errors

e.code what to do
ERROR_NO_SLOT_AVAILABLE, ERROR_CAPTCHA_TIMEOUT, ERROR_INTERNAL, ERROR_TOO_MANY_REQUESTS retried for you with backoff
ERROR_CAPTCHA_UNSOLVABLE retried once for you
ERROR_INSUFFICIENT_BALANCE top up at solver.scarnox.com
ERROR_KEY_INVALID check SCARNOX_KEY
ERROR_PROXY_REQUIRED, ERROR_PROXY_FAILED pass a working proxy=

Full list: API docs.

License

MIT

Metadata

Release files for scarnox 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scarnox 0.1.0
File Size Uploaded Provenance
scarnox-0.1.0.tar.gz 6.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for scarnox 0.1.0
File Interpreter ABI Platform
scarnox-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.1 kB

Release files / scarnox-0.1.0.tar.gz

Download URL scarnox-0.1.0.tar.gz
Size 6.9 kB
Tags Source
SHA-256 checksum
How to use checksums
bee7424a85c0879d3c0188f11d896bb1aec2758cf81453f0b16a177e69a5cb1b
BLAKE2b-256 checksum
How to use checksums
0bd587bf5058a8541640e828ed8d21c41de90c9a184fb5f5e3dfc445c77cc225
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / scarnox-0.1.0-py3-none-any.whl

Download URL scarnox-0.1.0-py3-none-any.whl
Size 6.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8dc70c9c66f340c8a9e00d2a34748800bea3d83278a95c4a26ef29cb39eb050f
BLAKE2b-256 checksum
How to use checksums
37a23e22509f683a80ede25434f32c0b9f6b39d4556aca9cf5eec80fa030c947
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Security for scarnox 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page