Hotels.com Scraper avatar

Hotels.com Scraper

Pricing

from $5.00 / 1,000 property scrapeds

Go to Apify Store
Hotels.com Scraper

Hotels.com Scraper

Scrape Hotels.com nightly rates and full hotel data by destination or property, with per-site price comparison, ratings and amenities. Works with Apify MCP and the API.

Pricing

from $5.00 / 1,000 property scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

24

Total users

7

Monthly active users

2 days ago

Last modified

Share

What is Hotels.com Scraper?

Hotels.com Scraper returns one row per hotel for any destination or hotel name, with nightly and total rates for your dates, star class, guest rating, review count, amenities, photos, GPS location, check-in times and review breakdowns. Turn on enrichDetails to add the live Hotels.com nightly rate for each property next to Expedia, Booking.com and other booking sites, plus the full address, phone and typical price range. Revenue managers, travel researchers, price-comparison builders and AI agents use it to compare hotel rates across booking sites, with no Hotels.com account.

Why travel teams use it for rate research

  • The Hotels.com rate next to its competitors. hotelsComRate and featuredPrices show what Hotels.com, Expedia, Booking.com and others charge for the same room and dates.
  • Real stay pricing. Rates are quoted for your check-in and check-out dates, guests and currency, before and after taxes.
  • Rich hotel profiles. Star class, rating, review count, amenities, photos, nearby places and review themes in every row.
  • Search or look up. Search a city or neighborhood, or pass propertyTokens from an earlier run to refresh exact hotels.
  • Pay per property. One charge per hotel, and one more only for hotels you enrich with competitor prices.

How to use it

Compare booking-site prices for hotels in Paris:

{
"location": "Paris",
"checkInDate": "2026-11-12",
"checkOutDate": "2026-11-14",
"currency": "EUR",
"maxResults": 20,
"enrichDetails": true
}

Four- and five-star hotels in Las Vegas under $300, cheapest first:

{
"location": "Las Vegas Strip",
"hotelClasses": ["4", "5"],
"maxPrice": 300,
"sortBy": "Lowest price",
"maxResults": 40
}
InputWhat it controls
locationCity, neighborhood or hotel name to search
propertyTokensExact hotels to refresh, from propertyToken in an earlier run
checkInDate, checkOutDateStay dates; blank uses a stay about a month ahead
adults, children, childrenAgesGuests per room
currency, countryCode, languagePrice currency and market
sortBy, minRating, hotelClasses, minPrice, maxPriceSearch filters and order
vacationRentals, freeCancellationRentals instead of hotels, or free-cancellation stays only
enrichDetailsAdd the Hotels.com rate, competitor prices, address and phone per hotel
maxResultsHotels to return, 20 per page (default 20)

Want guest reviews for the hotels you found? Continue with Booking Reviews Scraper linked below.

Output: hotel data you receive

A real enriched row for a Paris hotel (lists shortened):

{
"mode": "details",
"name": "Novotel Paris Est",
"propertyToken": "ChgI4pOK_6G_jNyKARoLL2cvMXg1cXMyYmIQAQ",
"hotelClassStars": 4,
"overallRating": 3.6,
"reviewsCount": 6575,
"currency": "EUR",
"ratePerNightLowest": 67,
"totalRateLowest": 134,
"hotelsComRate": 106,
"featuredPrices": [
{ "source": "Hotels.com", "rate": "€106", "extractedRate": 106, "numGuests": 2 },
{ "source": "Expedia.com", "rate": "€106", "extractedRate": 106, "numGuests": 2 }
],
"amenities": ["Wi-Fi", "Restaurant", "Bar"],
"address": "1 Av. de la République, 93170 Bagnolet, France",
"phone": "+33 1 49 93 63 00",
"typicalPriceLow": 68,
"typicalPriceHigh": 91,
"checkInTime": "2:00 PM",
"checkOutTime": "12:00 PM",
"gpsLat": 48.8633307,
"gpsLng": 2.4161664,
"checkInDate": "2026-10-31",
"checkOutDate": "2026-11-02",
"scrapedAt": "2026-10-01T05:39:46.052Z"
}
FieldWhat it contains
name, type, hotelClassStars, linkThe property, its type, star class and website
overallRating, reviewsCount, locationRating, ratings, reviewsBreakdownGuest scores, star distribution and review themes
ratePerNightLowest, totalRateLowest and their BeforeTaxes versionsLowest nightly and total stay price across booking sites
hotelsComRate, featuredPrices, allPriceSourcesHotels.com rate, other sites' prices and every site listing the hotel (with enrichDetails)
address, phone, description, typicalPriceLow, typicalPriceHighContact details, summary and usual price range (with enrichDetails)
amenities, images, nearbyPlacesFacilities, photos and travel times to landmarks
gpsLat, gpsLng, checkInTime, checkOutTimeLocation and house times
propertyToken, checkInDate, checkOutDate, scrapedAtStable ID for refreshes, stay dates and collection time

OUTPUT in the default key-value store reports the run outcome, hotels saved and events charged.

Example workflow: a weekly rate check for a hotel group

A revenue manager watches 15 competitor hotels in Lisbon. A first search for Lisbon runs with enrichDetails on and saves the propertyToken of each competitor. A weekly task then passes those tokens with next month's dates and compares hotelsComRate against Booking.com and Expedia in featuredPrices. When a competitor drops below their own rate, they review the gap. Then they pull guest feedback for the same hotels with Booking Reviews Scraper.

Pricing

This Actor uses Pay per event. Apify platform usage is included in the event price. You pay one event per hotel saved, one extra event per hotel enriched with enrichDetails or looked up by propertyTokens, and a start event per run. The live Pricing tab on this page shows the current prices.

  • 20 hotels without enrichment = 20 property events.
  • 20 hotels with enrichDetails = 20 property events + 20 detail events.
  • maxResults caps each search, so it doubles as a cost ceiling.

Free plan limit: Apify free-plan accounts can make 10 search requests per rolling 30 days across this developer's search Actors. Each results page and each enrichDetails or propertyTokens lookup counts as one request. This limit is set by the Actor developer, not Apify. When it is reached, the run stops cleanly, keeps every hotel already found, and the status message shows when the next free request becomes available. Paid Apify plans have no such limit.

Hotel research with AI agents (MCP)

Connect this Actor to an AI agent through Apify MCP and ask in plain language:

Find five 4-star hotels near the Eiffel Tower for 12–14 November and show the Hotels.com price next to Booking.com and Expedia for each.

Agent checklist:

  1. Put the place in location and set checkInDate, checkOutDate and currency.
  2. Set enrichDetails: true when the user wants per-site prices or contact details.
  3. Keep maxResults close to the request; read rows with get-dataset-items.
  4. Compare hotelsComRate with the other entries in featuredPrices.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~hotels-com-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"location": "Rome", "checkInDate": "2026-12-03", "checkOutDate": "2026-12-05", "currency": "EUR", "maxResults": 10, "enrichDetails": true}'
Your next stepUseWhy
When you then want guest reviewsBooking Reviews ScraperBooking.com reviews with scores and dates
When you research Booking.com listings directlyBooking Scraper PROBooking.com prices, stars and review scores
When you compare holiday rentalsAirbnb ScraperAirbnb listings with prices and ratings
When you want traveler opinions and rankingsTripAdvisor ScraperHotels, ratings and reviews from TripAdvisor

Best results

Starting situationHelpful actionExpected outcome
Comparing booking sitesTurn on enrichDetailsHotels.com rate next to other sites for every hotel
Tracking the same hotels over timeSave propertyToken values and pass them in propertyTokensA fresh rate row per hotel on each run
Families or groupsSet adults, children and childrenAgesRates for the real room occupancy
A specific budgetUse minPrice, maxPrice and sortBy: "Lowest price"Hotels within budget, cheapest first

Builder's note

I found that people looking up Hotels.com prices almost always want to know how that rate compares, so enriched rows put hotelsComRate beside every other booking site in featuredPrices. I learned that rate tracking works best on exact properties, so each row keeps a propertyToken you can pass back in for the next check.

FAQ

Where do the rates come from?

From Google Hotels price listings, where Hotels.com, Expedia, Booking.com and other sites publish their rates for each hotel. Search rows show the lowest rate across sites; enriched rows add each site's own price.

Do I need a Hotels.com account?

No. The Actor needs no login, cookies or API key.

Why is hotelsComRate empty for some hotels?

Hotels.com publishes a rate for most hotels, though not every property or date. When it is missing, featuredPrices still lists the other sites' prices.

Can I search vacation rentals?

Yes. Set vacationRentals: true to get apartments and homes instead of hotels.

Which currencies work?

Any three-letter currency code, such as USD, EUR, GBP or JPY.

Responsible use

This Actor collects publicly listed hotel information and prices. Use it for travel research and price comparison and follow the terms of the sites involved. Read Apify's guide on whether web scraping is legal for more context. Hotels.com is a trademark of Expedia, Inc. This independent Actor is not affiliated with, associated with, or endorsed by Hotels.com, Expedia or Google. For questions or bugs, open a ticket in the Issues tab.