Klook Reviews Scraper ⭐
Pricing
Pay per usage
Klook Reviews Scraper ⭐
Extract Klook reviews with ratings, review text, traveler feedback, dates, activity details, and useful review metadata. Ideal for travel sentiment analysis, attraction research, customer experience monitoring, tourism insights, competitor analysis, and datasets.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Shahid Irfan
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
20 hours ago
Last modified
Categories
Share
What does Klook Reviews Scraper do?
Klook Reviews Scraper collects public hotel reviews from Klook and turns them into a clean dataset. Provide a Klook hotel detail URL or a numeric hotel ID, set how many reviews you want, and receive review text, translations, scores, dates, stay details, reviewer information, images, and hotel-level rating data.
The Actor is built for hotel market research, guest feedback monitoring, travel content research, competitor analysis, and datasets for reporting or AI-assisted review analysis. Results can be downloaded from Apify as JSON, CSV, Excel, XML, or connected to another workflow through the Apify API.
Why use Klook Reviews Scraper?
- Collect guest feedback in a structured format - Turn public Klook review pages into records that are easier to search, compare, filter, and analyze.
- Start with a hotel URL or ID - Use a complete Klook hotel detail URL when you need a specific locale, or provide the numeric hotel ID directly.
- Capture original and translated content - Keep the original review language and text, plus translation metadata and translated text when Klook provides it.
- Analyze hotel quality at a glance - Each record can include its own score and label, the property average score, the overall label, and the available review count.
- Include guest photos - Review image URLs are captured when guests attach images to their feedback.
- Control run size - Set both the maximum number of reviews and the maximum number of review pages to process.
- Handle temporary source failures - The Actor validates responses, retries temporary errors, and recovers from short-lived access blocks without manual intervention.
- Build repeatable monitoring workflows - Run the Actor on demand or schedule it to track changes in guest feedback over time.
What data can you extract from Klook?
Each dataset item represents one public Klook hotel review and includes review-level details plus useful hotel-level information.
| Field | Type | Description |
|---|---|---|
hotel_id | String | Klook hotel identifier. |
hotel_url | String | Canonical Klook hotel detail URL. |
locale | String | Locale used in the Klook hotel URL, such as en-US. |
review_page | Number | Review page from which the record was collected. |
review_position | Number | Position of the review in the collected result set. |
review_filter_tag_id | String | Klook review filter tag associated with the collection, when available. |
review_id | String | Klook review identifier, or a stable generated identifier when Klook does not expose one. |
user_name | String | Reviewer display name. |
user_avatar_url | String | URL of the reviewer's avatar, when available. |
helpful_count | Number | Number of helpful votes, when available. |
mark_useful | Boolean or String | Helpful-vote status or marker returned with the review, when available. |
review_language | String | Language code of the original review. |
review_time | String | Date or time shown for the review. |
check_in_info | String | Room, occupancy, and stay information shown with the review. |
review_content | String | Original review text. |
needs_translation | Boolean | Indicates whether Klook marks the review as needing translation. |
translated_language | String | Language used for the available translation, when present. |
translated_content | String | Translated review text, when present. |
review_score | String | Individual review score. |
review_score_max | String | Maximum possible review score. |
review_score_label | String | Review rating label, such as Great or Fantastic. |
images | Array | Review image data, including available thumbnail and original image URLs. |
available_review_count | Number | Total number of reviews shown as available by Klook. |
available_review_count_text | String | Formatted total review count displayed by Klook. |
hotel_avg_score | String | Average score for the hotel. |
hotel_score_label | String | Overall hotel rating label. |
Fields that are not published for a particular review are omitted or may be empty. This is expected when a guest does not provide a name, image, translation, helpful vote, or stay detail.
How to scrape Klook hotel reviews
- Open the Actor in Apify Console.
- Enter a public Klook hotel detail URL in
hotelUrl, or provide the Klook property identifier inhotelId. - Set
resultsWantedto the maximum number of review records you want. - Set
maxPagesto control how many review pages the run may process. - Keep the default proxy configuration enabled for more consistent collection.
- Start the run and review the dataset preview.
- Download the results or connect the dataset to a spreadsheet, webhook, automation, or API workflow.
If both hotelId and hotelUrl are provided, hotelId takes precedence and hotelUrl is ignored. Use hotelUrl when the requested locale matters. If neither value is provided, the Actor uses the documented example hotel so that the run can still start.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
hotelUrl | String | No | Klook hotel example URL | Public Klook hotel detail URL. This also sets the review locale. A numeric hotel ID is accepted here as well. |
hotelId | String | No | None | Klook hotel identifier, such as 272231. When supplied, it takes precedence over hotelUrl. |
resultsWanted | Integer | No | 20 | Maximum number of review records to save. |
maxPages | Integer | No | 2 | Maximum number of review pages to process. Each page can contain up to 100 reviews. |
proxyConfiguration | Object | No | Apify Proxy (residential) | Proxy settings used for the run. Apify Proxy with residential sessions is enabled by default for reliable Klook access. |
The number of saved records can be lower than resultsWanted when the hotel has fewer available reviews, the selected page limit is reached, or some source records do not contain usable review data.
Output Data
The Actor writes one dataset record for each collected review. Hotel-level score and review-count fields are repeated on each record so that individual rows remain useful when exported or processed independently.
The dataset is suitable for:
- Comparing review scores across hotels or destinations.
- Finding recurring positive and negative guest comments.
- Grouping feedback by language, date, room type, or stay details.
- Reviewing guest-uploaded images alongside written feedback.
- Creating historical snapshots for hotel reputation monitoring.
Usage Examples
Basic hotel URL extraction
Use a complete Klook hotel detail URL for a small first run.
{"hotelUrl": "https://www.klook.com/en-US/hotels/detail/272231-hotel-mystays-asakusa/","resultsWanted": 20,"maxPages": 1}
Extract by hotel ID
Use hotelId when the Klook property identifier is already known. The default locale is en-US in this mode.
{"hotelId": "272231","resultsWanted": 50,"maxPages": 2}
Larger run with Apify Proxy
Increase both limits for broader coverage and keep Apify Proxy enabled in the input.
{"hotelUrl": "https://www.klook.com/en-US/hotels/detail/272231-hotel-mystays-asakusa/","resultsWanted": 200,"maxPages": 3,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
The following example shows a review from Hotel Mystays Asakusa on Klook. Optional fields are included only when the source provides them.
{"hotel_id": "272231","hotel_url": "https://www.klook.com/en-US/hotels/detail/272231/","locale": "en-US","review_page": 1,"review_position": 1,"review_filter_tag_id": "10001","review_id": "gen_c589e9c057a6a052e408bf6af2e65ea3fda7aefe","user_name": "arkaye *******","user_avatar_url": "https://cdn.klook.com/upload/img200X200/en_PH_02.png","review_language": "en_US","review_time": "2026-08-25","check_in_info": "Standard Semi-double [Non-smoking] - 7 Adults, 1 child - 3 Nights","review_content": "service: good, cleanliness: neat, transport access: accessible, when we come back to Tokyo I will book and recommend this hotel. We really enjoyed our stay here.","needs_translation": false,"review_score": "4.0","review_score_max": "5.0","review_score_label": "Great","images": [],"available_review_count": 1282,"available_review_count_text": "1K+ reviews","hotel_avg_score": "4.4","hotel_score_label": "Great"}
Tips for best results
- Use a public hotel detail URL - Copy the URL from the Klook hotel page whenever possible. The URL identifies both the property and the locale.
- Begin with a small run - Start with the default
resultsWantedandmaxPagesvalues to confirm that the property and locale are correct. - Increase one limit at a time - Raise
resultsWantedfor more records andmaxPagesfor deeper page coverage. - Keep the locale consistent - The locale in the hotel URL can affect the presentation of review content.
- Keep proxy settings enabled - Proxy configuration is recommended for stable repeated runs, especially when collecting larger datasets. Residential sessions are preferred for Klook.
- Check the available review count - Compare
available_review_countwith your requested limits to understand how much source data is available. - Expect optional fields to vary - Reviews can differ in language, stay details, translations, helpful votes, and attached images.
- Schedule repeat runs for monitoring - Save each run as a dated snapshot when tracking changes in hotel reputation or guest feedback.
Reliability and coverage
Klook can change its public pages, access rules, and response formats. The Actor checks that each response contains usable review data instead of treating every HTTP success as valid. Temporary network failures, rate limits, and short-lived access blocks are retried with bounded recovery. If a run still cannot collect data, the log reports the failed stage so the issue can be investigated without guessing.
The Actor also keeps hotel-level fields from the first review page and applies them to later pages, so average scores and review counts do not disappear from deeper results.
Integrations and exports
Apify provides several ways to use the collected Klook review data outside the Actor run.
- CSV and Excel - Export rows for sorting, filtering, pivot tables, and team reporting.
- JSON and XML - Use structured exports in data pipelines, scripts, or storage systems.
- Apify API - Retrieve dataset items programmatically after a run completes.
- Google Sheets - Send review records to a spreadsheet for collaborative analysis.
- Webhooks, Make, and Zapier - Connect completed runs to notifications, databases, dashboards, or other business tools.
- Scheduled runs - Refresh a hotel's review dataset on a recurring schedule for monitoring workflows.
Frequently Asked Questions
What does this Actor collect from Klook?
It collects public Klook hotel reviews together with reviewer details, review dates, languages, original and translated text when available, scores, stay information, images, and hotel-level rating data.
Do I need a Klook hotel URL?
No. You can provide either hotelUrl or hotelId. A complete hotel URL is usually the simplest option because it includes the property path and locale. If both are provided, hotelId takes precedence.
How many reviews can I collect?
You control the maximum with resultsWanted. The actual count depends on the number of reviews available for the hotel and the maxPages limit. Each review page can contain up to 100 records.
What is the difference between resultsWanted and maxPages?
resultsWanted limits the number of review records saved. maxPages limits how many review pages the Actor may process. Both limits apply, so a larger result target may require a larger page limit.
Are translated reviews included?
Yes, when Klook provides translation data. The record can include needs_translation, translated_language, and translated_content, in addition to the original review language and text.
Can I collect review images?
Yes. When a review includes image data, the images field contains the available image information. Reviews without images return an empty or omitted field depending on the record.
Can I run this Actor on a schedule?
Yes. Create an Apify schedule to run it hourly, daily, weekly, or at another interval. Scheduled runs are useful for tracking new feedback and changes in hotel ratings.
Why are some fields missing?
Klook does not publish every field for every review. A guest may not provide a display name, avatar, stay details, translation, helpful vote, or image. The Actor preserves available values without inventing missing information.
Why did a run return no reviews?
The hotel may have no public reviews, the supplied hotel ID may not match a public property, or Klook may have temporarily limited access. Check the run log for the reported stage and confirm the hotel page shows public reviews before changing the input.
Can I export Klook reviews to CSV or Excel?
Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, and other supported formats. You can also access the dataset through the Apify API or connect it to automations.
Is it legal to collect Klook review data?
You are responsible for using the Actor lawfully. Collect only data you are permitted to access, follow Klook's terms and applicable privacy rules, and use the results responsibly. Avoid collecting or processing personal information beyond your legitimate purpose.
Related Actors
- Expedia Reviews Scraper - Collect structured hotel and accommodation reviews from Expedia.
- Tripadvisor Reviews Scraper - Gather traveler reviews and rating information from Tripadvisor listings.
- Trip.com Hotel Reviews Scraper - Collect hotel guest reviews from Trip.com for broader travel comparison research.
Support
For bug reports, feature requests, or questions about a run, use the Issues tab on the Actor page. Include the input used, the affected Klook hotel URL or ID, and the run ID when possible. This makes it easier to investigate missing records or source-page changes.
Legal Notice
This Actor is intended for legitimate collection and analysis of publicly available Klook review data. You are responsible for complying with Klook's terms of use, applicable laws, privacy requirements, and any restrictions related to storing, sharing, or processing review content and images. Use collected data respectfully and only for lawful purposes.