Fetch real-time data from 100+ websites,No development or maintenance required.
Over 100 million real residential IPs from genuine users across 190+ countries.
SCRAPING SOLUTIONS
Get accurate and in real-time results sourced from Google, Bing, and more.
With 120+ prebuilt and custom scrapers ready for any use case.
No blocks, no CAPTCHAs—unlock websites seamlessly at scale.
Execute scripts in stealth browsers with full rendering and automation
PROXY INFRASTRUCTURE
Over 100 million real residential IPs from genuine users across 190+ countries.
Reliable mobile data extraction, powered by real 4G/5G mobile IPs.
For time-sensitive tasks, utilize residential IPs with unlimited bandwidth.
Fast and cost-efficient IPs optimized for large-scale scraping.
SCRAPING SOLUTIONS
PROXY INFRASTRUCTURE
DATA FEEDS
Full details on all features, parameters, and integrations, with code samples in every major language.
LEARNING HUB
ALL LOCATIONS Proxy Locations
TOOLS
RESELLER
Get up to 50%
Contact sales:partner@thordata.com
Products $/GB
Fetch real-time data from 100+ websites,No development or maintenance required.
Get real-time results from search engines. Only pay for successful responses.
Execute scripts in stealth browsers with full rendering and automation.
Bid farewell to CAPTCHAs and anti-scraping, scrape public sites effortlessly.
Dataset Marketplace Pre-collected data from 100+ domains.
Over 100 million real residential IPs from genuine users across 190+ countries.
Reliable mobile data extraction, powered by real 4G/5G mobile IPs.
For time-sensitive tasks, utilize residential IPs with unlimited bandwidth.
Fast and cost-efficient IPs optimized for large-scale scraping.
Data for AI $/GB
Pricing $0/GB
Docs $/GB
Full details on all features, parameters, and integrations, with code samples in every major language.
Resource $/GB
EN $/GB
产品 $/GB
AI数据 $/GB
定价 $0/GB
产品文档 $/GB
资源 $/GB
简体中文 $/GB
Many CAPTCHA problems in a data pipeline do not look like outages: an interstitial page is parsed as content, retries eat proxy traffic, and records quietly fail validation. The design recommended here moves CAPTCHA handling into a monitored layer of its own. A challenge detector checks each response for a CAPTCHA and decides whether to solve, back off or stop, and the managed API is called only when the decision is to solve.
If you are an engineer or technical lead running authorised collection (QA on your own sites, a feed covered by a data agreement, public pages whose terms permit automated access), this is written for you. The sections below cover how the detector decides, how to pick a solving method, what to measure and where the boundaries sit. The site’s terms, rate limits, and privacy and copyright rules apply throughout.
In this article, a CAPTCHA challenge means any check, visible or score-based, that a site runs to tell people apart from automated clients. Some sites show a challenge to every visitor on sensitive forms such as login or sign-up. When one appears on ordinary pages, the target often considers your traffic suspicious, so diagnose before you solve.
Common triggers include:
Validate these triggers against a sample of your own target pages before you encode them as rules. So before you think about solving, work out why the challenge appeared.
Start by checking whether the traffic pattern is reasonable for this site and whether you are authorised to access it at all. Solving does not fix poor traffic hygiene.
Once a challenge is confirmed inside an authorised workflow, route it to a managed API rather than to ad hoc manual work or homegrown code that breaks whenever the challenge changes.
Stop instead of solving when any of these apply:
CAPTCHA solving belongs between routing and parsing, behind a detector that decides whether a solve is appropriate. Placed there, it stays visible in logs and metrics instead of hiding inside the parser.
| Stage | Role |
| seed URLs | Approved targets for the job. |
| scheduler | Sets timing, concurrency and rate limits for each target. |
| proxy route | Chooses the exit region and session for each request. |
| challenge detector | Inspects every response, including non-2xx ones, for a CAPTCHA and chooses solve, back off or stop. |
| solving layer (API) | Turns an authorised challenge into a solution (usually a token, sometimes a cookie, text or click coordinates) or a reported failure. |
| parser | Extracts fields from the returned page. |
| validation | Rejects records with missing required fields, including challenge pages, whether they arrive as HTTP 200 or as 403, 429 or 503. |
| audit log | Records each challenge, decision and outcome. |
Not every challenge page arrives with a 200 status. Cloudflare’s full-page challenge, for example, is served with HTTP 403 on the first request. A detector that only inspects 200 responses will send such pages into generic error handling and blind retries.
A token is the value the target site expects back as proof that the challenge was completed. Tokens are short-lived and single-use: Google documents a two-minute validity for reCAPTCHA response tokens, Cloudflare documents five minutes for Turnstile, and each token can be verified only once. Tokens are bound to the site key and hostname they were issued for, and often to an action as well. Use them immediately and never cache or reuse them. Some challenges are cleared with a cookie instead of a token; Cloudflare’s challenge page, for example, can be cleared with a cf_clearance cookie.
The detector has three outcomes, and solving is only one of them:
Three design principles keep the layers apart:
A language-agnostic interface keeps that boundary explicit:
Most managed APIs are asynchronous: you create a task, then poll for its result. The adapter behind this interface should own polling, timeouts and the mapping of provider error codes to retryable. An unsupported task type, for instance, should stop the job, not trigger retries.
The solver behind that interface can be CapMonster Cloud, an API-first solving service that the pipeline calls once the detector has passed on an authorised challenge. Before it carries production traffic, run it against a sample of your own target pages and check the results.
For production pipelines at volume, an API-based solver is usually the stronger fit. It runs server-side, returns structured results and can be monitored like any other dependency.
| Method | Scalability and throughput | Headless or server-side fit | Observability and logging | Human involvement | Best-fit use case |
| API service | High; scales with concurrent calls | Strong; built for programmatic calls | Structured responses, logged per request | None on your side per challenge | Production pipelines at volume |
| Browser extension | Limited to open browser sessions | Partial; needs a browser with the extension loaded (headed, or a headless mode that supports extensions) | Depends on browser-side logging | Low; someone manages the browser | Interactive, low-volume work and QA |
| Manual fallback | Low; bound by operator time | Limited; needs a person in the loop | Only what the operator records | Full | Rare edge cases and review |
Extensions are practical when a person already works in the browser, for example during QA of your own site. Manual solving is still worth keeping for occasional edge cases and for reviewing what the detector has flagged.
With an API-based service such as CapMonster Cloud, your code creates a solving task with the challenge parameters and polls for the result. That result is either a solution (usually a token, sometimes a cookie, recognised text or click coordinates) or a failure, and the pipeline can log and handle both.
Supported task types change over time, so look at the provider’s current list before you map your challenge types to it. As of September 2026, CapMonster Cloud’s documentation lists reCAPTCHA v2, reCAPTCHA v3, reCAPTCHA Enterprise (v2 and v3), Cloudflare Turnstile and image-to-text recognition among its supported types, alongside a range of less common ones.
From the pipeline’s point of view, the main challenge types differ as follows:
Test each type on a sample of your target pages, since sites configure them differently.
Four core metrics show whether the CAPTCHA layer is working: challenge rate, solve time, retry rate and cost per valid record. A fifth, token acceptance rate, catches solves the site still rejects. Track each per target and per route, so a problem on one site does not disappear into an average.
Reliable solving can lower cost per valid record, as long as the savings exceed the solving fees: fewer pages fail, fewer requests are retried, less proxy and compute spend goes to dead ends, and fewer records are discarded at validation.
Hypothetical example: a job spends 100 cost units on 1,000 records, and 200 of those records turn out to be challenge pages. Only 800 records are valid, which puts the cost per valid record at 0.125 units instead of the 0.1 you would expect.
When the challenge rate rises, revisit the request rate and navigation pattern for that target before you increase solve volume. Baseline all five metrics on your own traffic before you set alert thresholds.
Many failures in the CAPTCHA layer trace back to how teams use the solver.
Treating the solver as a volume dial. A solver should not be treated as a throughput control. Fix the request pattern first, because solving does not make aggressive collection acceptable.
Ignoring rate-limit responses. An HTTP 429 response asks for fewer requests. Honour the Retry-After header when present; it can be a number of seconds or an HTTP date, and 503 responses may carry it too. Slow the job rather than retrying at the same pace. Route 429 responses to the back-off branch; they are a rate signal, not a challenge to solve.
Keeping no audit trail. Log the timestamp, target, challenge type, decision, outcome, latency and cost for every CAPTCHA event. Leave out credentials, secrets, the provider API key, solved tokens, clearance cookies and unneeded personal data. Set a retention period, and confirm on a pilot job that every field is populated.
Ignoring legal and terms-of-service boundaries. A working solve does not show that collection is permitted, so check the points below first.
Public availability does not equal permission to collect at scale or to republish. Read the target’s terms of service and robots.txt before the job goes into production. Keep in mind that robots.txt tells crawlers what the site owner prefers to hide; RFC 9309 states explicitly that its rules are not a form of access authorization.
Once personal information is in the data, privacy laws may set rules for how you collect, store, share and use it. Examples are the GDPR and, for businesses that meet its thresholds, the CCPA. The content itself can also be protected by copyright and, in the EU and UK, by the sui generis database right.
Never solve CAPTCHAs to reach authenticated or paywalled areas without authorisation. Some terms of service prohibit circumventing CAPTCHAs or bot protection outright. In some jurisdictions, bypassing technical access controls can also raise issues under computer-misuse law. For commercial projects, get a legal review before launch; this article is not legal advice.
Before a job leaves the pilot stage, confirm your team can answer:
The goal is not to solve every challenge. The goal is a CAPTCHA layer whose decisions are logged, measured and open to review, so every solve, back-off and stop can be explained with evidence.
Looking for
Top-Tier Residential Proxies?
您在寻找顶级高质量的住宅代理吗?
Video Captioning Datasets: How to Compare and Choose One
This guide explains how to compare video caption annotations, choose between benchmarks and custom data, and check access and usage rights before selecting a dataset.
Unknown
2026-10-28
Top ISP Proxy Providers: A Practical Comparison
This page is published by Thor ...
Xyla Huxley
2026-10-28
How to Choose a Video Understanding Dataset
This guide compares video understanding datasets by research goal, annotations, recording perspective, coverage and usage rights. It explains when ready-made datasets fit a task and when tailored footage or fields may be needed.
Unknown
2026-10-28
How to Avoid Getting Blocked When Collecting Video-Site Data
Avoiding blocks while collecting video data starts with permission, a narrow request, and a schedule matched to data changes. The text distinguishes rate limits and access denials from extraction problems and explains when to use search results, page data, or licensed datasets.
Unknown
2026-10-28
How to Choose Real-World Video Data for Embodied AI
Real-world video data helps em ...
Xyla Huxley
2026-10-28
YouTube Dataset Comparison by Research Goal
Compare YouTube datasets by the research task, record type, available fields, refresh cadence, access method, cost, and reuse terms. The guide contrasts fixed research datasets with Thordata, Bright Data, and Apify options.
Unknown
2026-10-27
YouTube Dataset Providers: Ready-Made vs Custom
The guide compares Thordata, Bright Data, Apify, and Oxylabs by access model, YouTube fields, delivery, refresh options, and billing units. It recommends checking sample records and delivery terms before purchase.
Unknown
2026-10-27
How to Choose an Enterprise Video Data Provider
This guide compares search-result data, structured video records, and media delivery. It describes the fields, delivery terms, and pilot checks buyers can use to evaluate providers.
Unknown
2026-10-27
How to Get YouTube Transcripts Programmatically
You can get YouTube transcript ...
Xyla Huxley
2026-10-27