Crawling API / Hotels.com

Hotels.com Scraper.
Live prices, fully rendered.

Send any Hotels.com URL and get the fully rendered HTML back, with room prices and availability loaded, through residential proxies with anti-bot handling built in.
Turn it into JSON with the generic extractor.

99% success rate140M residential IPs30 geographies
Hotels.com URLHTML or JSONhotels.com/Hotel-SearchCrawlbaseRouteRenderExtractRendered HTMLStructured JSONcrawling-apigeneric-extractorhotels.com · JS challenge passed · 200
Live crawl feed · Hotels.com1.24M req/minStreaming
200hotels.com/ho512847/AU146ms
200hotels.com/ho138224/US59ms
200hotels.com/ho512847/GB199ms
200hotels.com/ho260539/SG217ms
200hotels.com/Hotel-Search?destination=BarcelonaCA121ms
200hotels.com/reviews/ho138224/AU51ms
200hotels.com/reviews/ho405162/SG207ms
200hotels.com/Hotel-Search?destination=BarcelonaUS192ms
200hotels.com/ho512847/SG102ms
200hotels.com/Paris-Hotels.d179900.Travel-Guide-HotelsGB125ms
200hotels.com/Hotel-Search?destination=Dubai&sort=PRICE_LOW_TO_HIGHGB55ms
200hotels.com/Hotel-Search?destination=SydneyES140ms
200hotels.com/reviews/ho138224/DE199ms
200hotels.com/Hotel-Search?destination=LondonNL44ms
200hotels.com/Hotel-Search?destination=New+YorkAU166ms
200hotels.com/Hotel-Search?destination=Tokyo&sort=PRICE_LOW_TO_HIGHUS199ms
200hotels.com/reviews/ho138224/JP121ms
200hotels.com/Hotel-Search?destination=Dubai&sort=PRICE_LOW_TO_HIGHGB203ms
200hotels.com/ho512847/NL59ms
200hotels.com/Hotel-Search?destination=LondonBR139ms
200hotels.com/reviews/ho405162/GB59ms
200hotels.com/London-Hotels.d178279.Travel-Guide-HotelsFR144ms
200hotels.com/search?q=beach+resortBR97ms
200hotels.com/London-Hotels.d178279.Travel-Guide-HotelsFR217ms
301hotels.com/reviews/ho138224/DE213ms
200hotels.com/reviews/ho405162/BR43ms
200hotels.com/ho512847/AU146ms
200hotels.com/ho138224/US59ms
200hotels.com/ho512847/GB199ms
200hotels.com/ho260539/SG217ms
200hotels.com/Hotel-Search?destination=BarcelonaCA121ms
200hotels.com/reviews/ho138224/AU51ms
200hotels.com/reviews/ho405162/SG207ms
200hotels.com/Hotel-Search?destination=BarcelonaUS192ms
200hotels.com/ho512847/SG102ms
200hotels.com/Paris-Hotels.d179900.Travel-Guide-HotelsGB125ms
200hotels.com/Hotel-Search?destination=Dubai&sort=PRICE_LOW_TO_HIGHGB55ms
200hotels.com/Hotel-Search?destination=SydneyES140ms
200hotels.com/reviews/ho138224/DE199ms
200hotels.com/Hotel-Search?destination=LondonNL44ms
200hotels.com/Hotel-Search?destination=New+YorkAU166ms
200hotels.com/Hotel-Search?destination=Tokyo&sort=PRICE_LOW_TO_HIGHUS199ms
200hotels.com/reviews/ho138224/JP121ms
200hotels.com/Hotel-Search?destination=Dubai&sort=PRICE_LOW_TO_HIGHGB203ms
200hotels.com/ho512847/NL59ms
200hotels.com/Hotel-Search?destination=LondonBR139ms
200hotels.com/reviews/ho405162/GB59ms
200hotels.com/London-Hotels.d178279.Travel-Guide-HotelsFR144ms
200hotels.com/search?q=beach+resortBR97ms
200hotels.com/London-Hotels.d178279.Travel-Guide-HotelsFR217ms
301hotels.com/reviews/ho138224/DE213ms
200hotels.com/reviews/ho405162/BR43ms
01 Live demo

Any Hotels.com URL in. HTML or JSON out.

The Crawling API, typed live. Get the rendered HTML, or switch to the generic extractor for JSON. Hover to pause and read.

ready
keys 1-2 switch · click to pauserun your own URL
Run your first request in minutes. Up to 10,000 free requests, no credit card.Start free
02 Capabilities

One API, everything Hotels.com throws at you.

Hotels.com polls room prices and availability live, renders results after the page loads, and gates rates by geo and currency behind anti-bot defenses. The Crawling API renders it in a real browser, reaches it through residential IPs, and hands you clean HTML or JSON.

render

Full JavaScript rendering

A real browser executes the page and waits, so live-polled room rates, availability and review content all load before capture, not just the initial shell.

proxies

140M residential IPs

Every request rotates a residential IP across 30 geographies, so you reach Hotels.com like a real local visitor and resolve geo and currency gated rates.

anti-bot

Blocks handled for you

CAPTCHAs, bot walls and rate limits are cleared automatically. Nothing to solve, nothing to maintain.

format

HTML or JSON

Get the full rendered HTML, or add scraper=generic-extractor to return title, content, images and links as structured JSON.

extras

Screenshots and async

The same call can capture a full-page screenshot, or run asynchronously with webhooks and cloud storage.

one token

One API for every site

The Crawling API works on any URL, so the same token covers Hotels.com and everything else you crawl. See the live demo.

03 Output

Rendered HTML, or clean JSON.

By default you get the rendered HTML. Add the generic-extractor and the same page comes back as typed JSON.

{ "title": "London Hotels: book now | Hotels.com", "favicon": "https://www.hotels.com/favicon.ico", "meta": { "description": "Find and book hotels on Hotels.com.", "keywords": "..." }, "content": "Hotel results with prices, ratings, availability and reviews...", "canonical": "https://www.hotels.com/Hotel-Search?destination=London", "images": [ "..." ], "og_images": [ "..." ], "links": [ "..." ] }

Page

title · string  canonical · string  favicon · string

Meta

meta.description · string  meta.keywords · string

Content

content · string

Media

images · array  og_images · array

Links

links · array

04 How it works

From URL to data in one call.

Every Hotels.com request moves through the same path. You send a URL, we operate everything in between.

01

Send the URL

Pass any public Hotels.com URL with your token: a search, a destination, a property page or a review page.

02

Rotate a proxy

A residential IP and geography that reach Hotels.com cleanly, drawn from 140M IPs across 30 regions.

03

Render the page

A real browser loads the page and waits for live-polled room prices, availability and reviews to render before capture.

04

Clear anti-bot

Hotels.com bot checks, geo and currency gating, and rate limits are handled automatically. Nothing to solve, nothing to maintain.

05

Return HTML or JSON

The fully rendered HTML comes back, or typed JSON when you add the generic extractor.

05 Use cases

What teams build on Hotels.com data.

USE / 01Pricing

Hotel price monitoring

Track room rates across dates and properties to follow how prices move by season, lead time and demand.

USE / 02Aggregation

OTA aggregation

Pull listings, rates and availability into a single feed alongside other travel sites for one combined view.

USE / 03Parity

Rate-parity checks

Compare published rates against your own and other channels to spot undercutting and parity breaks.

USE / 04Reviews

Review & reputation research

Collect guest reviews and ratings to track sentiment, themes and reputation across properties.

USE / 05Market

Market & demand research

Map inventory, star ratings and pricing by destination to size markets and find supply gaps.

USE / 06Coverage

Any URL, one API

Crawl search, destination, property and review pages, plus any other travel site you need.

06 Notes

Good to know when scraping Hotels.com.

Prices load after the page

Room rates and availability are live-polled and JavaScript-rendered; the Crawling API runs a real browser and waits so results load before capture, not an empty shell.

HTML by default, JSON on request

You get the full rendered HTML. Add scraper=generic-extractor for parsed title, content, images and links, or parse the HTML yourself.

Geo and currency gating

Rates and currency depend on the visitor region. Geotargeting picks a residential IP in the market you need, so local prices resolve instead of a default fallback.

Reach Hotels.com from anywhere

Geotargeting across 30 regions and 140M residential IPs means consistent access without managing proxies.

07 Why Crawlbase

Built to crawl Hotels.com at scale.

The Crawling API runs on the same network that serves 46,000+ paying customers and 70,000+ developers. No proxies to buy, no browsers to run, nothing to patch when Hotels.com changes.

99%
Average request success rate
140M
Residential IPs, plus 98M datacenter
30
Geographies for accurate local results
20/s
Requests per second by default, more on request

One token, official SDKs for Python, Node and Ruby, and a 99.99% uptime network underneath.

08 FAQ

Hotels.com scraping questions.

Send the Hotels.com URL to the Crawlbase Crawling API with your token. Crawlbase rotates a residential proxy, renders the page in a real browser, waits for prices and availability to load, clears bot checks, and returns the fully rendered HTML. Add scraper=generic-extractor to get structured JSON instead.
Yes. By default the Crawling API returns rendered HTML; add the generic extractor (scraper=generic-extractor) to receive title, meta, content, images and links as JSON, or parse the HTML yourself.
Yes. A real browser executes the page and waits for the live-polled rates and room availability to render, so you capture the prices a real visitor sees, not an empty shell.
Crawlbase routes each request through rotating residential IPs across 30 geographies and clears bot checks automatically. You do not manage proxies or solve CAPTCHAs, and there is nothing to maintain when Hotels.com changes its setup.
Yes. Geotargeting picks a residential IP in the region you need, so geo and currency gated rates resolve to the local market rather than a default fallback.
Any public URL: search and destination pages, individual property pages, review pages, and filtered or sorted result pages. The same API works on any other site too.
Start free with up to 10,000 requests and no credit card. Paid plans scale with usage, and the same token works across the Crawling API and every Crawlbase scraper.

Start scraping Hotels.com.
Skip the proxies and blocks.

Free to begin with up to 10,000 requests. One token for the Crawling API and every scraper.