Hotels.com Scraper avatar

Hotels.com Scraper

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Hotels.com Scraper

Hotels.com Scraper

Extract hotel listings from Hotels.com with prices, ratings, reviews, locations, amenities, room types, availability, images, and booking URLs. Ideal for hotel price monitoring, travel market research, competitor analysis, hospitality insights, and AI-ready datasets.

Pricing

from $0.80 / 1,000 results

Rating

0.0

(0)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Categories

Share

What does Hotels.com Listings Scraper do?

Hotels.com Listings Scraper collects hotel search results from Hotels.com and saves one row per property with the hotel name, star rating, guest score, review count, price, discount price, images, and direct hotel link. Add a Hotels.com search URL or enter a destination, choose your dates and guests, and run the Actor.

Use it to compare hotel prices across dates, study a destination's inventory, monitor competitor rates, or refresh an accommodation dataset for a dashboard or AI agent.

Why use Hotels.com Listings Scraper?

  • One record per property - Each row combines the listing details and price shown in the search result, so you do not have to merge fields from several pages.
  • Search URL or destination input - Paste a Hotels.com search URL when you need exact filters, or enter a city name and let the Actor build the search.
  • Filtered search URLs - Apply star, guest, or other filters on Hotels.com, then paste the resulting search URL.
  • Multi-page collection - Set a result target and page limit to collect more than the first screen of hotels.
  • Exports and integrations - Download JSON, CSV, Excel, or XML, or send the dataset to Google Sheets, webhooks, Make, or Zapier.
  • Repeatable price checks - Schedule the Actor to compare the same destination and dates over time.

What data can you extract from Hotels.com?

FieldDescription
property_idHotels.com property identifier
hotel_idHotel identifier from the property URL
hotel_nameHotel or property name
hotel_urlDirect Hotels.com property page URL
star_ratingOfficial star rating
star_rating_labelStar rating text shown by Hotels.com
guest_ratingGuest review score out of 10
guest_rating_labelShort guest summary such as Wonderful or Loved by guests
review_countNumber of guest reviews
priceDisplayed price as a number
price_formattedPrice exactly as shown, including the currency symbol
strikeout_priceOriginal price when a discount is displayed
strikeout_price_formattedOriginal price exactly as shown
currencyCurrency detected from the displayed price
price_messagesPrice context such as stay length and dates
price_detailsAdditional price lines such as nightly price and total with taxes and fees
badgesBadge or highlight labels shown on the listing
image_urlPrimary property image
imagesProperty images with descriptions
destinationSearch destination used for the run
check_inCheck-in date used for the search
check_outCheck-out date used for the search
adultsTotal adults used for the search
roomsNumber of rooms used for the search
sort_bySort order used for the search
rankPosition of the listing in the saved result set
pageSearch page where the listing was found
search_urlSearch URL used for the run
scraped_atISO timestamp for when the listing was collected
sourceSource website

How to use Hotels.com Listings Scraper

  1. Open the Actor on Apify.
  2. Paste a Hotels.com search URL or enter a location.
  3. Set check-in and check-out dates, adults, and rooms.
  4. Choose a sort order.
  5. Set the maximum number of listings and pages.
  6. Run the Actor and open the dataset.
  7. Download the results or connect the dataset to your workflow.

When you provide a custom search URL and a location, the search URL is used first. If the only URL value is the built-in example and you provide a location, the location is used. Explicit dates, guest counts, and sort order in the input form override values from the URL. Filters are read from the search URL.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlStringNoExample London URLHotels.com Hotel-Search results URL. Takes priority over location unless only the example URL is present.
locationStringNo-Destination used when startUrl is empty or cannot be used.
checkInStringNoTomorrowCheck-in date in YYYY-MM-DD format.
checkOutStringNoDay after check-inCheck-out date in YYYY-MM-DD format.
adultsIntegerNo2Adults per room, from 1 to 8.
roomsIntegerNo1Number of rooms, from 1 to 8.
sortByStringNoRECOMMENDEDOne of RECOMMENDED, PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW, REVIEW, PROPERTY_CLASS, or DISTANCE.
results_wantedIntegerNo20Maximum number of listings to save.
max_pagesIntegerNo5Maximum number of search pages to request.
proxyConfigurationObjectNoResidential Apify ProxyProxy settings. Residential proxy is recommended for Hotels.com.

Usage Examples

Collect listings from a Hotels.com search URL

Use this when you already have a search URL with the destination, dates, and guests you need.

{
"startUrl": "https://www.hotels.com/Hotel-Search?destination=London%2C%20England%2C%20United%20Kingdom&regionId=2114&startDate=2026-10-29&endDate=2026-10-30&adults=2&rooms=1&sort=RECOMMENDED",
"results_wanted": 20,
"max_pages": 2
}

Collect listings by location

Use a destination name when you do not have a search URL.

{
"location": "Paris, France",
"checkIn": "2026-11-10",
"checkOut": "2026-11-13",
"adults": 2,
"rooms": 1,
"results_wanted": 50
}

Collect highly rated hotels from a filtered search URL

Apply the filters on Hotels.com, then paste the resulting search URL. This example keeps 4-star properties with a guest rating of 9 or higher.

{
"startUrl": "https://www.hotels.com/Hotel-Search?destination=Tokyo%2C%20Japan&startDate=2026-12-01&endDate=2026-12-03&adults=2&rooms=1&sort=PRICE_LOW_TO_HIGH&filter.star=40&filter.guestRating=45",
"results_wanted": 100,
"max_pages": 3
}

Collect a larger result set across multiple pages

Increase both the result limit and the page limit when you need a broader dataset.

{
"location": "New York, NY, United States",
"checkIn": "2026-11-20",
"checkOut": "2026-11-22",
"adults": 2,
"rooms": 2,
"results_wanted": 250,
"max_pages": 6
}

Sample Output

{
"property_id": "179",
"hotel_id": "114409",
"hotel_name": "Strand Palace Hotel",
"hotel_url": "https://www.hotels.com/ho114409/the-strand-palace-hotel-london-united-kingdom/",
"star_rating": 4,
"star_rating_label": "Property class: 4",
"guest_rating": 9,
"guest_rating_label": "Wonderful",
"review_count": 5790,
"price": 311,
"price_formatted": "$311",
"strikeout_price": 345,
"strikeout_price_formatted": "$345",
"currency": "USD",
"price_messages": ["for 1 night", "Oct 29 - Oct 30"],
"price_details": ["$259 nightly", "Total with taxes and fees"],
"badges": ["Mobile Price"],
"image_url": "https://images.trvl-media.com/lodging/1000000/10000/200/179/af46edc5.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"images": [
{
"url": "https://images.trvl-media.com/lodging/1000000/10000/200/179/af46edc5.jpg?impolicy=resizecrop&ra=fit&rw=455&rh=455",
"description": "A street view with a building labeled Strand Palace."
}
],
"destination": "London, England, United Kingdom",
"check_in": "2026-10-29",
"check_out": "2026-10-30",
"adults": 2,
"rooms": 1,
"sort_by": "RECOMMENDED",
"rank": 1,
"page": 1,
"search_url": "https://www.hotels.com/Hotel-Search?destination=London%2C%20England%2C%20United%20Kingdom&regionId=2114&startDate=2026-10-29&endDate=2026-10-30&adults=2&rooms=1&sort=RECOMMENDED",
"scraped_at": "2026-10-24T07:01:51.327Z",
"source": "hotels.com"
}

Tips for Best Results

  • Use a search URL when you need an exact destination, date, guest, and filter combination from Hotels.com.
  • Use location when you want the Actor to build the search for you.
  • Start with 20 results and one page to check the output before running a larger job.
  • Past dates are moved forward automatically. Missing or invalid dates fall back to tomorrow and the day after, with a warning in the run log.
  • If a URL cannot be used, the Actor logs a warning and falls back to location when one is provided. If no usable search can be built, it stops with a clear warning instead of a crash.
  • Keep Residential Apify Proxy enabled. Hotels.com limits shared datacenter traffic.
  • Use separate runs for separate destinations when you need a clean dataset per city.
  • Expect some optional fields to be missing. Strikeout prices appear only when a discount is shown, and badges appear only when Hotels.com displays them.
  • Check price_details when you need to understand whether a price is nightly, total, or includes taxes and fees.

Integrations

  • Google Sheets - Send listings to a spreadsheet for analysis or sharing.
  • Webhooks - Trigger a downstream workflow after each run.
  • Make or Zapier - Connect results to no-code automations.
  • Apify API - Read datasets from your own applications.
  • CSV, Excel, JSON, XML - Download results in the format your team uses.

Frequently Asked Questions

Can I export Hotels.com listing data to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, and other supported formats.

Can I run this Actor on a schedule?

Yes. Schedule the Actor in Apify Console to refresh prices and availability hourly, daily, or weekly.

Can I collect listings for more than one destination in one run?

Use one destination per run. This keeps the dataset clean and makes it easier to compare results across cities.

Why is the star rating or guest rating missing for some hotels?

Hotels.com does not publish every field for every property. The Actor removes empty values from each record, so a missing field means the source did not return it for that listing.

Why is a price missing?

Some properties do not have availability for the selected dates, or the price is not shown in the search result. Try different dates or a different destination.

Does the price include taxes and fees?

The price field matches the price shown on the search result. Check price_details and price_messages for lines such as nightly price or total with taxes and fees.

Can I filter by star rating and guest rating?

Yes. Apply the filters on Hotels.com, then paste the resulting search URL. For example, filter.star=40 keeps 4-star properties and filter.guestRating=45 keeps properties rated 9 or higher.

Can I use a hotel detail page URL?

Use a Hotels.com Hotel-Search results URL or a location. Hotel detail pages are not search results and do not describe a destination and date range.

Collecting public data can be legal, but you are responsible for complying with applicable laws, Hotels.com terms, and privacy rules. Use the data responsibly.

Support

For issues, feature requests, or custom Actor work, use the Issues tab on the Actor page or contact the developer through Apify.

This Actor is designed for legitimate collection of publicly available hotel search data. Users are responsible for how they use the data and for complying with applicable laws and website terms.