Trip.com Attraction Reviews Scraper
Pricing
from $1.40 / 1,000 review-scrapeds
Trip.com Attraction Reviews Scraper
Scrape Trip.com reviews for any attraction. Just add an attraction URL and get every review with its rating, full text, language, photos, author, helpful count and exact post date, plus the Tripadvisor reviews shown alongside. It covers attractions, not hotels. $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
21 hours ago
Last modified
Categories
Share
What is Trip.com Attraction Reviews Scraper?
Trip.com Attraction Reviews Scraper collects what visitors wrote about a sight, a theme park or a museum on Trip.com. Paste the attraction's link and you get its reviews one per row: the rating out of five, the full text, the photos, and the exact time each was posted. Flip one switch and the Tripadvisor reviews Trip.com shows on the same page arrive in the same run, marked by source.
This one is for attraction pages. Reviews of Trip.com hotels come from Trip.com Hotel Details Scraper, which is a different actor.
What you're getting, with the numbers behind it:
- Depth. 1,500 reviews of one attraction took 30 seconds, and you can ask for all of them. The attraction we measured holds 40,500.
- Breadth. 150 attractions at up to 50 reviews each returned 6,791 reviews in 110 seconds.
- Real dates. Each row has a timestamp such as
2026-10-06T05:17:40.000Znext to Trip.com's "1 day ago". - One spelling per language. Trip.com writes the same language several ways. Rows come out as
en,en-GB,zh-CN, and you can group on that column straight away. A 241-review sample on 7 October 2026 held 13 of those codes. - $2.00 per 1,000 reviews on the Free plan, $1.40 on Business. An attraction with no reviews costs you nothing.
BonCross Verified means we tested this actor against the live site before release and kept the record:
- 28 of 28 live checks on its inputs and filters passed on 7 October 2026
- 14 attractions run the same day, large, small and unreviewed: 241 reviews, 4 uncharged error rows
- Charges matched the rows: 10 attractions, 241 reviews
- An attraction with no reviews gets an uncharged row saying so
More that's in the form:
- Read one of Trip.com's own review tabs: photos, verified bookings, positive or negative
- Keep only reviews written in one language, or at or above a rating
- Take only reviews posted after a date
- Collect the photos attached to each review, and replies where Trip.com publishes them
- Run it on a schedule and get only the reviews you haven't had before
- Export as JSON, CSV, Excel, XML or HTML
How to scrape Trip.com attraction reviews
- Sign up for a free Apify account, then open Trip.com Attraction Reviews Scraper.
- Find the attraction on Trip.com and copy the address of its page. Paste it into Attractions. Add as many as you like.
- Choose the order (most relevant or most recent) and how many reviews you want from each attraction.
- Press Start.
- Open the Output tab and download the reviews as a spreadsheet or as JSON.
You don't need code, a login or a proxy.
What review data do you get?
| ⭐ Rating out of five | Rating wording ("Excellent") |
| 💬 Review text | Review title, on Tripadvisor rows |
| 🌐 Language | 📅 Date and time posted |
| 👤 Reviewer name | Reviewer avatar |
| 🔗 Reviewer profile | 📍 Reviewer location, on Tripadvisor rows |
| Trip type, on Tripadvisor rows | 👍 Helpful count |
| 📷 Review photos | Photo count |
| Replies | Reply count |
| Attraction rating | Attraction review count |
| Source: Trip.com or Tripadvisor | 🆔 Review id |
| ✅ Verified-booking tag | Attraction id and name |
⬇️ Input
All it needs is an attraction link, like https://www.trip.com/travel-guide/attraction/bangkok/the-grand-palace-77012. The number at the end is the attraction id, and a bare id works too.
For a long list, use Start URLs. It loads links from a file, a Google Sheet or a remote list, and adds them to whatever you pasted.
Two limits decide how much you get. "Max reviews per attraction" (default 200, and 0 means all of them) applies to each attraction on its own, so ten attractions at 50 each returns 500. "Maximum results for the whole run" caps the total across the run. Nothing past it is fetched or charged for.
The newest reviews of one attraction
{"attractions": ["https://www.trip.com/travel-guide/attraction/bangkok/the-grand-palace-77012"],"sortBy": "recent","maxReviewsPerAttraction": 500}
English reviews with photos, two attractions
{"attractions": ["https://www.trip.com/travel-guide/attraction/seoul/n-seoul-tower-83001","https://www.trip.com/travel-guide/attraction/bangkok/the-grand-palace-77012"],"language": "en","withPhotosOnly": true,"maxReviewsPerAttraction": 200}
Recent negative reviews, for a quality check
{"attractions": ["83001"],"reviewFilter": "negative","reviewedAfter": "2026-06-01","maxReviewsPerAttraction": 100}
Both sources, on a daily watch
{"attractions": ["https://www.trip.com/travel-guide/attraction/bangkok/the-grand-palace-77012"],"includeTripadvisor": true,"maxTripadvisorReviews": 50,"dedupStoreName": "trip-seen-reviews"}
| Field | Notes |
|---|---|
attractions, startUrls | Attraction links or bare ids, pasted or loaded in bulk. |
maxReviewsPerAttraction, maxItems | The per-attraction cap (default 200) and the run-wide cap (default 0, none). |
sortBy | relevant (default), recent, rating_desc or rating_asc. |
reviewFilter | One of Trip.com's tabs: all (default), latest, photos, verified, positive, negative. |
minRating | Drops reviews below this rating out of 5. Default 0, which keeps them all. |
withPhotosOnly | Keeps only reviews with at least one photo. Default false. |
reviewedAfter | Keeps reviews posted on or after this date, as YYYY-MM-DD. |
includeTripadvisor, maxTripadvisorReviews | Adds the Tripadvisor reviews shown for the attraction, up to the cap (default 50). |
locale | The locale reviews and their translations are returned in. Default en-XX. |
language | Keeps reviews written in one language: zh, en, ja, ko or th. Empty keeps all. |
dedupStoreName | The only-new store for scheduled runs. |
delayMs, maxConcurrency | Pacing. Defaults 700 and 8. |
Reviews dropped by minRating, withPhotosOnly or the date are free.
For developers
- When a filter or the only-new store keeps nothing, the read stops early: after 5 pages in a row with no review kept, or after about three times the pages
maxReviewsPerAttractionneeds. - On a newest-first order the read also stops at the
reviewedAfterdate and at the first review an earlier run returned. A scheduled run withdedupStoreNametherefore returns the reviews posted since the last run. Older reviews that an earlier run didn't return aren't filled in later. - Set
reviewedAfterwith the defaultrelevantorder and the actor reads newest first instead, and stops when it reaches the date. The log says when it has done this. rating_descandrating_ascare arranged by the actor over the most relevant reviews it read, up to 10,000 per attraction. Trip.com has no rating order.languageis a tab on Trip.com's side. Thelanguagecolumn on each row is separate: it's the review's own language, written as a lowercase language with an uppercase region where Trip.com gives one.delayMs(default 700, up to 10,000) pauses between calls andmaxConcurrency(default 8, from 1 to 8) sets how many run at once. The default is the fastest level we measured clean, and we'd only lower it if a run reports refusals or errors.- Rows are saved as they arrive. A run that Apify interrupts and restarts continues where it stopped, without saving or charging a review twice.
⬆️ Output
Each review is one row, and each row says which source it came from. This is a real one, from the Grand Palace in Bangkok on 7 October 2026:
{"input": "https://www.trip.com/travel-guide/attraction/bangkok/the-grand-palace-77012","dataType": "review","id": "850695273","reviewId": "850695273","url": "https://www.trip.com/review/the-grand-palace-77012-850695273?locale=en-XX","source": "Trip.com","poiId": "77012","attractionName": "The Grand Palace","rating": 4,"ratingScale": 5,"ratingText": "Excellent","title": null,"text": "What was open to see was beautiful and well worth it but unfortunately alot wasnt open and some stuff was closed to 11am due to ceremonial reasons. But overall worth visiting if in bangkok","language": "en-GB","postedAt": "2026-10-06T05:17:40.000Z","postedText": "1 day ago","authorName": "Footballtrainstravel","authorAvatar": "https://ak-d.tripcdn.com/images/0a25j424x9016jnupB4CC.jpg","authorUrl": "https://www.trip.com/travel-guide/personal-home/BA376FE51D6F7BBB67CF386AD584C2330BCCC38257ECB2582CA261BB11092243","helpfulCount": 0,"images": ["https://ak-d.tripcdn.com/images/0EQ2z224x9awr126799F7.jpg?proc=source%2ftrip","https://ak-d.tripcdn.com/images/0EQ5j224x9awqwhad2360.jpg?proc=source%2ftrip"],"imageCount": 6,"totalReplies": 0,"replyCount": 0,"replies": [],"tagName": "Verified booking","isPicked": false,"attractionRating": 4.4,"attractionRatingScale": 5,"attractionReviewCount": 13550,"scrapedAt": "2026-10-07T18:52:19.700Z"}
The images list is cut to two of its six links here.
Tripadvisor rows
Switch on "Include Tripadvisor reviews" and those rows use the same columns with source: "Tripadvisor". They add a title, the reviewer's authorLocation and a tripType. Their photo, reply and helpful-count columns are empty. Their text is the excerpt Trip.com shows, about 200 characters and ending in "..." where the review is longer. On 7 October 2026 that was 11 of 20 rows.
Columns worth a note
attractionNameis read from the attraction's link, or from the reviews' own links when you give a bare id. It's the name as the link spells it, in English ("The Grand Palace").tagNameis Trip.com's own tag, such as "Verified booking", where a review has one. That was 26 of the 241 reviews in the sample.titleis null on Trip.com rows. Trip.com reviews don't have titles.attractionReviewCountis Trip.com's published total. It can be higher than the number of rows you can read (see Limitations).
How many reviews can you get, and how fast?
Measured on 2 October 2026, three runs each. The time is the whole run, start-up included.
| Run | Rows | Time | Cost at the Free-plan price |
|---|---|---|---|
| One attraction, 10 reviews | 10 | 2.9 to 6.1 s | $0.024 |
| One attraction, 200 Trip.com reviews plus its Tripadvisor reviews | 231 | 8.0 to 9.0 s | $0.466 |
| One attraction, 1,500 reviews | 1,500 | 30 s | $3.004 |
| 60 attractions, up to 50 reviews each | 2,687 | 23 to 31 s | $5.496 |
| 150 attractions, up to 50 reviews each | 6,791 | 110 s | $13.884 |
A large run delivers roughly 3,700 to 7,000 reviews a minute. An hour holds about 200,000 reviews, or 5,000 attractions at 50 each.
Trip.com serves reviews fifty to a page, and the single attraction measured above holds 40,500. The Tripadvisor set is small by comparison: Trip.com shows about two dozen per attraction (24 for Universal Studios Japan on 26 September 2026), and you get all of them.
How much does it cost to scrape Trip.com reviews?
| Event | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
actor-start, per run | $0.002 | $0.002 | $0.002 | $0.002 |
attraction-resolved, per attraction | $0.002 | $0.002 | $0.002 | $0.002 |
review-scraped, per row returned | $0.002 | $0.0018 | $0.0016 | $0.0014 |
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, with proxy usage and platform usage included.
You pay for reviews you receive. Filtered reviews and ones an earlier run already gave you are free.
An attraction with no reviews yet, or an id Trip.com has no attraction for, returns one row that says so. It costs nothing, and the attraction fee isn't charged either. The same goes for an attraction that couldn't be read: its row tells you what went wrong and whether to run it again. If a page fails part-way through a long list, you keep the reviews already read and a free row says where they stopped.
- A thousand reviews of a single attraction: $0.002 + $0.002 + 1,000 × $0.002 = $2.004 ($1.404 on Business).
- A daily watch that finds 30 new reviews: $0.002 + $0.002 + 30 × $0.002 = $0.064 ($0.046 on Business).
The $5 of monthly credits on Apify's Free plan covers about 2,400 reviews with this actor: twelve runs of 200 reviews at $0.404 each.
New reviews every morning, or from your own code
Name an only-new store, put the run on an Apify Schedule, and each morning's dataset is just what was posted since the last run. From there a webhook or one of Apify's integrations can push it to Slack, a Google Sheet or your own endpoint. Review text in several languages, each row labelled, is also good raw material for a translation or sentiment model.
To call it from code, POST https://api.apify.com/v2/acts/boncross~tripcom-reviews/run-sync-get-dataset-items with the input JSON and the reviews are the response. Use apify-client (npm or PyPI) for longer runs. For an AI agent, add the Apify MCP server (mcp.apify.com). The actor appears there as boncross/tripcom-reviews, and an agent can hand it an attraction link and read the reviews back.
Limitations
- Highest and lowest rating first are orders the actor builds over the most relevant reviews it read (up to 10,000 per attraction). To read only the poor reviews, the Negative review filter is the better tool.
- Trip.com shows a selection of an attraction's Tripadvisor reviews, about two dozen. It isn't the full Tripadvisor history, and those rows have no photos.
- "Only reviews with photos" drops all Tripadvisor rows for that reason.
- Replies are returned where Trip.com publishes them. None of the 241 reviews in the 7 October 2026 sample had one, so expect the reply columns to be empty most of the time.
- Trip.com withholds some reviews from its list. The attraction's own review count includes them, which is why it can exceed the rows you get.
- Most relevant is Trip.com's own ranking. We can't check it from the rows the way we check the date and rating orders.
FAQ
How do I get only last month's reviews?
Set "Posted after" to the first day you want. The actor then reads newest first and stops at that date, so you aren't paying to page through years of older reviews.
Can I get the Tripadvisor reviews too?
Switch on "Include Tripadvisor reviews". You'll get the two dozen or so that Trip.com shows for the attraction, each marked source: "Tripadvisor" so you can keep the two sets apart or compare them.
Why is the review count higher than the rows I received?
Trip.com's published count includes reviews it withholds from the list. The actor reports that count on each row so you can see the gap.
What happens if an attraction has no reviews, or I mistype an id?
You get a row saying so, and you aren't charged for that attraction. If Trip.com reports reviews but hands back an empty list, the row asks you to run it again, also at no charge.
Does it cover hotels?
It doesn't. Hotel reviews live in a different part of Trip.com. Use Trip.com Hotel Details Scraper for those.
Which languages are the reviews in?
Whatever visitors wrote in. In the 241-review sample, zh-CN was the largest group with 146, followed by en and en-US with 24 each. Pick one language in the form if that's all you need.
Do I need proxies or a Trip.com account?
You need neither. There's no login, nothing to configure, and no proxy charge added to the price per review.
Is scraping Trip.com reviews legal?
These are public reviews that Trip.com shows to anyone without an account. Collecting public data is generally lawful. Reviews carry reviewer names, though, so treat them as personal data where your law says so, and respect Trip.com's terms in how you use them.
More from BonCross
- Trip.com Hotel Search Scraper: Every hotel Trip.com lists for a destination and your dates.
- 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.
- Accor Hotel Details Scraper: Full Accor hotel records.
Your feedback
If a review is missing, cut short or filed under the wrong language, we want to know. Open an issue on the Issues tab in Apify Console with the attraction link. We read every one and answer there.