Hotels.com Scraper
Pricing
from $0.80 / 1,000 results
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
Maintained by CommunityActor 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?
| Field | Description |
|---|---|
property_id | Hotels.com property identifier |
hotel_id | Hotel identifier from the property URL |
hotel_name | Hotel or property name |
hotel_url | Direct Hotels.com property page URL |
star_rating | Official star rating |
star_rating_label | Star rating text shown by Hotels.com |
guest_rating | Guest review score out of 10 |
guest_rating_label | Short guest summary such as Wonderful or Loved by guests |
review_count | Number of guest reviews |
price | Displayed price as a number |
price_formatted | Price exactly as shown, including the currency symbol |
strikeout_price | Original price when a discount is displayed |
strikeout_price_formatted | Original price exactly as shown |
currency | Currency detected from the displayed price |
price_messages | Price context such as stay length and dates |
price_details | Additional price lines such as nightly price and total with taxes and fees |
badges | Badge or highlight labels shown on the listing |
image_url | Primary property image |
images | Property images with descriptions |
destination | Search destination used for the run |
check_in | Check-in date used for the search |
check_out | Check-out date used for the search |
adults | Total adults used for the search |
rooms | Number of rooms used for the search |
sort_by | Sort order used for the search |
rank | Position of the listing in the saved result set |
page | Search page where the listing was found |
search_url | Search URL used for the run |
scraped_at | ISO timestamp for when the listing was collected |
source | Source website |
How to use Hotels.com Listings Scraper
- Open the Actor on Apify.
- Paste a Hotels.com search URL or enter a location.
- Set check-in and check-out dates, adults, and rooms.
- Choose a sort order.
- Set the maximum number of listings and pages.
- Run the Actor and open the dataset.
- 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | Example London URL | Hotels.com Hotel-Search results URL. Takes priority over location unless only the example URL is present. |
location | String | No | - | Destination used when startUrl is empty or cannot be used. |
checkIn | String | No | Tomorrow | Check-in date in YYYY-MM-DD format. |
checkOut | String | No | Day after check-in | Check-out date in YYYY-MM-DD format. |
adults | Integer | No | 2 | Adults per room, from 1 to 8. |
rooms | Integer | No | 1 | Number of rooms, from 1 to 8. |
sortBy | String | No | RECOMMENDED | One of RECOMMENDED, PRICE_LOW_TO_HIGH, PRICE_HIGH_TO_LOW, REVIEW, PROPERTY_CLASS, or DISTANCE. |
results_wanted | Integer | No | 20 | Maximum number of listings to save. |
max_pages | Integer | No | 5 | Maximum number of search pages to request. |
proxyConfiguration | Object | No | Residential Apify Proxy | Proxy 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®ionId=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®ionId=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
locationwhen 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
locationwhen 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_detailswhen 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.
Is it legal to collect Hotels.com data?
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.
Legal Notice
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.