KKday Product Reviews Scraper avatar

KKday Product Reviews Scraper

Pricing

from $1.40 / 1,000 review-scrapeds

Go to Apify Store
KKday Product Reviews Scraper

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

BonCross API

Maintained by Community

Actor 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?

EventFree planStarterScaleBusiness
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 fiveRating wording, such as "Excellent"
Review title💬 Review body
Original wordingTranslated wording
👤 Reviewer nameReviewer avatar
Traveller type📅 Date posted
Date of visit👍 Helpful count
📷 Review photosPhoto count
Product ratingProduct review count
Sentiment tagsWritten review summary
Review id🔗 Product link

How to scrape KKday reviews

  1. Create a free Apify account and open KKday Product Reviews Scraper.
  2. Paste KKday product links into "Products". A slug or a bare product number works too.
  3. Choose how many reviews you want per product, and the order.
  4. 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
}
FieldNotes
products, startUrlsProduct links, slugs or bare product numbers.
maxReviewsPerProduct, maxItemsPer product (default 200, up to 20,000, 0 for all KKday serves) and for the whole run (default 0, no cap).
sortpostdate_desc (default), rating_desc, rating_asc, image_desc or helpful.
deepScanRead the other orders and each review topic once the first order runs out. Off by default.
minRatingDrop reviews below this rating out of 5. Default 0 keeps all.
withPhotosOnlyKeep only reviews with at least one photo. Off by default.
reviewedAfterKeep reviews posted on or after this date, YYYY-MM-DD.
includeSummaryOne summary row per product. On by default.
includeReviewImages, maxImagePagesThe product's photo wall, 30 photos a page. Off by default, 2 pages when on (1 to 50).
dedupStoreNameA store that remembers which reviews you've had.
delayMs, maxConcurrencyPacing, 900 and 4 by default.

For developers

  • Reviews arrive ten to a page from KKday, and one order ends after fifteen pages. deepScan then reads the remaining orders and each review topic, skipping review ids already returned. The row's sort and listingTag say which list found it.
  • When a filter or the dedupStoreName store keeps nothing, the read stops early: after 5 pages in a row with no review kept (across the orders deepScan reads), or after about three times the pages maxReviewsPerProduct needs.
  • On postdate_desc the read also stops at the reviewedAfter date, and the first review an earlier run returned ends that order. With deepScan the 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, and delayMs (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's rating, reviewCount (KKday's total), sources (the review sources KKday lists, as given), sentimentTags (a list of {id, name, sentiment} topics) and reviewSummary, 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:

RunRowsTimePrice on the Free plan
One product, 10 reviews106.2 s$0.024
Two products, 100 reviews each with summaries20211.0 to 13.6 s$0.406
Twelve products, 50 reviews each with summaries61234 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.

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

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.