KKday Product Reviews Scraper
Pricing
from $1.40 / 1,000 review-scrapeds
KKday Product Reviews Scraper
Scrape KKday reviews for any product. Just add a product URL and get every review with its rating, rating wording, title, full text, original and translated wording, traveller type, visit date, photos and helpful count, plus the product rating summary and photo wall. $2.00 per 1,000 reviews.
Pricing
from $1.40 / 1,000 review-scrapeds
Rating
0.0
(0)
Developer
BonCross API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
What is KKday Product Reviews Scraper?
KKday will only show you the first 150 reviews of a product in any one order, even when the product has thousands. KKday Product Reviews Scraper reads past that. Give it a product link and it works through KKday's other orders and review topics until it has what you asked for: 600 distinct reviews from one product in a single measured run.
It's the reviews actor of four for KKday. If you want the calendar and prices, the product record, or a way to find products in the first place, the siblings are linked at the bottom.
Why this one:
- It goes past 150. On a product with 14,727 reviews, each order stopped at 150 on KKday's side, and the newest and lowest-rated lists shared only 20 reviews. With "Read past 150 reviews per product" on, you get the union.
- You get both wordings. The reviewer's original text and KKday's translation sit in separate columns, so a Taiwanese or Korean review is usable in English without losing the source.
- A free summary row per product. Rating, review count, sentiment topics and KKday's written summary of what reviewers say. It isn't charged.
- A daily watch costs cents. Sorted newest first with a date or an only-new store, a run stops at the first review you've already had. Twenty new reviews come to $0.044.
- $2.00 per 1,000 reviews on the Free plan, $1.40 on Business, proxy usage and platform usage included.
BonCross Verified means we tested this actor against the live site before release and kept the record:
- 25 of 25 live checks on its inputs and filters passed on 8 October 2026
- 13 products run on 7 October 2026, tickets, tours, a show and an eSIM: 228 reviews, 12 summaries, 1 error row
- Charges matched the rows: 12 products, 228 reviews
- An unknown product gets an uncharged row saying why
People mostly use it to watch what visitors say about an attraction over time, to compare two operators selling the same ticket, to catch a run of low ratings before the headline score moves, and to build a multilingual review set with originals and translations side by side.
How much does it cost to scrape KKday reviews?
| Event | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
actor-start, per run | $0.002 | $0.002 | $0.002 | $0.002 |
product-resolved, per product | $0.002 | $0.002 | $0.002 | $0.002 |
review-scraped, per row returned | $0.002 | $0.0018 | $0.0016 | $0.0014 |
photo-page, per photo-wall row (up to thirty photos), only when the photo wall is on | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
Enterprise plans pay the Business price.
$2.00 per 1,000 reviews on the Free plan, $1.40 on Business, and that's all you pay. Reviews a filter removes, reviews you've already had, and summary rows cost nothing. Neither does a link KKday has no product for.
- All 580 reviews of one product: $0.002 + $0.002 + 580 × $0.002 = $1.164 ($0.816 on Business).
- A daily watch that finds 20 new reviews: $0.002 + $0.002 + 20 × $0.002 = $0.044 ($0.032 on Business).
- The same watch with two pages of the photo wall: $0.044 + 2 × $0.0005 = $0.045 ($0.033 on Business).
The $5 of credits in Apify's Free plan each month buys about 2,490 reviews at the first example's size, or about 113 runs of the daily watch.
What data comes with each review?
| ⭐ Rating out of five | Rating wording, such as "Excellent" |
| Review title | 💬 Review body |
| Original wording | Translated wording |
| 👤 Reviewer name | Reviewer avatar |
| Traveller type | 📅 Date posted |
| Date of visit | 👍 Helpful count |
| 📷 Review photos | Photo count |
| Product rating | Product review count |
| Sentiment tags | Written review summary |
| Review id | 🔗 Product link |
How to scrape KKday reviews
- Create a free Apify account and open KKday Product Reviews Scraper.
- Paste KKday product links into "Products". A slug or a bare product number works too.
- Choose how many reviews you want per product, and the order.
- Press Start. The reviews fill a table you can download as Excel, CSV or JSON.
There's no code to write and nothing to install.
⬇️ Input
Paste product links and press Start. That returns the newest reviews of each product, up to KKday's 150, plus a summary row.
Two limits apply. "Max reviews per product" (default 200) counts each product separately, and 0 means all the reviews KKday serves. "Maximum results for the whole run" caps the total across products, and nothing past it is fetched or charged for. Remember the 150 ceiling: without "Read past 150 reviews per product", one product returns at most 150 whatever limit you set.
If you have a long list of links, "Start URLs" loads them from a file, a Google Sheet or a remote list, and adds them to anything in "Products".
The newest reviews of two attractions
{"products": ["https://www.kkday.com/en/product/11875-erawan-museum-and-ancient-city-tickets-in-bangkok-thailand","https://www.kkday.com/en/product/8332-taipei-101-observatory-ticket"],"maxReviewsPerProduct": 100}
As deep as KKday goes on one product
{"products": ["https://www.kkday.com/en/product/8332-taipei-101-observatory-ticket"],"maxReviewsPerProduct": 1000,"deepScan": true}
Recent low ratings, for a quality check
{"products": ["https://www.kkday.com/en/product/2358-nanta-show-tickets-in-seoul"],"sort": "rating_asc","reviewedAfter": "2026-06-01","maxReviewsPerProduct": 100}
Photo reviews, plus the product's photo wall
{"products": ["https://www.kkday.com/en/product/152911-floating-market-day-tour-from-bangkok-thailand"],"withPhotosOnly": true,"includeReviewImages": true,"maxImagePages": 3}
A daily watch that returns only new reviews
{"products": ["https://www.kkday.com/en/product/11875-erawan-museum-and-ancient-city-tickets-in-bangkok-thailand"],"sort": "postdate_desc","dedupStoreName": "kkday-seen-reviews","maxReviewsPerProduct": 50}
| Field | Notes |
|---|---|
products, startUrls | Product links, slugs or bare product numbers. |
maxReviewsPerProduct, maxItems | Per product (default 200, up to 20,000, 0 for all KKday serves) and for the whole run (default 0, no cap). |
sort | postdate_desc (default), rating_desc, rating_asc, image_desc or helpful. |
deepScan | Read the other orders and each review topic once the first order runs out. Off by default. |
minRating | Drop reviews below this rating out of 5. Default 0 keeps all. |
withPhotosOnly | Keep only reviews with at least one photo. Off by default. |
reviewedAfter | Keep reviews posted on or after this date, YYYY-MM-DD. |
includeSummary | One summary row per product. On by default. |
includeReviewImages, maxImagePages | The product's photo wall, 30 photos a page. Off by default, 2 pages when on (1 to 50). |
dedupStoreName | A store that remembers which reviews you've had. |
delayMs, maxConcurrency | Pacing, 900 and 4 by default. |
For developers
- Reviews arrive ten to a page from KKday, and one order ends after fifteen pages.
deepScanthen reads the remaining orders and each review topic, skipping review ids already returned. The row'ssortandlistingTagsay which list found it. - When a filter or the
dedupStoreNamestore keeps nothing, the read stops early: after 5 pages in a row with no review kept (across the ordersdeepScanreads), or after about three times the pagesmaxReviewsPerProductneeds. - On
postdate_descthe read also stops at thereviewedAfterdate, and the first review an earlier run returned ends that order. WithdeepScanthe other orders are still read until they too stop returning anything new. maxConcurrency(default 4, from 1 to 8) is requests in flight across the run, anddelayMs(default 900, up to 10,000) the pause before each one. They're the fastest settings that ran clean, so we'd leave them unless a run reports errors.- A run Apify restarts part-way picks up where it stopped. Rows already delivered aren't written or charged twice.
- The run statistics count the products that hold more reviews than KKday serves.
⬆️ Output
Each review is a row. This one is real, from the Bangkok product in the first example, read on 7 October 2026:
{"input": "https://www.kkday.com/en/product/11875-erawan-museum-and-ancient-city-tickets-in-bangkok-thailand","dataType": "review","id": "4535107","reviewId": "4535107","url": "https://www.kkday.com/en/product/11875-erawan-museum-and-ancient-city-tickets-in-bangkok-thailand","productId": "11875","productTitle": "Erawan Museum and Ancient City Tickets in Bangkok","productName": "Erawan Museum and Ancient City Tickets in Bangkok | Thailand","rating": 5,"ratingScale": 5,"scoreDescription": "Excellent","title": "Siam Old City","titleOriginal": "暹邏古城","titleTranslated": "Siam Old City","text": "A very interesting attraction where you can change into traditional Thai clothing, as if you've traveled back in time... It's definitely worth it! Every photo you take will be unique.","textOriginal": "非常有趣的景點,可換上古代的泰國傳統服飾,有如穿越到過去....值得一換喔,每張照片都非常有特色","textTranslated": "A very interesting attraction where you can change into traditional Thai clothing, as if you've traveled back in time... It's definitely worth it! Every photo you take will be unique.","isTranslated": true,"needsTranslation": true,"postedAt": "2026-10-03T23:07:38","postedText": "2026-10-03 23:07:38","visitDate": "2026-10-03","authorName": "YU CHING","authorAvatar": "https://image.kkday.com/v2/image/get/s1.kkday.com/member/default_image/png","travellerType": "Couple","travellerTypeCode": "02","helpfulCount": 0,"images": [],"imageCount": 0,"source": "kkday","productRating": 4.68,"productRatingScale": 5,"productReviewCount": 1262,"sort": "postdate_desc","scrapedAt": "2026-10-07T18:38:33.403Z"}
text and title hold KKday's translation where it has one and the original where it doesn't. The …Original and …Translated columns keep the two apart. postedAt is the time as KKday prints it, with no time zone.
Two other kinds of row can appear, marked by dataType:
summary, one per product while "Include the rating summary" is on. It has the product'srating,reviewCount(KKday's total),sources(the review sources KKday lists, as given),sentimentTags(a list of{id, name, sentiment}topics) andreviewSummary, the written summary, which is empty when KKday has none. For Taipei 101 on the same day that row read 4.63 from 13,751 reviews, with six topics from Convenience to Experience.reviewImages, one per page of the photo wall. Each lists up to thirty photos with the review id, title and author it belongs to.
A link that leads nowhere gets a row too, saying what happened and what to check, and so does a product KKday wouldn't answer for on this run. Neither is charged. If a later page of reviews can't be read, the reviews before it are kept and a row marks the page where the list stopped.
How deep can you go, and how fast?
Whole runs on Apify, start-up included, measured on 2 and 3 October 2026:
| Run | Rows | Time | Price on the Free plan |
|---|---|---|---|
| One product, 10 reviews | 10 | 6.2 s | $0.024 |
| Two products, 100 reviews each with summaries | 202 | 11.0 to 13.6 s | $0.406 |
| Twelve products, 50 reviews each with summaries | 612 | 34 s | $1.226 |
That's about three seconds a product at 50 reviews. A one-hour run fits roughly 1,200 products at that depth, and rows are saved as they arrive. For a longer list, raise the timeout or split it.
Depth is the part worth planning. One order gives you 150 reviews per product and stops. Different orders reach different reviews, which is why the deep read works: 600 distinct reviews came back from the 14,727-review product in one run. It won't return all 14,727, and no setting will.
Limitations
- KKday serves at most 150 reviews of a product in one sort order. The deep read combines orders and topics to go further, but it can't reach every review of a very large product.
- Translations exist for some reviews only. Where KKday has none, the translated columns are empty and the original stands.
- You can't choose the translation language. You get the reviewer's wording and the translation KKday supplies.
- Traveller type is a code on the review. It's given as a readable name where KKday's own labels cover it, and the code is kept beside it.
- KKday doesn't publish operator replies on the product page, so there are none in the rows.
- The photo wall is separate from the reviews: thirty photos a page, optional, and billed per page as
photo-page.
Feed new reviews into your own tools
Put the daily-watch example on an Apify Schedule and you have a feed of new reviews. A webhook can push each run's rows to Slack or a Google Sheet, which is enough for a small team that wants to see yesterday's two-star reviews before lunch. For text analysis, call POST https://api.apify.com/v2/acts/boncross~kkday-reviews/run-sync-get-dataset-items with the input as the body and you get the rows back in the response. AI agents reach it through the Apify MCP server at mcp.apify.com, as the tool boncross/kkday-reviews.
FAQ
Do I need proxies or a KKday account?
You need neither. There's no login, and proxy usage is included in the price.
How do I get more than 150 reviews of one product?
Switch on "Read past 150 reviews per product" and set "Max reviews per product" to the number you want. The run reads newest first until that order ends, then the other orders and each review topic, and returns each review once. It's slower than a plain read, so keep it for products with thousands of reviews.
How do I get only the reviews posted since my last run?
Sort newest first and name an only-new store. Each run stops paging at the first review an earlier run returned, so a daily watch reads one or two pages. If you'd rather not keep a store, set "Posted after" to a date.
Which column should I analyse, the original or the translation?
Use text if you want one column to read: it's the translation where there is one. Use textOriginal when the language itself matters, for example to split reviews by market.
What do I get for a product nobody has reviewed?
Its summary row, with a review count of 0, and no review rows. You pay the $0.002 product fee and nothing else.
Can I get only reviews with photos?
"Only reviews with photos" keeps those and drops the rest at no charge. The photo wall is a different thing: all the product's review photos in pages of thirty, whoever posted them.
Is it legal to scrape KKday reviews?
The actor reads reviews KKday shows to any visitor without an account. Reviews carry a display name and sometimes photos, which can be personal data, so check that your use fits GDPR or the equivalent where you are, and KKday's terms.
More from BonCross
- KKday Product Availability & Prices: KKday availability and prices for any product.
- Klook Activity Details Scraper: Full Klook activity records.
- Klook Activity Availability & Prices: Klook availability and prices.
- Klook Activity Reviews Scraper: Every review Klook shows for an activity.
- Trip.com Attraction Reviews Scraper: Trip.com reviews for any attraction.
- Trip.com Hotel Search Scraper: Every hotel Trip.com lists for a destination and your dates.
Your feedback
Seen a review on KKday that didn't come back, or a translation that landed in the wrong column? Open an issue on the Issues tab in Apify Console and include the product link. We read them all and answer there.