Skip to main content
Spidra automatically detects and solves CAPTCHAs and anti-bot challenges on every scrape and crawl job. You do not need to pass any extra parameters — if a page throws a challenge, Spidra handles it in the background and continues the job.

Supported Challenge Types

ChallengeStatus
reCAPTCHA v2 (checkbox)Supported
reCAPTCHA v2 (invisible)Supported
reCAPTCHA v3 (score-based)Supported
hCaptchaSupported
Cloudflare TurnstileSupported
Cloudflare JS challengeSupported
DataDomeSupported
PerimeterX / HUMANSupported
GeeTestSupported
FunCaptcha / Arkose LabsSupported
AWS WAF CAPTCHASupported
Imperva / IncapsulaSupported

How It Works

When Spidra’s headless browser navigates to a page and encounters an anti-bot challenge, it:
  1. Detects the challenge type automatically
  2. Routes it to the appropriate solver
  3. Submits the solution back to the page
  4. Continues loading the page and runs your prompt or browser actions
All of this happens inside the same job — no extra API calls, no callbacks, no manual intervention. The job takes slightly longer on pages that require solving, but the outcome is the same clean result.

No API Parameter Required

CAPTCHA solving is always on. There is nothing to enable.
{
  "urls": [{ "url": "https://example.com/protected-page" }],
  "prompt": "Extract the main content",
  "output": "json"
}
If the page has a CAPTCHA, it gets solved. If it does not, nothing happens and no credits are charged.

Seeing Whether a CAPTCHA Was Solved

The job status response includes a captchaSolvedCount field in result.stats:
{
  "status": "completed",
  "result": {
    "content": { ... },
    "stats": {
      "durationMs": 12400,
      "captchaSolvedCount": 1,
      "inputTokens": 2800,
      "outputTokens": 140,
      "totalTokens": 2940
    }
  }
}
captchaSolvedCount: 1 means one challenge was encountered and solved during the job. If the value is 0, the page either had no challenge or the challenge was bypassed without a solve (common with Cloudflare JS challenges that pass after browser fingerprint checks).

Billing

Each solved CAPTCHA costs 10 credits. This is charged on top of the base 2 credits per URL.
  • Page with no CAPTCHA: 2 credits
  • Page with 1 CAPTCHA: 12 credits (2 base + 10 solve)
  • Page with 2 CAPTCHAs (e.g., one on load, one on form submit): 22 credits
Credits are only charged for successful solves. If a challenge appears but cannot be solved, no CAPTCHA credit is deducted — though the job may fail depending on the site. You can monitor CAPTCHA usage and credit consumption from the Usage page in the dashboard.

Combining with Stealth Mode

For sites with aggressive bot detection — Cloudflare, DataDome, Akamai, PerimeterX — combine CAPTCHA solving with Stealth Mode. Stealth Mode routes the request through a residential proxy, making it look like a real user. CAPTCHA solving handles any challenges that still appear.
{
  "urls": [{ "url": "https://heavily-protected-site.com/data" }],
  "prompt": "Extract the product listings",
  "output": "json",
  "useProxy": true,
  "proxyCountry": "us"
}
Most protected sites are handled by one or the other. Some require both.

Stealth Mode

Residential proxy rotation for IP-based blocks and geo-restricted content

Authenticated Scraping

Scrape login-protected pages by injecting session cookies

Browser Actions

Click, scroll, and type to interact with pages before extraction

Submit a Scrape Job

Full API reference for the POST /scrape endpoint