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
Blog
blogevery-captcha-your-fare-aggregator-meets-costs-you-money-a-travel-data-teams-field-notesevery-captcha-your-fare-aggregator-meet

Travel meta-search lives and dies on fare freshness. The problem is that airlines and OTAs deploy their most aggressive anti-bot defenses exactly where the money is — dynamic pricing pages, geo-specific fares, and session-dependent rates. This piece walks through the five failure patterns we see travel data teams hit, what each one actually costs, and the collection architecture that fixes them.
These are field notes, not a whitepaper. Everything below comes from the patterns that show up when fare aggregation pipelines break in production.
A fare aggregator’s core promise is “the price you see is the price you get.” Break that promise often enough and users churn to competitors — but keeping prices fresh across hundreds of airlines, OTAs, and hotel platforms is a collection problem with no natural ceiling.
Consider the arithmetic of staleness. A hotel price page you refresh every 6 hours can be up to 6 hours wrong. During demand spikes — holidays, events, flash sales — inventory and rates change by the minute. Teams that quantify it usually find that a stale-fare window of N hours translates directly into a measurable booking-loss rate, because the first aggregator to show the new fare captures the click.
The uncomfortable conclusion: freshness is a collection-frequency question, collection frequency is a cost question, and cost is where most freshness strategies quietly die.
| Failure pattern | What the user sees | What it costs you |
|---|---|---|
| CAPTCHA wall on the hotel page | “Price unavailable” | Lost click to a competitor who has the price |
| Geo-mismatched fare (wrong market) | Price shown ≠ price at checkout | Trust damage, support tickets, refund disputes |
| Session-dependent pricing missed | Fare jumps at redirect | Conversion drop on the redirect step |
| Blocked datacenter IP | Silent data gap in one region | Regional coverage holes, broken “compare all sites” claim |
| Layout change on OTA page | Parser returns nulls | Days of engineering to fix, weeks of dirty data |
Two of these five are pure infrastructure problems (IP quality, geo-targeting), two are parsing problems, and one is both. The industry’s gradual realization: you shouldn’t solve infrastructure problems with parsing effort, or vice versa.
The travel teams that stopped fighting these battles individually converged on a layered setup:
Layer 1 — Pre-built scrapers for the big targets. Major OTAs and hotel platforms are standardized targets. Thordata’s Web Scraper API ships with 120+ pre-built scrapers — Booking.com and the major travel platforms among them — with CAPTCHA solving, JavaScript rendering, and structured JSON output included. Pricing runs about $1.00 per 1,000 results at entry volume and roughly $0.50 per 1,000 results at scale, billed on delivered results rather than attempts. When a CAPTCHA appears, it’s solved upstream; it never reaches your bill as a failed attempt.
Layer 2 — An unlocker for the stubborn middle tier. Regional airlines and mid-size OTAs with custom anti-bot setups don’t merit dedicated scrapers but still block generic traffic. Thordata’s Web Unlocker handles IP rotation, fingerprint management, and retry logic at about $1.00–$1.30 per 1,000 responses, which is the right price point for targets that update less frequently.
Layer 3 — Raw residential proxies for the long tail. Small carrier sites and niche booking engines just need credible residential traffic with the right geography. Thordata’s residential pool covers 190+ countries with city and ASN-level targeting, priced on a transparent slider from $2.00/GB at 1 GB down to $0.65/GB at 5,000 GB.
A minimal Layer 1 call looks like this:
from thordata import Thordata
client = Thordata(api_key="YOUR_API_KEY")
def get_fare(hotel_id: str, market: str):
task = client.scrape(
scraper="booking_hotel", # pre-built target
query=hotel_id,
domain=market, # e.g. "com", "de", "co.jp"
geo=market, # collect from the right market
output_format="json",
)
return {
"hotel": hotel_id,
"nightly_rate": task.result.get("price"),
"currency": task.result.get("currency"),
"rooms_left": task.result.get("availability"),
"fetched_at": task.created_at,
}
The geo parameter is the one travel teams care about most: a Berlin-market fare collected through a Berlin session, not inferred afterward.
Fare data is half the picture. The other half is where your pages rank — because a perfect price on a page that ranks eighth gets a fraction of the traffic of a good price on a page that ranks second. Travel keywords (“flights to Tokyo,” “hotels near Shibuya”) are among the most valuable and most volatile in search, reshaped constantly by seasonal demand and paid placements.
That’s why the mature version of a travel data stack pairs fare collection with continuous rank monitoring. Thordata’s SERP monitoring solution delivers structured Google and Bing results on a schedule — organic positions, featured snippets, ads — at roughly $0.70 per 1,000 responses at volume, with CAPTCHA handling built in. Fare freshness and rank freshness stop being separate budgets.
Here is the exercise we’d run with any travel data team. Take your target count, multiply by refresh frequency, and price it under per-result billing:
| Component | Scale assumption | Approx. monthly cost |
|---|---|---|
| Hotel/OTA fares (pre-built scrapers) | 30,000 properties × 4 refreshes/day | 3.6M results ≈ $1,800–3,600 |
| Mid-tier unlocker traffic | 500K responses/month | ≈ $500–650 |
| Long-tail residential | 200 GB/month | ≈ $200–280 |
| Rank monitoring (SERP API) | 50K keywords × daily | 1.5M responses ≈ $1,050 |
Your numbers will differ; the point is that every line is now predictable, decoupled from block rates, and free of the “how much traffic did failed attempts burn” ambiguity that makes proxy-budget forecasting miserable. Free trial credits for the Scraper and SERP APIs let you validate the two biggest lines before spending anything.
How do we handle session-dependent pricing — the fare that changes when you click through? Collect with sticky sessions (Thordata supports sessions up to 30–90 minutes) so the price you fetch and the price at redirect share a session context. It won’t perfectly eliminate redirect mismatch — that’s the OTA’s design — but it narrows the gap significantly compared to single-request collection.
We already have parsers for our top 20 OTAs. Do we throw them away? No. Run them in parallel during evaluation and compare success rates and cost-per-delivered-fare. Most teams end up keeping custom parsers for one or two high-value targets and moving the rest to managed collection, freeing engineering time for the analysis layer where their actual differentiation lives.
Does this work for metasearch SEO too — not just fare data? Yes, and it’s usually underfunded relative to fare collection. Travel keywords shift with seasons and ad spend; the continuous SERP data crawling service tracks organic and paid positions over time so you can see which destinations your pages are gaining or losing visibility on, week over week.
The teams that win in travel aggregation stopped treating data collection as a background cost center and started treating it as the product. Their fare freshness is a dashboard metric with an owner; their SERP visibility is tracked with the same rigor as their conversion rate; and their collection costs are a known number per thousand fares, not a surprise at month-end. Start with the free trial credits, instrument one market end-to-end, and let the freshness numbers make the case for the rest.
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
The text compares ISP and static residential proxy providers by IP persistence, location, purchase terms and bandwidth conditions. It advises buyers to test their intended workflow rather than rely on published specifications alone.
Unknown
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