Klook Activity Details Scraper avatar

Klook Activity Details Scraper

Pricing

from $1.40 / 1,000 activity-scrapeds

Go to Apify Store
Klook Activity Details Scraper

Klook Activity Details Scraper

Scrape full Klook activity records. Just add activity ids or URLs and get the name, rating, review count, every package with its price and highlights, description sections, FAQs, photo counts and the review summary. Add related activities too. $2.00 per 1,000 activities.

Pricing

from $1.40 / 1,000 activity-scrapeds

Rating

0.0

(0)

Developer

BonCross API

BonCross API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

What is Klook Activity Details Scraper?

Give Klook Activity Details Scraper the link to a Klook activity and it hands back the whole page as one structured record. For Hong Kong Disneyland on 7 October 2026 that meant 28 packages in 8 groups with their prices, the rating behind 192,032 reviews, 10 FAQs, the what's-included list, the opening hours and location, and a dozen traveller photos.

Why people pick it over a listing scrape:

  • Each package, not one "from" price. You get the name, price, crossed-out price, group, badges and sale status of each option the activity sells.
  • Lists you can use as they are. What's included, what isn't, eligibility, validity and how to redeem arrive as plain headings and strings. You don't have to parse a description to find them.
  • Things most Klook data leaves out: the day-by-day itinerary of a tour with coordinates for each stop, the attractions a Klook Pass covers, and the good-to-know notes on refunds and confirmation.
  • Fast enough for a catalogue. 150 activities came back in 32 seconds, 12 in 4 to 5.
  • $2.00 per 1,000 activities on the Free plan and $1.40 on Business, whichever sections you switch on. There's no proxy to set up and no usage charge on top.

BonCross Verified means we tested this actor against the live site before release and kept the record:

  • 32 of 32 live checks on its inputs and filters passed on 8 October 2026
  • 14 activities run on 7 October 2026: 13 activities, 1 error row
  • Charges matched the rows: 13 scraped, 1 checked
  • An unknown or unavailable activity gets a row saying why, at the checked fee only

This actor describes an activity. It doesn't search for one and it doesn't price a date. If you need to find activities first, Klook Search Scraper lists them by keyword or city and gives you the ids to feed in here. Prices and places left for a particular day come from Klook Activity Availability & Prices, and the reviews themselves from Klook Activity Reviews Scraper.

What data can you extract from a Klook activity?

🏷️ Activity name and id🔗 Activity link and canonical link
⭐ Rating out of five and its wordingReview count
Klook's review summary👥 Number booked
🎟️ Package list with each package's priceCrossed-out list price
Package grouping and badgesHighlights per package
Sale status per package: on sale, suspended or coming soonCombo flag and version per package
Ticket type per package: fixed date, open or flexibleQuantity limits per package
💰 Lowest and highest price, price from and price to💱 Currency and symbol
✅ What's included and what isn'tEach titled content block
📄 Description sections❓ FAQs
🗺️ Day-by-day tour itinerary with places and coordinatesGood-to-know notes: refunds, confirmation, validity
Attractions a Klook Pass coversKlook Pass options and their choices
📷 Traveller photo count and a sample of photo linksReviews with photos
Related activities, with prices and ratingsHighlights of the activity
🏙️ City, city id and countryCategory, leaf category and sub-category id
🖼️ Main imageSold-out flag and first package id

How to scrape Klook activity details

There's no code to write. You fill in a form and download a table.

  1. Open a free Apify account and go to Klook Activity Details Scraper.
  2. Paste Klook activity links, one per line. An activity number on its own works too.
  3. Leave the sections switched on, or turn off the ones you don't need to make the run quicker.
  4. Press Start, and download the result as JSON, Excel or CSV when it finishes.

⬇️ Input

All you have to supply is the list of activities. Each section of the record has its own switch, and the price per activity is the same whichever you leave on. Only related activities are billed on top.

There's one limit, "Maximum activities for the whole run", which stops the run after that many activities (default 0, no limit). One activity is one row, so there's no per-target limit to set.

{
"activities": ["https://www.klook.com/en-GB/activity/39-hong-kong-disneyland-park-ticket/"],
"includeRelated": true
}

Several activities, packages and prices only

{
"activities": ["39", "3021", "69622"],
"includePackages": true,
"includeDescription": false,
"includeFaq": false,
"includePhotos": false,
"includeItinerary": false
}

A tour with its itinerary and good-to-know notes

{
"activities": ["https://www.klook.com/en-GB/activity/145211-sri-lanka-10-days-tour-with-4-star-hotels-and-private-transportation/"],
"includeItinerary": true
}

itinerary lists each day's stops (pick-up, transport, attractions) with a description and the places visited, each with coordinates. importantInfo has the lead package's good-to-know notes. For a Klook Pass, passAttractions lists the attractions the pass covers.

Prices in Singapore dollars, description in Japanese

{
"activities": ["69622"],
"currency": "SGD",
"language": "ja_JP"
}
FieldNotes
activitiesKlook activity links or activity numbers.
startUrlsThe same links loaded in bulk from a file, a Google Sheet or a remote list. Combined with activities.
maxItemsStop after this many activities. Related-activity rows don't count. Default 0.
includePackages, includeDescription, includeFaq, includePhotos, includeItineraryThe sections of the record. All on by default.
includeRelatedAdds the activities Klook recommends alongside. Default off, charged separately.
resolveActivityCard"Include the activity summary" in the form: booked count, city, category and main image. Default on.
currencyDefault USD. Package prices are quoted in it.
languageDefault en_GB. Sets the language of the description sections, the FAQ, the rating label and the review summary.
maxConcurrency, delayMsAdvanced. See below.

For developers

  • includeDescription also fills importantInfo and the top-level highlights. With it off, both are empty.
  • includeItinerary and resolveActivityCard each add one lookup per activity. Turn resolveActivityCard off only if packages and prices are all you need.
  • packagesListedBy says how Klook lists the activity's packages. spu is an activity sold as one product with options, where firstPackageName and the content groups describe its first package. package is one sold as separate packages, where firstPackageName is null. It's null when no package list was returned.
  • missingSections names any section that couldn't be read on that run. Check it before you treat a row as complete.
  • An id that Klook answers with no activity, or with an activity it doesn't offer in the requested language, is billed activity-checked in place of activity-scraped. An id that fails for any other reason isn't charged.
  • maxConcurrency (default 64, from 1 to 64) sets how many requests run at once, and delayMs (default 0, up to 10,000) adds a pause before each. We'd change them only if a run reports errors.
  • When Apify moves a run to another server part-way through, it resumes where it stopped. Rows already delivered aren't written or charged again.

⬆️ Output

One activity is one row, with the packages, description, FAQs and related activities nested inside it. Here's Hong Kong Disneyland, shortened where you see "…":

{
"input": "https://www.klook.com/en-GB/activity/39-hong-kong-disneyland-park-ticket/",
"id": "39",
"activityId": "39",
"url": "https://www.klook.com/en-GB/activity/39-activity/",
"name": "Hong Kong Disneyland Park Ticket",
"firstPackageName": "Silver Magic Access Membership",
"packagesListedBy": "spu",
"rating": 4.8,
"ratingScale": 5,
"ratingText": "Fantastic",
"reviewCount": 192032,
"reviewCountText": "192.0K reviews",
"aiSummaryTitle": "Reviews summary",
"aiSummary": [
{
"id": "2074404",
"type": "overall_impression",
"title": "Overall impression",
"content": "Visitors enjoyed convenient, quick entry with hassle-free QR code use. Many found booking and purchasing tickets easy and often at better prices. Park experiences included short queue times, clean facilities, and memorable shows, contributing to fun and magical visits."
}
],
"packageCount": 28,
"lowestPrice": 15.79,
"highestPrice": 656.55,
"priceFrom": 15.79,
"priceTo": 656.55,
"priceListed": 659.15,
"isSoldOut": false,
"bookedCount": 8935773,
"bookedText": "8M+ booked",
"cityId": "2",
"cityName": "Hong Kong",
"countryId": "2",
"countryName": "Hong Kong",
"category": "Theme parks",
"leafCategoryId": "416",
"imageUrl": "https://res.klook.com/image/upload/activities/xzttq28djjq1k4ewfbeu.jpg",
"canonicalUrl": "https://www.klook.com/en-GB/activity/39-hong-kong-disneyland-resort-hong-kong/",
"subTitle": "Theme parks • Hong Kong",
"subCategoryId": 415,
"firstPackageId": "420090",
"inclusions": [
"1 Silver Magic Access Membership ticket(s)",
"Valid admission days: Most weekdays excluding public holidays. All park visits require advance reservations via a valid membership card and are subject to limited quotas and the park’s operating schedule",
"…"
],
"exclusions": [
"Other personal expenses"
],
"highlights": [
"Disney Halloween Time (18 Sep-1 Nov 2026)",
"Experience magical discovery at World of Frozen",
"Unmissable magical attractions and themed lands"
],
"contentGroups": [
{
"heading": "What's included",
"sectionTitle": "About this package",
"sectionType": "",
"items": [
"1 Silver Magic Access Membership ticket(s)",
"…"
]
},
"…"
],
"currency": "USD",
"currencySymbol": "US$",
"packageGroups": [
{
"groupId": 34477,
"groupName": "Limited-time offers",
"groupDesc": "",
"groupTag": "Klook recommended"
},
"…"
],
"packages": [
{
"packageId": "773086",
"packageName": "Midweek Getaway Ticket (Wednesday entry)",
"packageDesc": "Save more with a special rate on a fixed Wednesday date!",
"groupId": 34477,
"groupName": "Limited-time offers",
"groupTag": "Klook recommended",
"price": 70.09,
"priceText": "US$ 70.09",
"priceListed": 85.25,
"hasStock": true,
"isCombo": false,
"comboVersion": null,
"bestSkuId": "828952554941",
"highlights": [
"Valid on the selected date",
"No cancellation",
"Instant confirmation"
],
"ticketType": null,
"ticketTypeCode": null,
"minQuantity": null,
"maxQuantity": null,
"saleStatus": "on_sale",
"saleStatusCode": 1,
"saleStatusText": null,
"onSaleFrom": null,
"spec": null
},
"…"
],
"descriptionSections": [
{
"title": "Attraction info",
"sectionType": "attraction_info",
"components": [
{
"type": "address",
"data": {
"title": "Location",
"address": {
"address": "22.312957,114.040701",
"address_desc": "Hong Kong Disneyland",
"…": "…"
},
"…": "…"
}
},
"…"
]
},
"…"
],
"importantInfo": [
"No cancellations, or refunds can be made",
"You'll get confirmation within 48 hours. If you don't receive a confirmation email, reach out to our customer support.",
"…"
],
"itinerary": null,
"itineraryDisclaimers": null,
"passAttractions": null,
"faq": [
{
"question": "Which ticket type has access to \"World of Frozen\"?",
"answer": "All admission tickets, including 1-Day and 2-Day Tickets, can visit \"World of Frozen\" and any other attractions during the Park's opening hour."
},
"…"
],
"faqUrl": "https://www.klook.com/en-GB/web3/activity/39/faq/",
"photoCount": 311830,
"reviewsWithPhotos": 90661,
"samplePhotos": [
"https://cdn.klook.com/user_review/product/1949722/8ca56b67-808b-4f36-4ec6-6cf170bfe91d.0*1200.jpeg",
"https://cdn.klook.com/user_review/product/1949722/0b60d50e-a7ab-432d-501f-2892c2042f1a.1200*0.jpeg",
"…"
],
"relatedCount": null,
"related": [],
"missingSections": [],
"scrapedAt": "2026-10-07T20:33:43.052Z"
}

descriptionSections keeps the page's own structure. Each section has a title, a sectionType and a list of components, and each component has a type (opening hours, location, text, highlights) and its content as Klook provides it, display settings and icon links included. The shape varies by component type and by activity. If you want plain lists, read contentGroups, inclusions and exclusions: the same kind of content as simple headings and strings.

inclusions and exclusions describe the package Klook shows first, the one named by firstPackageId and firstPackageName. Other packages include different things, and contentGroups holds each titled block (here What's included, Not included, Eligibility, Additional information, Usage validity, Reservation required, How to redeem, Address and How to get there).

How many activities can you get, and how fast?

RunRowsPackagesTimePrice
One activity with all sections and 12 related activities on1302 s$0.0076
Three activities (Universal Studios Japan, a Mt Fuji tour, a Japan eSIM), default options31748 s$0.008
Twelve activities (theme parks, tours, an eSIM, a pass), default options122774 to 5 s$0.026
150 products from Klook search results (incl. 10 hotel cards), default options15046232 s$0.302

Times are whole runs, start to finish. That's about 280 activities a minute, and a one-hour run covers well over 10,000.

Related activities stop at the dozen Klook recommends.

How much does it cost to scrape Klook activity details?

EventFree planStarterScaleBusiness
actor-start, once per run$0.002$0.002$0.002$0.002
activity-scraped, per activity$0.002$0.0018$0.0016$0.0014
activity-related, per related activity, only when that option is on$0.0003$0.00027$0.00024$0.00021
activity-checked, per id Klook answered with no activity or with an activity it does not offer in the requested language (the row says which), instead of activity-scraped$0.0005$0.0005$0.0005$0.0005

Enterprise plans pay the Business price.

$2.00 per 1,000 activities on the Free plan, $1.40 on Business. It's the whole price, with no proxy charges or usage fees added, and it doesn't change with the sections you turn on.

  • One activity with its 12 related activities: $0.002 + $0.002 + 12 × $0.0003 = $0.0076 ($0.00592 on Business).
  • A hundred activities without related: $0.002 + 100 × $0.002 = $0.202 ($0.142 on Business).

Apify gives Free plan accounts $5 of credits each month, which is about 2,400 activity records at the size of the second example.

FAQ

Do I need proxies or a Klook account?

There's nothing to configure. You don't need an account, and no proxy charge is added to the per-activity price.

Where do I find the activity number?

In the address of the activity page: 39 in klook.com/en-GB/activity/39-hong-kong-disneyland-park-ticket/. Paste the whole address if that's easier.

Why is priceFrom lower than any ticket I can see?

It's the cheapest package the activity sells, and many activities sell add-ons next to admission. On Hong Kong Disneyland the lowest price was US$15.79, a child meal set, while the 1-Day Ticket was US$78.69. Klook's own listing card shows the same "from" figure. Read packages for the price of each option.

Can I get the price for a specific date?

Not from this actor. Package prices here are Klook's headline price per option. Dated prices and stock per time slot are what Klook Activity Availability & Prices returns.

Does the language setting translate everything?

Part of it. The description sections, FAQ, rating label and review summary follow the language you set (checked in Japanese on 7 October 2026). The activity name, category, city, package names and the included and not-included lists stay in English.

Why did I get a row with an error and nothing else?

Klook lists some activities without offering them in the language you asked for. That includes a sold-out or withdrawn listing with no packages. You get its id, its link and a note saying it isn't available, at the activity-checked fee. An id Klook doesn't know at all is reported the same way. Where Klook gives a message of its own, the note quotes it. An activity that couldn't be read at all gets a row saying what happened and what to do about it, and that row is free.

What won't it return?

  • highlights at the top level is filled only where Klook publishes a Highlights block: 6 of 18 activities tested on 7 October 2026, all attraction tickets and passes. Each package has its own highlights either way.
  • Itineraries are published for part of Klook's tours only. Others leave itinerary empty.
  • Photos are a sample, 12 links on most activities, plus the full counts. In one check 12 of 13 activities had them.
  • A package's ticket type and quantity limits are given for tours, passes and eSIMs. Ticket-style packages leave them empty. Sale status and combo flags are given where Klook lists them.
  • The number booked, city, country and main image come from the activity card when Klook recommends the activity elsewhere, and from the activity page otherwise. The category and card subtitle come from the card only.
  • A Klook Pass lists each option it sells (204 options across the six Klook Passes tested, 74 for Singapore) with the option's choices in spec. spec is empty for other activities.
  • Hotel cards that Klook search returns aren't activities and come back with empty sections. Use the activityId of an activity row.
  • If one section fails, you still get the row, and missingSections lists what's absent.

Everything the actor reads is on Klook's public activity pages, visible without logging in, and none of it is personal data. Scraping public data is generally lawful. You're responsible for how you use it and for respecting Klook's terms and the law that applies to you.

Feed a catalogue, or call it from code

The usual pipeline is two steps: Klook Search Scraper produces activity ids for a city, and this actor turns each id into a record for your catalogue, comparison site or pricing audit. Re-run it on an Apify Schedule and you can see when an operator adds a package or changes a headline price.

POST https://api.apify.com/v2/acts/boncross~klook-activity-details/run-sync-get-dataset-items with the input JSON as the body runs it and returns the records in the same request. For an AI agent, add the Apify MCP server at mcp.apify.com and the actor appears as the tool boncross/klook-activity-details. It can then answer "what does this ticket include?" from the record.

More from BonCross

Your feedback

Is there something on a Klook activity page that isn't in the record? Open an issue on the Issues tab in Apify Console and paste the link. We read them all, and missing fields are what we add first.