Klook Reviews Scraper - Activity Ratings, Photos & Text avatar

Klook Reviews Scraper - Activity Ratings, Photos & Text

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Klook Reviews Scraper - Activity Ratings, Photos & Text

Klook Reviews Scraper - Activity Ratings, Photos & Text

Scrape Klook activity, tour and experience reviews across Asia-Pacific and worldwide. Extract star ratings, full review text, translations, reviewer photos, liked counts, booked package and activity summary (city, category, score) by activity URL or ID. Export JSON, CSV, Excel.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Klook Reviews Scraper — Activity & Experience Reviews with Ratings, Photos and Translations

The most complete Klook review extractor on Apify. Pull real guest reviews from Klook — the leading activities, tours and experiences platform across Asia-Pacific and worldwide — with the full review text, its translation, a 0–5 star rating, reviewer photos, liked counts, the exact package booked, and each activity's overall score, city, country and category. Built for reputation monitoring, competitor benchmarking, sentiment analysis and travel-experience market research.

Apify Actor


🎯 What this actor does

The Klook Reviews Scraper extracts live guest reviews from Klook.com — the #1 platform for booking tours, activities, attraction tickets, transport passes and experiences across Asia and beyond (Japan, Taiwan, Korea, Thailand, Singapore, Hong Kong, and worldwide). Give it an activity URL or an activity ID and it returns every review, one clean row per review, enriched with the activity's summary.

Klook reviews are unusually rich: each one carries a star rating, full text plus an on-platform translation, the reviewer's uploaded photos, the exact package/option the traveler booked, and a helpful-vote count. This actor captures all of it.

Each record can include:

  • Rating — 0–5 star score, rating label (e.g. Fantastic) and ISO review date
  • 💬 Review text — original content plus its translation when available
  • 📸 Reviewer photos — every image the traveler uploaded, with count
  • 🎟️ Package booked — the exact option/package name and ID the review is about
  • 👍 Engagement — how many users found the review helpful
  • 🏙️ Activity summary — name, city, country, category, overall score and total review count
  • 🕒 MetadatascrapedAt ISO timestamp on every row

Whether you operate an activity, run a travel-analytics product, or research the experiences market across Asia, this actor is the fastest path from Klook to a usable dataset — no scraping code required.


✨ Why this actor

✅ This actor handles❌ What you'd fight doing it yourself
Full pagination — collects every reviewPopular activities have tens of thousands of reviews
Reviewer photos extracted with URLsImages are nested in a separate list per review
Translations captured alongside originalsMulti-language reviews need the translated field pulled
Package-level attributionEach review ties to a specific booked option
Activity summary attached to every rowName, city, category & score live on the page, not the review
Clean deduplicated rowsReviews repeat across pages and need de-duping
JSON / CSV / Excel exportRaw data needs reshaping for analysis

🚀 Quick start

One-click run

  1. Open the actor on the Apify Store and click Try for free
  2. Paste one or more Klook activity URLs into Activity URLs — e.g. https://www.klook.com/en-US/activity/73749-thsr-one-way-ticket-taipei/
  3. Pick a Review language and Sort order, set Max reviews per activity (0 for everything)
  4. Hit Start — reviews stream into your dataset, ready to export as JSON, CSV, Excel, HTML or RSS

Run via API (Python)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"startUrls": [
"https://www.klook.com/en-US/activity/73749-thsr-one-way-ticket-taipei/"
],
"language": "en",
"sortBy": "most_relevant",
"maxReviewsPerActivity": 200,
"includeActivityInfo": True,
}
run = client.actor("haketa/klook-reviews-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["rating"], item["userName"], "|", item["reviewContent"][:80])

Run via API (JavaScript)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('haketa/klook-reviews-scraper').call({
startUrls: ['https://www.klook.com/en-US/activity/73749-thsr-one-way-ticket-taipei/'],
language: 'en',
maxReviewsPerActivity: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

⚙️ Input

FieldTypeDefaultDescription
startUrlsarrayKlook activity page URLs. All reviews are collected for each activity.
activityIdsarray(Advanced) Numeric activity IDs — the number after /activity/.
languageenumenLanguage the review text is returned in (English, Chinese, Japanese, Korean, Thai, and more).
sortByenummost_relevantReview order: most_relevant or most_recent.
maxReviewsPerActivityinteger200Max reviews per activity. 0 = all available.
includeActivityInfobooleantrueAttach activity name, city, country, category, score and total review count to every review.
proxyConfigurationobjectResidentialProxy settings — an Asia-Pacific residential proxy is required and enabled by default.

📋 How to get an activity URL

  1. Open klook.com and choose any activity, tour, ticket or experience
  2. Copy the address-bar URL — it looks like .../activity/73749-thsr-one-way-ticket-taipei/
  3. Paste it into Activity URLs. Add as many as you like.

📤 Output

One clean record per review, enriched with activity context:

{
"reviewId": "18171293",
"activityId": "73749",
"activityName": "Taiwan High Speed Rail Ticket for non-Taiwanese",
"userName": "Lee *****",
"userAvatar": "https://cdn.klook.com/upload/img200X200/f157...jpg",
"rating": "5.0",
"ratingDesc": "Fantastic",
"reviewDate": "2026-04-01T05:42:53.000Z",
"reviewContent": "The Taiwan High-Speed Rail ticket was on a buy-one-take-one promotion...",
"translatedContent": "",
"likedCount": "4",
"hasReply": "false",
"imageCount": "6",
"reviewImages": "https://cdn.klook.com/user_review/...jpeg | https://cdn.klook.com/...jpeg",
"packageName": "Buy 1 Get 1 · Taipei · Zuoying (Kaohsiung)",
"packageId": "339074",
"activityCity": "Taipei",
"activityCountry": "Taiwan",
"activityScore": "4.8",
"activityReviewCount": "25461",
"activityCategory": "Transport",
"activityUrl": "https://www.klook.com/en-US/activity/73749-thsr-one-way-ticket-taipei/",
"language": "en_US",
"scrapedAt": "2026-08-10T13:38:51.864Z"
}

💬 Review fields

FieldDescription
reviewIdUnique review identifier
userName · userAvatarReviewer name and avatar URL
rating · ratingDesc⭐ Score out of 5 and label (e.g. Fantastic)
reviewDateReview timestamp (ISO 8601)
reviewContentOriginal review text
translatedContentTranslated text when different from the original
likedCount👍 How many users found the review helpful
hasReplyWhether the merchant replied
imageCount · reviewImages📸 Number and URLs of reviewer photos ( `
packageName · packageId🎟️ The booked package/option the review is about

🏙️ Activity fields (when includeActivityInfo is on)

FieldDescription
activityId · activityNameActivity identifier and name
activityCity · activityCountryWhere the activity takes place
activityCategoryTop category (Transport, Tours & experiences, Attractions…)
activityScoreActivity overall score out of 5
activityReviewCountTotal reviews for the activity
activityUrl · language · scrapedAtSource URL, language and timestamp

Export everything to JSON, CSV, Excel, HTML or RSS, or pull it through the Apify API and integrations.


🌏 Languages & coverage

Klook operates across Asia-Pacific and globally. Reviews can be returned in any of these languages:

🇬🇧 English🇨🇳 Chinese (Simplified)🇹🇼 Chinese (Traditional)🇭🇰 Chinese (HK)
🇯🇵 Japanese🇰🇷 Korean🇹🇭 Thai🇻🇳 Vietnamese
🇮🇩 Indonesian🇲🇾 Malay🇪🇸 Spanish🇫🇷 French
🇩🇪 German🇷🇺 Russian

Tip: English gives the widest, most readable output. Klook translates each review into the language you pick — the set of reviews collected is the same.


💡 Use cases

Use caseHow this actor helps
🎟️ Activity & tour operator monitoringTrack your Klook reputation and catch recurring complaints from real guest feedback and photos.
📊 Competitor benchmarkingPull reviews, scores and photos for rival activities in a destination and compare side by side.
💬 Sentiment & voice-of-customerFeed review text and ratings into your NLP or LLM pipeline for experience-level insight.
📈 Travel-experience market researchStudy traveler preferences across Asia — which experiences delight, which disappoint, and why.
📸 UGC & photo analysisCollect reviewer-uploaded photos at scale for visual quality and content analysis.
🤖 ML / NLP training dataBuild large labeled review datasets (rating, language, package, images) for models.

❓ FAQ

How many reviews can I get per activity? All of them. Set maxReviewsPerActivity to 0 and the actor paginates to the last page. Popular activities have tens of thousands of reviews.

Do reviews include photos? Yes — every reviewer-uploaded image URL is captured in reviewImages, with a count in imageCount.

Can I get reviews in a specific language? Set language to English, Chinese, Japanese, Korean, Thai and more. Klook translates the review text; the set of reviews is the same either way.

Do I need a proxy? Yes — an Asia-Pacific residential proxy is required and enabled by default.

Which export formats are supported? JSON, CSV, Excel, HTML and RSS, plus programmatic access via the Apify API and integrations (Google Sheets, Zapier, Make, Airbyte and more).


🔗 Integrations

Send results wherever you work: Google Sheets / Excel, Zapier · Make · n8n, Airbyte / databases / webhooks, and the Apify API for any language.


This actor collects publicly available review information — the same content any visitor can read on an activity page without logging in. It does not access private data and does not require any user account.

You are responsible for how you use the data. Please:

  • Use the output for lawful purposes such as research, analytics, reputation monitoring and benchmarking.
  • Respect the reviewed platform's Terms of Service and robots directives.
  • Comply with applicable data-protection laws (e.g. GDPR, CCPA) when handling personal data such as reviewer names — aggregate or anonymize where appropriate.
  • Do not republish scraped content in a way that infringes copyright or database rights.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Klook. All product names, logos and brands are property of their respective owners.


🛟 Support

Need another language, an extra field, or hit an activity that won't parse? Open an issue from the actor's Issues tab and we'll take a look.