Kayak Hotel Reviews Scraper
Pricing
from $0.99 / 1,000 results
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
from $0.99 / 1,000 results
Rating
5.0
(3)
Developer
Shahid Irfan
Maintained by CommunityActor stats
3
Bookmarked
9
Total users
2
Monthly active users
11 days ago
Last modified
Categories
Share
What does Kayak Hotel Reviews Scraper do?
Kayak Hotel Reviews Scraper collects guest reviews from Kayak hotel detail pages and turns them into structured, analysis-ready datasets. Provide a Kayak hotel URL, and the Actor extracts review scores, rating labels, positive and negative comments, author details, review source information, and metadata from every review Kayak publishes for that property. Designed for travel researchers, hospitality analysts, reputation managers, and anyone who needs guest feedback data without manual copy-paste.
The Actor works with long and short Kayak hotel URL formats, detects the hotel identity automatically, and paginates through available reviews until your target count is reached. Output is available in JSON, CSV, Excel, XML, and other formats through Apify dataset exports.
Why use Kayak Hotel Reviews Scraper?
- Structured guest feedback at scale - Collect scores, comments, and source data from hundreds of reviews in a single run instead of reading pages manually.
- Multi-source review coverage - Kayak aggregates reviews from Booking.com, Agoda, Priceline, HotelsCombined, and Kayak itself, giving you a consolidated dataset per property.
- Automation-ready output - Export results to JSON, CSV, Excel, or XML, or connect them to dashboards, spreadsheets, and data pipelines through Apify integrations.
- Travel research and monitoring workflows - Track guest sentiment over time, benchmark competitors, feed hospitality analytics, or build travel content with authentic guest data.
What data can you extract from Kayak?
| Field | Description |
|---|---|
hotel_name | Hotel name parsed from the Kayak details URL |
hotel_id | Kayak hotel object identifier |
hotel_url | Direct Kayak hotel details page URL |
review_id | Unique review identifier |
score | Numeric review score |
rating_category | Localized rating category such as Okay or Very Good |
review_month_year | Month and year when the review was published |
author | Review author display name |
positive_comment | Positive feedback text from the reviewer |
negative_comment | Negative feedback text from the reviewer |
review_source | Source provider name such as Booking.com or Agoda |
review_link | Direct link to the original review on the provider site |
total_reviews_available | Total review count reported by Kayak for the property |
How to use Kayak Hotel Reviews Scraper
- Open the Actor on Apify Store.
- Paste a Kayak hotel details URL such as
https://www.kayak.com/hotels/Hilton-London-Gatwick-Airport,Gatwick-p492403-h54545-details/. - Set the maximum number of reviews to collect.
- Optionally adjust the batch size or enable proxy settings.
- Run the Actor.
- Download the dataset or connect it to your workflow through webhooks, API, or integrations.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | From INPUT.json | Full Kayak hotel details URL. Works with long and short Kayak URL formats. |
results_wanted | Integer | No | 20 | Maximum number of reviews to save in one run. |
page_size | Integer | No | 10 | Number of reviews to collect per pagination batch. |
proxyConfiguration | Object | No | { "useApifyProxy": false } | Optional Apify Proxy settings for improved reliability on repeated runs. |
Output Data
Each dataset item can include the following fields. Empty values are automatically removed to keep exports compact.
| Field | Type | Description |
|---|---|---|
review_index | Integer | Order of review in the collected dataset |
hotel_id | String | Kayak hotel object ID |
hotel_name | String | Hotel name parsed from the details URL |
hotel_url | String | Kayak hotel details page URL |
total_reviews_available | Integer | Total review count reported by Kayak |
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 the review |
author | String | Review author display name |
positive_comment | String | Positive feedback text |
negative_comment | String | Negative feedback text |
review_source | String | Review provider name such as Booking.com or Agoda |
review_source_logo_url | String | Provider logo image URL |
review_link | String | Direct link to the source review |
is_internal_review | Boolean | Internal review flag |
sort_type | String | Sort mode used for this run |
scraped_at | String | ISO timestamp when the record was saved |
Usage Examples
Basic Review Extraction
Provide a Kayak hotel details URL and collect the first set of reviews:
{"startUrl": "https://www.kayak.com/hotels/Hilton-London-Gatwick-Airport,Gatwick-p492403-h54545-details/","results_wanted": 20}
Higher Volume Collection
Increase the result limit for larger research runs:
{"startUrl": "https://www.kayak.com/hotels/Hilton-London-Gatwick-Airport,Gatwick-p492403-h54545-details/","results_wanted": 200,"page_size": 10}
Minimal Input with Local Fallback
When startUrl is omitted, the Actor falls back to the URL stored in INPUT.json:
{"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 complete, public Kayak hotel details URLs. The Actor detects hotel identity from the URL path.
- Start with a smaller limit such as
results_wanted: 20to validate the output, then increase for full research runs. - Enable proxy settings when running the Actor repeatedly or at higher volumes to improve stability.
- Some hotels may have fewer reviews than requested. The Actor saves all available reviews up to the limit.
- Duplicate reviews are removed by review ID during a run, so each record in the dataset is unique.
Integrations
- Google Sheets - Send review data to spreadsheets for score tracking and analysis.
- Webhooks - Trigger downstream workflows after each run completes.
- Make or Zapier - Connect results to no-code automations.
- API - Access datasets programmatically from your own systems.
Export Formats
- JSON - Data pipelines and application integrations.
- CSV - Spreadsheet and analysis workflows.
- Excel - Business reporting and dashboards.
- XML - System-to-system data exchange.
Frequently Asked Questions
Why did I receive fewer reviews than requested?
The available review volume depends on the hotel and any active filters. Some properties have fewer published reviews than your requested limit. The Actor saves all available reviews up to the target count.
Can I scrape reviews from any Kayak hotel page?
Yes, as long as you provide a valid Kayak hotel details URL that the Actor can resolve. Both long and short Kayak URL formats are supported.
Can I collect reviews from specific sources only?
The Actor collects reviews from Kayak's default provider mix which includes Booking.com, Agoda, Priceline, HotelsCombined, and Kayak internal reviews. Output consistency is maintained across all sources.
Is duplicate data removed?
Yes. The Actor de-duplicates reviews by review ID during a single run so the dataset contains one copy of each review.
Are empty fields included in output?
No. Fields without a value are automatically omitted from each dataset record. This keeps the output compact and ready for downstream use.
Is it legal to scrape Kayak reviews?
Scraping public web data can be legal, but you are responsible for complying with applicable laws, Kayak's terms of service, and privacy rules. Use responsible request volumes and respect the website's terms.
Related Actors
- Expedia Hotels Scraper - Collect hotel listings, prices, ratings, and availability from Expedia search results.
- Booking.com Scraper - Extract hotel listings, prices, and reviews from Booking.com search results.
- Tripadvisor Hotels Scraper - Gather hotel listings, ratings, and pricing from TripAdvisor city and listing pages.
- Trip.com Hotel Reviews Scraper - Collect guest reviews, ratings, and translated feedback from Trip.com hotel pages.
Support
For issues, feature requests, or custom Actor development, use the Issues tab on the Actor page or contact the developer through Apify.
Legal Notice
This Actor is designed for legitimate data collection from publicly available Kayak pages. Users are responsible for using the data responsibly and complying with applicable laws, Kayak's terms of service, and privacy regulations.