Hotel Review Aggregator API: Google, Booking, Expedia & More
Pricing
from $1.99 / 1,000 reviews
Hotel Review Aggregator API: Google, Booking, Expedia & More
Extract hotel reviews from Google Maps, Tripadvisor, Booking.com, Expedia and Yelp. Automatically match one hotel across sources, normalize ratings and export reviews, guest details and owner replies to JSON, CSV or Excel.
Pricing
from $1.99 / 1,000 reviews
Rating
0.0
(0)
Developer
ClearPath
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Hotel Review Aggregator | Google, Tripadvisor, Booking.com, Expedia & Yelp Reviews (2026)
From Clearpath, creators of Booking.com Reviews Scraper and Expedia Hotels Scraper. Bring guest feedback from multiple travel platforms into one hotel research workflow.
Why choose this actor?
Compare scores on the same scale. Reviews from Google, Tripadvisor, Booking.com, Expedia and Yelp use a shared five-point scale. For example, 8/10 becomes 4/5. The original score and its scale stay in the output, so you can compare platforms without losing the source data.
Match the hotel automatically. Enter its name and city or address. The actor finds the corresponding property on your selected platforms and combines its reviews in one dataset. Uncertain matches are skipped and explained in the run summary; exact hotel links can help resolve ambiguity.
Keep the detail behind the rating. Export review text, pros and cons, guest photos, stay details and owner replies where available. Source-specific fields are preserved alongside the shared columns. Collect up to 5,000 reviews across matched sources in one run.
Quick start
Replace the hotel and location with yours. This example selects all five platforms and requests up to 100 reviews in total, shared across matched sources.
{"hotel": "Hotel Adlon Kempinski","location": "Berlin, Germany","countryCode": "DE","sources": ["google","tripadvisor","booking","expedia","yelp"],"maxReviews": 100}
Open actor input to choose your hotel and sources. Expedia and Yelp are optional; both are enabled above. Review availability varies by platform. Free accounts receive up to 10 reviews per run. Export CSV or Excel for comparison, or JSON to preserve nested guest, stay and response details.
| Hotel & Place Review Tools | |||
You are here | Guest reviews | Hotels & reviews | Local businesses |
Copy to your AI assistant
clearpath/hotel-review-aggregator on Apify. Aggregates property-matched hotel reviews from Google, Tripadvisor, Booking.com, Expedia, and Yelp into one schema. Expedia and Yelp are opt-in via sources. Call ApifyClient("TOKEN").actor("clearpath/hotel-review-aggregator").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Provide one hotel plus a location, Google Maps URL, or Place ID. Full spec: GET https://api.apify.com/v2/acts/clearpath~hotel-review-aggregator/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Token: https://console.apify.com/account/integrations
What does this hotel review aggregator do?
Give the Actor one hotel. It finds the corresponding property on Google Maps, Tripadvisor, Booking.com, and optionally Expedia and Yelp.
Every candidate must match the same canonical hotel before collection starts. Uncertain sources are skipped and explained in the run summary. A similar name or high search rank alone is not enough.
- Aggregate hotel reviews across platforms: one run and one dataset for up to five sources
- Normalize hotel ratings: compare five-star and ten-point scores on a shared five-star scale while retaining the original value
- Export hotel review data: download JSON, CSV, Excel, XML, or HTML from Apify storage
- Monitor hotel reputation: schedule daily or weekly runs and send results through webhooks, Make, Zapier, Google Sheets, or your data warehouse
How to aggregate hotel reviews
- Open the Hotel Review Aggregator Input tab.
- Enter the hotel's full public name and its city or address.
- Select at least two review sources and choose a result limit from 100 to 5,000.
- Run the Actor, then open the Dataset for reviews and
OUTPUTfor property and source status.
Basic: Google, Tripadvisor, and Booking.com
{"hotel": "Hotel Adlon Kempinski","location": "Berlin, Germany","countryCode": "DE","sources": ["google", "tripadvisor", "booking"],"maxReviews": 100}
Add Expedia hotel reviews
Expedia is optional. Add expedia to your source selection; the total review limit stays shared across all sources.
{"hotel": "Bellagio","location": "Las Vegas, USA","sources": ["google", "tripadvisor", "booking", "expedia"],"maxReviews": 100}
Expedia reviews retain their original scores, dates, review-brand attribution, and available guest details under platformData. The normalized rating uses a five-point scale. Date-only reviews do not receive an invented publication time. If a hotel cannot be matched confidently, add its exact Expedia hotel page under sourceUrls.expedia.
Add Yelp hotel reviews
{"hotel": "Hotel Adlon Kempinski","location": "Berlin, Germany","countryCode": "DE","sources": ["google", "tripadvisor", "booking", "yelp"],"maxReviews": 500}
Resolve an ambiguous hotel with exact links
{"hotel": "The Plaza","sources": ["google", "tripadvisor", "booking"],"maxReviews": 1000,"sourceUrls": {"google": "https://www.google.com/maps/place/The+Plaza/","tripadvisor": "https://www.tripadvisor.com/Hotel_Review-g60763-d675616-Reviews-The_Plaza_New_York.html","booking": "https://www.booking.com/hotel/us/the-plaza.html"}}
An exact Google Maps URL or googlePlaceId can replace location. Other exact source links still pass the cross-source identity check.
Hotel review aggregator input
| Parameter | Type | Default | Description |
|---|---|---|---|
hotel | string | required | One hotel's full public name |
location | string | none | City, area, postal code, or street address; required without exact Google identity |
countryCode | string | none | Optional country picker in Console; API input uses an ISO two-letter code such as DE, GB, or US |
sources | array | Google, Tripadvisor, Booking.com | Two to five sources; Expedia and Yelp are opt-in |
maxReviews | integer | 100 | Global result limit, 100 to 5,000 for paid accounts |
sourceUrls | object | {} | Exact Google, Tripadvisor, Booking.com, Expedia, or Yelp property links |
googlePlaceId | string | none | Exact Google Place ID used as canonical identity |
The requested limit is balanced across matched sources and reassigned when one source has fewer reviews available. The Actor streams bounded batches to the dataset, so 5,000-review runs do not retain the full result set in memory.
What hotel review data can you extract?
Each dataset item is one normalized review with 28 top-level fields. Source-specific detail remains under platformData, so unification does not discard useful native fields.
- Review content: title, text, pros, cons, language, date, helpful votes, photos, and owner response
- Reviewer and stay: profile, contribution counts, country, traveller type, room, dates, and nights where available
- Hotel identity: canonical Google Place ID, address, coordinates, phone, website, and source property record
- Quality controls: normalized and original ratings, match status, match score, source status, and partial-result messages
This is one complete Tripadvisor dataset row from Hotel Adlon Kempinski Berlin. Empty arrays are the review's actual values; no keys are omitted.
{"schemaVersion": "1.0","recordType": "review","platform": "tripadvisor","reviewId": "1058906411","title": "Great stay","text": "I had luxurious and absolutely lovely stay.","pros": null,"cons": null,"rating": 5,"ratingOriginal": 5,"ratingScale": "1-5","date": "2026-05-04","publishedAt": "2026-05-04T00:44:08-04:00","reviewUrl": "https://www.tripadvisor.com/ShowUserReviews-g187323-d190694-r1058906411-Hotel_Adlon_Kempinski_Berlin-Berlin.html#review1058906411","language": "en","helpfulVotes": 0,"reviewer": {"id": "07ACE69DF86D94F0DFC42B2E4908D95A","name": "Mathias_lund","url": "https://www.tripadvisor.com/MemberProfile-a_uid.07ACE69DF86D94F0DFC42B2E4908D95A","location": null,"countryCode": null,"reviewCount": 1,"contributions": {"reviews": 1,"hotelReviews": 1,"restaurantReviews": 0,"attractionReviews": 0,"photos": 0,"helpfulVotes": 0},"avatarUrl": null,"joinedAt": "2019-04-08T14:19:05-04:00","anonymous": false,"verified": null},"hotelId": "google:ChIJHQQciMZRqEcR2X4b8-vf5Bk","hotelName": "Hotel Adlon Kempinski Berlin","hotel": {"id": "google:ChIJHQQciMZRqEcR2X4b8-vf5Bk","name": "Hotel Adlon Kempinski Berlin","address": "Unter den Linden 77, 10117 Berlin","city": "10117 Berlin","region": null,"postalCode": null,"countryCode": "DE","latitude": 52.5161791,"longitude": 13.3805048,"phone": "030 22610","website": "https://www.kempinski.com/en/hotel-adlon","googlePlaceId": "ChIJHQQciMZRqEcR2X4b8-vf5Bk","googleMapsUrl": "https://www.google.com/maps/preview/place/Hotel+Adlon+Kempinski+Berlin"},"sourceHotel": {"id": "190694","name": "Hotel Adlon Kempinski Berlin","url": "https://www.tripadvisor.com/Hotel_Review-g187323-d190694-Reviews-Hotel_Adlon_Kempinski_Berlin-Berlin.html"},"stay": {"travelDate": "2026-04","travellerType": null,"guestType": null,"roomName": null,"roomId": null,"nights": null,"checkinDate": null,"checkoutDate": null,"status": null},"ownerResponse": {"text": "Dear Guest, thank you so much for your kind words. We look forward to welcoming you back.","title": "Owner Response","authorName": "Christian Hirt","authorRole": "Inhaber","publishedAt": "2026-05-04T23:32:46-04:00","language": "en"},"subratings": [{"name": "Rooms", "label": "Rooms", "rating": 5, "ratingOriginal": 5, "ratingScale": "1-5"},{"name": "Value", "label": "Value", "rating": 4, "ratingOriginal": 4, "ratingScale": "1-5"},{"name": "Sleep Quality", "label": "Sleep Quality", "rating": 4, "ratingOriginal": 4, "ratingScale": "1-5"},{"name": "Location", "label": "Location", "rating": 5, "ratingOriginal": 5, "ratingScale": "1-5"},{"name": "Cleanliness", "label": "Cleanliness", "rating": 5, "ratingOriginal": 5, "ratingScale": "1-5"},{"name": "Service", "label": "Service", "rating": 5, "ratingOriginal": 5, "ratingScale": "1-5"}],"photos": [],"match": {"status": "matched","score": 87.1},"platformData": {"locationId": 190694,"placeName": "Hotel Adlon Kempinski Berlin","placeKind": "hotel","placeUrl": "https://www.tripadvisor.com/Hotel_Review-g187323-d190694-Reviews-Hotel_Adlon_Kempinski_Berlin-Berlin.html","reviewId": "1058906411","rating": 5,"title": "Great stay","text": "I had luxurious and absolutely lovely stay.","publishedDate": "2026-05-04T00:44:08-04:00","publishedPlatform": "Desktop","travelDate": "2026-04","language": "en","helpfulVotes": 0,"machineTranslated": false,"subratings": [{"name": "Rooms", "value": 5},{"name": "Value", "value": 4},{"name": "Sleep Quality", "value": 4},{"name": "Location", "value": 5},{"name": "Cleanliness", "value": 5},{"name": "Service", "value": 5}],"reviewUrl": "https://www.tripadvisor.com/ShowUserReviews-g187323-d190694-r1058906411-Hotel_Adlon_Kempinski_Berlin-Berlin.html#review1058906411","ownerResponse": {"text": "Dear Guest, thank you so much for your kind words. We look forward to welcoming you back.","title": "Owner Response","responder": "Christian Hirt","connection": "Inhaber","publishedDate": "2026-05-04T23:32:46-04:00","language": "en"},"user": {"userId": "07ACE69DF86D94F0DFC42B2E4908D95A","username": "Mathias_lund","displayName": null,"location": null,"avatar": "//static.tacdn.com/img2/generic/site/no_user_photo-v1.gif","profileUrl": "https://www.tripadvisor.com/MemberProfile-a_uid.07ACE69DF86D94F0DFC42B2E4908D95A","joinedDate": "2019-04-08T14:19:05-0400","contributions": {"reviews": 1,"hotelReviews": 1,"restaurantReviews": 0,"attractionReviews": 0,"photos": 0,"helpfulVotes": 0}},"scrapedAt": "2026-09-01T22:26:21.612194+00:00"},"scrapedAt": "2026-09-01T22:26:21.612194+00:00"}
The run's OUTPUT record separately reports the canonical hotel, requested and effective limits, total reviews, partial status, and per-source status. That makes failed, unavailable, ambiguous, mismatched, and exhausted sources visible without polluting the review dataset.
How to monitor hotel reviews and reputation
Schedule a daily run for active reputation monitoring or a weekly run for competitor benchmarking. Send the dataset to Google Sheets, Airtable, Make, Zapier, a webhook, or your warehouse.
Use platform, rating, date, and hotelId for cross-source trend analysis. Keep ratingOriginal and ratingScale when you need to reproduce the platform's native score.
For lead generation, combine recurring review data with property records to prioritize hotels with falling ratings, unanswered complaints, or rapid review growth. Reviewer personal data should only be processed for a lawful and necessary purpose.
How to run the scraper and put it on a schedule (official Apify videos):
How much does the hotel review aggregator cost?
Pricing is pay per event. Review charges apply only to property-matched reviews delivered to the default dataset.
See the Actor's Pricing tab for current rates and Apify plan discounts.
Free Apify accounts can use 10 lifetime runs with up to 10 reviews per run. Those runs use the account's included Apify platform credits.
Hotel review API FAQ
What is a hotel review aggregator?
A hotel review aggregator combines guest feedback for the same property from multiple platforms. This Actor returns Google, Tripadvisor, Booking.com, Expedia, and Yelp reviews in one consistent schema.
Does this replace the Google, Tripadvisor, Booking.com, or Yelp API?
It provides one Apify API and dataset for five review platforms. It also preserves source-specific fields under platformData, which avoids forcing every platform into the lowest common denominator.
How does the Actor avoid mixing two hotels?
Google establishes the canonical property. Other sources must agree on explainable identity signals such as name, address, coordinates, country, phone, or website. Hard location and category conflicts are rejected.
The matcher was developed against 225 live hotels and replayed against frozen holdouts. Its production rule is fail closed: uncertain candidates are skipped, never silently merged.
What happens when a hotel name is ambiguous?
The source status becomes ambiguous and the summary includes alternative candidates where useful. Paste exact source links or a Google Place ID to resolve the property without guessing.
Why can a Booking.com hotel require an exact URL?
Some live property pages do not appear in Booking.com's searchable inventory when rooms are not currently sellable. If name search cannot discover the hotel, paste its Booking.com property URL.
Is Expedia included by default?
Expedia is available as an optional source. Select it under Review sources or include expedia in your input. Google, Tripadvisor, and Booking.com remain the defaults. Expedia's displayed totals can exceed the written reviews available for collection; any incomplete collection is indicated in the run summary.
Is Yelp included?
Yelp is optional because regional hotel coverage varies. A four-source live run completed successfully. If Yelp is unavailable, reviews from successful sources are still returned.
How many hotel reviews can I collect?
Paid accounts can request 100 to 5,000 reviews per run. The global limit is balanced across matched sources and reassigned when a source has fewer reviews.
Can I export reviews to CSV or Excel?
Yes. Download as JSON, CSV, Excel, XML, or HTML from the run's Storage tab. JSON preserves nested objects and arrays most accurately.
Can I use the Actor through an API?
Yes. Use the Apify API, Python client, JavaScript client, webhooks, schedules, or MCP. The output and dataset schemas expose the full machine-readable contract.
What should I do if a source fails?
Check the OUTPUT record for that source's status and message. Retry transient failures, or add the exact property URL when discovery is ambiguous or unavailable. Report repeatable problems in the Actor's Issues tab.
Is it legal to scrape hotel reviews?
The Actor collects publicly available review data. You are responsible for each platform's terms, copyright, database rights, and applicable privacy law, including GDPR and CCPA.
Reviewer names, profile links, locations, photos, and review text may be personal data. Use data minimization, a lawful basis, retention limits, and deletion procedures appropriate to your use case.
More hotel and place review scrapers
🏨 Hotel review sources
-
Expedia -
Booking.com -
Tripadvisor -
Yelp
📍 Place reviews
-
Google Maps Reviews- Google Maps Reviews Scraper
- Google Maps Scraper 🔗 Review aggregators
-
Place reviews
Support
- Bugs: use the Actor's Issues tab with the hotel input and affected source
- Features: request new sources or schema fields in Issues
- Email: max@mapa.slmail.me
Legal compliance
This Actor extracts publicly available Google, Tripadvisor, Booking.com, Expedia, and Yelp review data. Users must comply with platform terms and data protection regulations, including GDPR and CCPA.
Aggregate property-matched Google, Tripadvisor, Booking.com, Expedia, and Yelp hotel reviews into one analysis-ready dataset.
