Skip to content

Expedia & Hotels.com Reviews Scraper

Try for free

Scrape public hotel reviews from Expedia and Hotels.com: rating, text, date, stay length, liked and disliked topics, owner responses and photos, plus hotel rating, category scores and address. No login.

🏨 Expedia & Hotels.com Reviews Scraper

Pull public guest reviews from any Expedia or Hotels.com hotel page in minutes. Each row carries the rating, review text, date, stay length, liked and disliked topics, the owner's response and guest photos, plus the hotel's overall score, category ratings and address. No login, no cookies, no setup.

✨ Why use Expedia & Hotels.com Reviews Scraper?

  • ⚡ Fast — reads 50 reviews per request, so hundreds of reviews per hotel take seconds once the session is open.
  • 🌍 Both brands, one actor — paste Expedia links from any country site, new or legacy Hotels.com links, or bare property IDs.
  • 🎯 Filters built in — newest, most relevant, highest or lowest first, a date window, minimum and maximum rating, keyword search and review language.
  • 💬 Owner responses included — management replies with author and date, ready for response-rate analysis.
  • 📊 Hotel context on every row — overall rating, total review count, star rating, category scores (cleanliness, staff, amenities…), the 5-band rating distribution and full address with coordinates.
  • 💰 Pay per review — no monthly rental; you pay only for the reviews you save.

🎯 Use cases

  • 🏢 Reputation management — track new reviews and owner responses for your own properties.
  • 🔍 Competitor benchmarking — compare category scores and complaint topics across hotels in a market.
  • 📈 Sentiment analysis — feed review text and liked/disliked topics into your NLP pipeline.
  • 🧾 Guest-experience research — find every review that mentions breakfast, parking or noise with the keyword filter.
  • 🚨 Alerting — schedule daily runs with a "Reviews from" date to catch fresh negative reviews early.

🚀 How to use

  1. Paste one or more Expedia or Hotels.com hotel URLs (or property IDs such as 41308) into Hotel URLs or property IDs.
  2. Set Maximum reviews per hotel.
  3. Optionally pick a sort order, date window, rating bounds, keyword or language.
  4. Click Start and download the results as JSON, CSV, Excel or HTML, or read them through the API.

📥 Input

FieldDescription
startUrlsExpedia or Hotels.com hotel URLs, or numeric property IDs
maxReviewsPerHotelReviews to save per hotel (default 20)
sortBynewest, relevant, highest, lowest
reviewsFrom / reviewsToDate window (YYYY-MM-DD; "from" also accepts e.g. 30 days)
minRating / maxRatingRating bounds on the 1–10 scale
searchKeywordOnly reviews that mention this word
languageReview language code, e.g. en, de, fr
onlyWithTextSkip rating-only reviews
includeOwnerResponses / includeReviewPhotosOptional parts of each row
{
  "startUrls": [
    "https://www.expedia.com/Las-Vegas-Hotels-Excalibur-Hotel-Casino.h41308.Hotel-Information",
    "https://www.hotels.com/ho108900/"
  ],
  "maxReviewsPerHotel": 100,
  "sortBy": "newest",
  "reviewsFrom": "2026-01-01",
  "maxRating": 4
}

📤 Output

FieldDescription
reviewIdReview ID
platformexpedia or hotels.com (from your input URL)
hotelId, hotelName, hotelUrlThe hotel
rating, ratingLabelGuest rating (1–10) and its label
title, textReview title and text
reviewDateDate posted (YYYY-MM-DD)
authorName, languageReviewer first name and review locale
stayDuration, nightsStayed, stayMonthStay length and month
liked, dislikedTopics the guest liked or disliked
verified, helpfulVotes, photosVerified-stay flag, helpful votes, guest photo URLs
ownerResponse, ownerResponseAuthor, ownerResponseDateManagement response
hotelRating, hotelReviewCount, hotelStarRatingHotel-level scores
hotelCategoryRatings, hotelRatingDistributionCategory scores and rating histogram
hotelAddress, hotelCity, hotelCountryCode, hotelLatitude, hotelLongitudeLocation
{
  "reviewId": "6ad135e8252f4d39204aaf2a",
  "platform": "expedia",
  "hotelId": "41308",
  "hotelName": "Excalibur Hotel & Casino",
  "rating": 10,
  "ratingLabel": "Excellent",
  "title": null,
  "text": "When we got there we had trouble with the keys a very nice lady housekeeper helped us and made sure our room was a place like home",
  "reviewDate": "2026-10-15",
  "authorName": "Jane",
  "language": "en_US",
  "stayDuration": "Stayed 3 nights in Oct 2026",
  "nightsStayed": 3,
  "stayMonth": "2026-10",
  "liked": ["Cleanliness", "Staff & service", "Amenities", "Property conditions & facilities"],
  "disliked": [],
  "verified": true,
  "helpfulVotes": 0,
  "photos": [],
  "ownerResponse": null,
  "hotelRating": 8,
  "hotelRatingLabel": "Very Good",
  "hotelReviewCount": 46406,
  "hotelStarRating": 3.5,
  "hotelCategoryRatings": {"Cleanliness": 8.2, "Amenities": 7.6, "Staff & service": 8.2, "Property conditions & facilities": 7.8},
  "hotelRatingDistribution": [{"rating": 10, "label": "Excellent", "count": 22032, "percent": 47}],
  "hotelAddress": "3850 Las Vegas Blvd S, Las Vegas, NV, 89109",
  "hotelLatitude": 36.099213,
  "hotelLongitude": -115.1731
}

Hotels that could not be scraped are never saved as error rows. They are listed in the run's OUTPUT record (key-value store) as failedInputs (input and reason), and the run's status message names them. If Expedia answers a hotel without its reviews (a temporary block), the actor asks again on new browser sessions before giving up.

💰 Pricing

You pay $2.00 per 1,000 reviews saved, plus the platform usage of the run (compute and the hosted browser session, typically about one cent per run). Example: 1,000 reviews from one hotel cost about $2.00 in review fees plus roughly $0.02 of usage. Rows that fail are never charged.

❓ FAQ

Is it legal? The actor reads only public reviews that anyone can see on Expedia and Hotels.com without logging in. Check the site's terms and your local rules (including privacy law for reviewer names) before you use the data.

Do I need an account, cookies or a proxy? No. The actor manages the connection itself.

How many reviews can I get? Up to every public review of a hotel; large hotels have tens of thousands. Set the per-hotel limit to what you need.

Why is a field empty? Many guests leave a rating without text or title, and only some reviews have photos or owner responses. Those fields are null or empty lists.

Are Expedia and Hotels.com reviews different? Both brands show the same pool of verified Expedia Group reviews for a property, so the same hotel returns the same reviews from either link.

Can I schedule it or use the API? Yes. Schedule daily runs with a "Reviews from" date such as 2 days, or start runs through the API and fetch the dataset.

⚠️ Limits

  • Per-review traveler type (family, couple, business) is not published by the site for most reviews, so travelerTypes is usually empty, and the site ignores traveler-type filtering.
  • Review text is returned in the language the guest wrote it; no translation is applied.
  • Things-to-do (activity) reviews and destination search are not covered; pass hotel URLs or IDs.
  • Each run opens one hosted browser session, so very small runs take about 30 to 60 seconds to start.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.