Kayak Hotel Reviews Scraper
Pricing
Pay per usage
Kayak Hotel Reviews Scraper
Extract hotel reviews, ratings, and guest feedback from Kayak effortlessly. Scrape pricing, amenities, images, and detailed reviews in bulk. Perfect for travel data analysis, market research, and competitive intelligence. Fast, reliable, and ready to scale.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Shahid Irfan
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Extract hotel guest reviews from Kayak hotel detail pages in a clean, analysis-ready format. Collect review scores, sentiment text, source details, and author metadata at scale. Built for travel research, reputation tracking, and hospitality intelligence workflows.
Features
- Review Collection at Scale — Collect large review batches with configurable result limits.
- Rich Review Fields — Capture scores, rating labels, positive and negative comments, author, and source.
- Pagination Support — Automatically retrieves additional review batches until your target count is reached.
- Automatic URL Detection — Detects hotel identity from long and short Kayak hotel URL formats.
- Clean Dataset Output — Removes empty fields to keep exports compact and usable.
Use Cases
Reputation Monitoring
Track how guest sentiment changes over time for a specific property. Analyze rating shifts and recurring comment patterns.
Competitor Benchmarking
Collect review data from multiple hotels to compare quality signals, reviewer sentiment, and source distribution.
Hospitality Analytics
Feed review-level data into BI dashboards for score trends, complaint analysis, and category-level insights.
Travel Content Research
Use authentic guest feedback to support travel guides, destination comparisons, and accommodation recommendations.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | From INPUT.json | Full Kayak hotel details URL. |
results_wanted | Integer | No | 20 | Maximum number of reviews to collect. |
page_size | Integer | No | 10 | Number of reviews requested per batch. |
proxyConfiguration | Object | No | { "useApifyProxy": false } | Optional Apify Proxy settings. |
Output Data
Each dataset item contains:
| Field | Type | Description |
|---|---|---|
review_index | Integer | Order of review in collected output |
hotel_id | String | Kayak hotel ID |
hotel_name | String | Hotel name from URL |
hotel_url | String | Kayak hotel details URL |
total_reviews_available | Integer | Total review count available |
review_id | String | Unique review identifier |
score | Number | Numeric review score |
localized_score | Number | Localized score value |
rating_category | String | Localized rating category |
review_month_year | String | Month and year of review |
author | String | Review author |
positive_comment | String | Positive feedback text |
negative_comment | String | Negative feedback text |
review_source | String | Review provider name |
review_source_logo_url | String | Provider logo URL |
review_link | String | Source review URL |
is_internal_review | Boolean | Internal review flag |
sort_type | String | Sort mode used |
scraped_at | String | ISO timestamp when record was saved |
Usage Examples
Basic Review Extraction
{"startUrl": "https://www.kayak.com/hotels/Hilton-London-Gatwick-Airport,Gatwick-p492403-h54545-details/","results_wanted": 20}
Higher Volume Collection
{"startUrl": "https://www.kayak.com/hotels/Hilton-London-Gatwick-Airport,Gatwick-p492403-h54545-details/","results_wanted": 200,"page_size": 10}
Minimal Input (Uses INPUT.json Fallback if URL Missing)
{"results_wanted": 20}
Sample Output
{"review_index": 1,"hotel_id": "54545","hotel_name": "Hilton London Gatwick Airport","hotel_url": "https://www.kayak.com/hotels/Hilton-London-Gatwick-Airport,Gatwick-p492403-h54545-details/","total_reviews_available": 9014,"review_id": "94fhNp0BOkHXFcMyc0Uk","score": 40,"localized_score": 40,"rating_category": "Okay","review_month_year": "Mar 2026","author": "Herbst","positive_comment": "The restaurant that serves breakfast good.","negative_comment": "Arriving and receptionist was incompetent. We were tired and it took ages.","review_source": "Booking.com","review_source_logo_url": "https://www.kayak.com/provider-logos/hotels/reviews/h/bookingLogo.png","review_link": "https://www.kayak.com/out?...","is_internal_review": false,"sort_type": "recent","scraped_at": "2026-04-05T12:30:00.000Z"}
Tips for Best Results
Use Valid Hotel Detail URLs
- Start from a full Kayak hotel details page URL.
- Keep the URL format intact, including the hotel identifier segment.
Start Small, Then Scale
- Begin with
results_wanted: 20to validate quickly. - Increase gradually for large research runs.
Keep Filters Focused
- Use narrow filters when analyzing specific traveler segments.
- Leave filters blank to collect broad review coverage.
Improve Stability
- Enable proxy settings for repeated or larger runs.
- Re-run with adjusted filters if returned volume is lower than expected.
Integrations
Connect your output to:
- Google Sheets — Review tracking and score analysis
- Airtable — Searchable review databases
- Looker Studio — Hospitality dashboards
- Webhooks — Push new data into internal systems
- Make — Workflow automation
- Zapier — App-to-app integrations
Export Formats
- JSON — Data pipelines and applications
- CSV — Spreadsheet workflows
- Excel — Business reporting
- XML — System integrations
Frequently Asked Questions
Why did I receive fewer reviews than requested?
Available review volume depends on the hotel and applied filters. Reduce filter strictness or run with a higher limit.
Can I scrape reviews from any Kayak hotel page?
Yes, as long as you provide a valid Kayak hotel details URL.
Can I collect reviews from specific sources only?
The actor uses a built-in provider mix to keep output consistent.
Is duplicate data removed?
Yes. The actor de-duplicates reviews by review ID during a run.
Are empty fields included in output?
No. Empty values are removed for cleaner datasets.
Support
For issues or feature requests, use the actor support channel in Apify Console.
Resources
Legal Notice
This actor is intended for legitimate data collection and analysis. Users are responsible for ensuring compliance with applicable laws and website terms. Use responsibly and apply reasonable request volumes.