Free captcha solver trial: test before you pay
Yes, you can try a captcha solver for free. Create an account and start with free trial credit, no card needed. The trial is there so you can check that tokens work on your own target before you spend anything. This guide explains what the trial covers, what to test first, and which captcha types it can solve today.
Scarnox solves PopularCaptcha today, proxyless and with your own proxy. Other captcha types, including reCAPTCHA, Cloudflare Turnstile, AWS WAF, GeeTest and Arkose, are coming soon. The trial covers the types that are live, so test with PopularCaptcha.
What the trial covers
- PopularCaptcha, proxyless. The default task type. It runs on Scarnox's own network and is the quickest way to confirm the flow.
- PopularCaptcha with your own proxy. Use this to check whether a site ties its tokens to an IP address.
- Invisible PopularCaptcha. Set
is_invisibletotrueon a request for a widget that has no checkbox. - Failed solves are free. You pay only for successful solves, so a test run that fails does not use up anything.
What to test first
Use the trial to answer four questions before you build anything large:
- Is the sitekey right? Read it from the page, solve once, and confirm the token is returned without an error.
- Does the site accept the token? Put the token into the form field and submit. The next page should load.
- Does your timing work? The call blocks until the token is ready, so there is no polling loop. Set your timeout to about 185 seconds and check that the solve finishes in that window.
- Does your error handling work? Feed a bad sitekey on purpose and confirm your code logs the failure and stops retrying.
A smoke test you can run today
This script makes one solve and prints the first characters of the token. Set the key in an environment variable first:
export SCARNOX_KEY="scarnox_YOURAPIKEY"
import os
import requests
API_URL = "https://api.scarnox.com/api/tasks/create"
def smoke_test(sitekey: str, page_url: str) -> None:
r = requests.post(
API_URL,
headers={"Authorization": f"Bearer {os.environ['SCARNOX_KEY']}"},
json={
"captcha_type": "PopularCaptchaTaskProxyless",
"site_key": sitekey,
"site_url": page_url,
},
timeout=185, # the call blocks until the token is ready
)
data = r.json()
if data.get("errorId") != 0:
print("failed:", data.get("errorCode"), data.get("errorDescription"))
return
print("token ok:", data["solution"]["token"][:40], "...")
if __name__ == "__main__":
smoke_test("10000000-ffff-ffff-ffff-000000000001", "https://example.com/signup")
Replace the sitekey and URL with a page you own or are allowed to test. If the token prints, the flow works. If it fails, the error text says what to fix.
What to expect from a token
A token expires within about two minutes, so use it straight away. The solve response has errorId set to 0 on success, with the token under solution.token. When errorId is not 0, the response includes an errorCode and an errorDescription. Failed solves are not charged, so trying different sitekeys and URLs during testing costs you only time.
Common questions
Do I need a card? No. Start with free trial credit, no card needed.
Can I test other captcha types? Not yet. reCAPTCHA, Cloudflare Turnstile, AWS WAF, GeeTest and Arkose support is coming soon. The guides for those types explain how they work and what to expect. For example, see the Cloudflare Turnstile guide and the reCAPTCHA v2 guide.
What happens after the trial? Keep using the same key and the same request format. For what solving costs at volume, see current pricing, which is always up to date.
Is there a proxy option? Yes, for PopularCaptcha. Send your own proxy when the site ties tokens to an IP. The proxy comparison explains when to use it.
Moving from trial to production
Once the smoke test works, move the key into your secret store and build the rest of the flow:
- Read the sitekey from the page on each run rather than hardcoding it.
- Set a timeout of about 185 seconds on every solve request.
- Add the retry policy from error handling and backoff.
- Keep the key out of logs and source control.
Checklist before you leave the trial
Check each item once before you move to production:
- A token came back from a real solve on a page you own.
- The token was accepted by the form, and the next page loaded.
- A failed solve produced a clear error that your code logged.
- The timeout on the solve request is at least 185 seconds.
- The key is stored in your secret manager, not in the code.
- Your retry policy stops on failures that need a fix.
Tick every box before you run the job on real targets. If an item fails, fix it while you are still testing, so that no real target sees the broken version.
What the trial does not show
The trial shows that the flow works on the sites you test. It does not prove that every site behaves the same way. Captcha providers change their widgets, and sites differ in how they handle tokens. Test each new target before you rely on it, and keep one smoke test per target so a change shows up quickly.
Next steps
- How to solve a PopularCaptcha in Python
- Solving a PopularCaptcha in Playwright and Puppeteer
- How to find a captcha sitekey on any page
- Keeping CI green when your app has a captcha
Start with free trial credit, no card needed: create an account.