ParseForge Scrapers

Trip.com Attractions & Tours Scraper

parseforge/trip-com-attractions-scraper

TravelAutomationE-commerce

Scrape the whole Trip.com Things to Do catalogue for any city: attractions, day tours, tickets, experiences and transport with live prices in 31 currencies, ratings, booking counts and the supplier behind each listing. Export to CSV, JSON, Excel or XML.

Run this scraper See the API call
Total runs
5
Bookmarked
0
Last modified
5 hours ago

This scraper was last updated on .

What does the Trip.com Attractions & Tours Scraper return?

ParseForge Banner

๐ŸŽก Trip.com Attractions & Tours Scraper

๐Ÿš€ Export a city's entire Trip.com Things to Do catalogue in seconds. Los Angeles returns all 390 bookable listings in 18 seconds, 40 fields each, including the supplier behind every tour.

This Actor collects the attractions, day tours, tickets, experiences, city passes, transport and connectivity products that Trip.com sells for a destination. Give it a city name and it resolves the destination the way Trip.com's own search does, then pages through the whole catalogue and returns one row per bookable listing with its live price, rating, review count, booking volume, category tags, service badges, image gallery and the company that actually operates it.

Coverage is the full public catalogue, not a first page. Los Angeles returns 390 listings, Tokyo 1,161, Paris 927, Hong Kong 921, Bangkok 890, New York 786 and Dubai 477, and every id comes back exactly once. Prices are converted by Trip.com into any of 31 currencies, and product names, categories and tags come back in any of 24 languages.

๐ŸŽฏ Target Audience ๐Ÿ’ก Primary Use Cases
Tour and activity operators See every competing product in your city with its price, rating and booking count, and which reseller lists it.
OTAs and travel marketplaces Benchmark Trip.com's inventory against your own, and find the suppliers already distributing through it.
Revenue and pricing teams Track price points, discounts and promotions per category across cities and currencies on a schedule.
Destination marketing organisations Measure what is actually bookable in a destination, by category, and how travellers rate it.
Market analysts and researchers Build a priced, rated, timestamped dataset of the experiences economy across dozens of cities.

๐Ÿ“‹ What the Trip.com Attractions & Tours Scraper does

๐Ÿ’ก Why it matters: Trip.com is a marketplace, not a supplier. The listings it sells in one city come from dozens of different companies, and Los Angeles alone runs on 44 of them, led by Tiqets with 87 products, Viator with 85 and GetYourGuide with 53. That distribution is invisible on the site, because the supplier is never shown on a listing card. This Actor puts the operating company on every row alongside the price, the rating and the booking count, so a competitive picture that normally takes a manual audit falls out of a single run.

You give it one or more city names, or paste Trip.com Things to Do list URLs. For each destination it:

  1. Resolves the city to the destination id Trip.com's own search uses.
  2. Reports the true total the catalogue holds, so you know your coverage before the rows land.
  3. Pages through every listing, applying the category, sort, currency and language you chose.
  4. Emits one row per listing, deduplicated on the Trip.com product id.

No login, no cookie, no token, no browser and no proxy.

๐ŸŽฌ Full Demo (๐Ÿšง Coming soon)

A short walkthrough of the input, a live run and the dataset is on the way.

๐Ÿ“Š Output

Field Type Description
๐Ÿ–ผ imageUrl string Primary listing photo.
๐ŸŽก title string Product name, in the language you selected.
๐Ÿ”— url string Trip.com booking page for the listing.
๐Ÿ†” id string Trip.com product id, unique and stable.
๐Ÿ“ subtitle string Secondary product name, when Trip.com publishes one.
๐Ÿ“ searchCity string Destination this row was collected for.
๐Ÿ”ข searchCityId number Trip.com destination id for that city.
๐Ÿท category string Trip.com's own label, such as Day tours, City pass or Local cuisine.
๐Ÿท categoryTags array Every category code Trip.com files the product under.
๐Ÿš departureCity string Where the experience departs from, which is often not the searched city.
๐Ÿ”ข departureCityId number Destination id of the departure point.
๐Ÿ—บ locations array Places the product visits.
๐Ÿ’ต price number Current price per unit, in your chosen currency.
๐Ÿ’ฐ originalPrice number Price before any discount. Equals price when nothing is off.
๐Ÿ”ป discountAmount number Amount taken off the original price. 0 when there is no discount.
๐ŸŽซ hasDiscount string Yes when the listing is discounted right now.
๐Ÿ’ฑ currency string ISO code the prices are quoted in.
๐Ÿงพ priceUnit string What the price buys: Adult, person, package, and so on.
๐ŸŽ promotions array Active promotions with type, name and amount.
โญ rating number Traveller score out of 5. 0 when the listing has no reviews yet.
๐Ÿ—ฃ ratingLabel string Trip.com's word for the score, such as Outstanding. No reviews yet when unrated.
๐Ÿ’ฌ reviewCount number Number of traveller reviews.
๐ŸŽŸ bookedTotal number Total bookings Trip.com reports for the listing.
๐Ÿ“… bookedThisYear number Bookings this year.
๐Ÿ—“ bookedThisMonth number Bookings this month.
๐Ÿ”– bookedLabel string Trip.com's own booking blurb, such as 54 booked.
๐Ÿ‘ travelerRecommendation string Social-proof line, such as 94.8% of travelers recommend.
๐Ÿ‘€ recentInterest string How many people recently looked at the listing, when shown.
๐Ÿ”ข minBookingCount number Minimum units per booking.
๐Ÿข supplierName string Company that operates the product, such as Viator or Go City.
๐Ÿ› supplierLegalName string Registered entity behind the supplier.
๐Ÿ†” supplierId number Trip.com's internal supplier id, stable across cities.
โœ… isBookable string Yes when Trip.com will take a booking right now.
๐ŸŸข isOnline string Yes when the listing is live on the site.
๐ŸŽ– productTags array Service badges: free or conditional cancellation, instant confirmation, language support, and more.
๐Ÿ”ข imageCount number How many photos the listing has in total.
๐ŸŽฌ videoUrl string Product video, on the listings that have one.
๐Ÿ–ผ images array Photo gallery URLs.
๐Ÿ•’ scrapedAt string When this row was collected.
โŒ error string or null Error message for rows that could not be collected, otherwise null.
Sample records
{
  "imageUrl": "https://ak-d.tripcdn.com/images//0582812000nk617ss073F_C_568_320.jpg",
  "title": "Hollywood, Beverly Hills & Celebrity Homes Tour by Open Air Bus",
  "url": "https://www.trip.com/things-to-do/detail/24848378?language=EN&locale=en_xx",
  "id": "24848378",
  "searchCity": "Los Angeles",
  "searchCityId": 347,
  "category": "Day tours",
  "categoryTags": ["1daytrip", "CulturalExperiences", "Experiences"],
  "departureCity": "Los Angeles",
  "departureCityId": 250,
  "locations": ["Los Angeles"],
  "price": 39,
  "originalPrice": 39,
  "discountAmount": 0,
  "hasDiscount": "No",
  "currency": "USD",
  "priceUnit": "Adult",
  "rating": 4.8,
  "ratingLabel": "Outstanding",
  "reviewCount": 2249,
  "bookedTotal": 54,
  "bookedThisYear": 54,
  "bookedThisMonth": 54,
  "bookedLabel": "54 booked",
  "travelerRecommendation": "94.8% of travelers recommend",
  "minBookingCount": 1,
  "supplierName": "Viator",
  "supplierLegalName": "Viator, Inc.",
  "supplierId": 68002,
  "isBookable": "Yes",
  "isOnline": "Yes",
  "productTags": ["Book now for today", "English and more", "Conditional cancellation"],
  "imageCount": 13,
  "scrapedAt": "2026-09-04T16:17:09.782Z"
}
{
  "imageUrl": "https://ak-d.tripcdn.com/images//0586r12000qfvs4cnFBB4_C_568_320.jpg",
  "title": "Long Beach: Whale and Dolphin Watching Cruise",
  "url": "https://www.trip.com/things-to-do/detail/106355609?language=EN&locale=en_xx",
  "id": "106355609",
  "searchCity": "Los Angeles",
  "searchCityId": 347,
  "category": "Day tours",
  "categoryTags": ["1daytrip", "DayTourProducts", "Experiences", "natureanimals"],
  "departureCity": "Los Angeles",
  "departureCityId": 120518,
  "locations": ["Los Angeles"],
  "price": 45.6,
  "originalPrice": 48.01,
  "discountAmount": 2.41,
  "hasDiscount": "Yes",
  "currency": "USD",
  "priceUnit": "person",
  "promotions": [{ "type": "N/A", "name": "5% off", "amount": 2.41 }],
  "rating": 4.8,
  "ratingLabel": "Outstanding",
  "reviewCount": 399,
  "bookedTotal": 47,
  "bookedThisYear": 47,
  "bookedThisMonth": 47,
  "bookedLabel": "47 booked",
  "travelerRecommendation": "94.5% of travelers recommend",
  "minBookingCount": 1,
  "supplierName": "GetYourGuide Germany GmbH",
  "supplierLegalName": "GetYourGuide Germany GmbH",
  "supplierId": 2626961,
  "isBookable": "Yes",
  "isOnline": "Yes",
  "productTags": ["Book now for today", "Conditional cancellation", "No Shopping"],
  "imageCount": 20,
  "scrapedAt": "2026-09-04T16:17:09.782Z"
}
{
  "imageUrl": "https://ak-d.tripcdn.com/images/0355o12000jgxgtth08BB_C_568_320.jpg",
  "title": "Go city San Diego all-inclusive pass [official/50+ top attractions/San Diego Zoo]",
  "url": "https://www.trip.com/things-to-do/detail/46680882?language=EN&locale=en_xx",
  "id": "46680882",
  "searchCity": "Los Angeles",
  "searchCityId": 347,
  "category": "City pass",
  "categoryTags": ["Travelservice", "CityPass", "Experiences", "natureanimals"],
  "departureCity": "San Diego",
  "departureCityId": 1954,
  "price": 99,
  "originalPrice": 99,
  "discountAmount": 0,
  "hasDiscount": "No",
  "currency": "USD",
  "priceUnit": "Adult",
  "rating": 5,
  "ratingLabel": "Perfect",
  "reviewCount": 4,
  "bookedTotal": 78,
  "bookedThisYear": 78,
  "bookedThisMonth": 78,
  "bookedLabel": "78 booked",
  "minBookingCount": 1,
  "supplierName": "Go City",
  "supplierLegalName": "Go City Limited",
  "supplierId": 11954,
  "isBookable": "Yes",
  "isOnline": "Yes",
  "productTags": ["City passes", "Book now for today"],
  "imageCount": 5,
  "scrapedAt": "2026-09-04T16:17:09.782Z"
}

โœจ Why choose this Actor

  • The supplier on every row. Trip.com never shows who operates a listing. This Actor names the company and its Trip.com supplier id, so you can see that Los Angeles runs on 44 different suppliers led by Tiqets, Viator and GetYourGuide.
  • The whole city, not the first page. It reads the true total from Trip.com and pages to the end. Los Angeles returns all 390 listings with 390 distinct ids and no duplicates.
  • Booking volume, not just ratings. Total, yearly and monthly booking counts sit next to the review score, so you can tell a well-rated listing from a well-sold one.
  • Prices you can compare. Current price, original price, discount amount and the active promotions as separate numeric columns, converted by Trip.com into any of 31 currencies.
  • Every filter is Trip.com's own. Category, sort order, currency and language are sent to Trip.com's search, so a narrow export costs exactly the rows in that slice.
  • 24 languages. Product names, categories and tags come back translated by Trip.com itself.
  • No nulls. Identical columns on every row, with Not Disclosed and N/A sentinels instead of blanks, so CSV and Excel imports stay predictable.
  • No credentials and no start fee. No Trip.com account, no cookie, no browser, no proxy, and you pay per row only.
  • Fast. All 390 Los Angeles listings in 18 seconds.

๐Ÿ“ˆ How it compares to alternatives

This Actor Typical tours and activities scrapers
Source Trip.com, the marketplace that resells Viator, Tiqets, GetYourGuide and Klook inventory One supplier site at a time
Fields per listing 40 10 to 20
Supplier behind the listing Name, legal entity and stable id Not exposed
Booking volume Total, this year and this month Rarely, review count only
Coverage per city The full catalogue, with the true total reported first First page or a fixed cap
Discounts Original price, discount amount and promotion list as numbers A price string
Currencies 31, converted by Trip.com 1
Languages 24 1
Login, cookie or browser None Some need an account or a headless browser
Start fee per run None Often
Reviews, itineraries, availability calendars Not in scope. See the ceilings below Sometimes, at a higher price

The ceilings, stated plainly. Trip.com stops returning the supplier block once a page is larger than 20 listings, so this Actor deliberately pages at 20 to keep that column. It costs a little throughput, not any data. The listing search returns catalogue data only: individual review texts, day-by-day itineraries, ticket-option breakdowns and live availability calendars live on each product's own page and are out of scope here. Booking counts are the figures Trip.com publishes on the card, so they are its numbers and not an independent audit.

๐Ÿš€ How to use

  1. Create a free Apify account. New accounts get $5 in free credit. Sign up here.
  2. Open the Actor and go to the Input tab.
  3. Name your cities. Write them the way Trip.com does: Los Angeles, Tokyo, Paris. Add as many as you like, or paste Trip.com Things to Do list URLs instead.
  4. Set Max Items to the number of listings you want back across all cities.
  5. Pick your filters. Category, sort order, currency and language are all optional. Leaving the category on All categories sweeps the whole city.
  6. Click Start and watch the log. It names each destination it resolves and reports the true catalogue total before the rows land.
  7. Download your data from the Storage tab as CSV, JSON, Excel or XML, or pull it from the API.

Example input:

{
  "searchTerms": ["Tokyo", "Osaka"],
  "maxItems": 500,
  "category": "",
  "sortBy": "4",
  "currency": "JPY",
  "language": "ja-JP"
}

๐Ÿ’ผ Business use cases

๐Ÿ“Š Competitive pricing for a tour operator.

An operator running walking tours in Paris exports all 927 Paris listings sorted by price. Filtering category to Day tours and reading price, priceUnit, rating and bookedTotal side by side shows exactly where their product sits, which competitors discount, and which of them sell despite a lower score.

๐Ÿค Supplier and distribution mapping.

A marketplace wanting to know who already distributes through Trip.com groups a city export by supplierName and supplierId. Los Angeles resolves to 44 suppliers, and the same ids recur across cities, so a few runs produce a distribution map of the whole region.

๐Ÿ“ˆ Price and promotion monitoring.

A revenue team schedules the Actor daily over a fixed set of cities. Diffing price, originalPrice, discountAmount and promotions between runs turns Trip.com's storefront into a promotion feed, and bookedThisMonth shows whether the discounts moved anything.

๐ŸŒ Destination benchmarking.

A tourism board exports six competing cities in one run and compares catalogue size, median price, average rating and total bookings per category. The result is a like-for-like picture of how bookable each destination is, from the same source on the same day.

๐Ÿ”Œ Automating Trip.com Attractions & Tours Scraper

Schedule the Actor and route the results wherever your team already works.

  • Make and Zapier. Trigger on a finished run and push new or repriced listings into a CRM, a Notion database or an Airtable base.
  • Slack. Post listings that cross a price or discount threshold into a channel.
  • Airbyte. Load the dataset into a warehouse and track prices, ratings and booking counts over time.
  • GitHub. Commit a daily snapshot to a repository to keep an auditable price history.
  • Google Drive. Drop each run's CSV into a shared folder for the rest of the team.
  • Apify Schedules. Run the same city list daily or weekly without touching the console.

๐ŸŒŸ Beyond business use cases

๐Ÿ”ฌ Research. Tourism economists get a priced, rated, timestamped picture of the experiences economy across cities, categories and currencies.

๐Ÿ™‹ Personal. Planning a trip, export a city once and sort by rating, price or booking count instead of scrolling an infinite feed.

๐Ÿค Non-profit. Destination and heritage organisations can see which local experiences are actually bookable online and how they are rated.

๐Ÿงช Experimentation. Prices, discounts, ratings, booking counts and category tags make a tidy dataset for pricing models, demand analysis and clustering experiments.

๐Ÿค– Ask an AI assistant about this scraper

The Actor exposes its input schema through Apify's MCP server, so an AI assistant connected to your Apify account can configure and run it for you. Ask it "get me every day tour in Tokyo sorted by rating, priced in yen" and it will fill in the city, the category, the sort order and the currency itself.

โ“ Frequently Asked Questions

๐Ÿ”‘ Do I need a Trip.com account, cookie or API key? No. The Actor reads the catalogue Trip.com publishes to any visitor of its Things to Do pages. There is no login and no token to manage.

๐Ÿ”— Which inputs does it accept? City names such as Los Angeles, Trip.com Things to Do list URLs such as https://www.trip.com/things-to-do/list?city=347, or both in one run.

๐Ÿงญ How does it find my city? It sends the name to Trip.com's own destination search and uses the id that comes back, the same one the website uses. If Trip.com has no Things to Do destination under that name, the log says so and the run continues with your other cities.

๐Ÿ“ How many listings does one city return? Whatever Trip.com holds for it. Los Angeles has 390, Tokyo 1,161, Paris 927, Hong Kong 921, Bangkok 890, New York 786 and Dubai 477. The log states the true total before the rows arrive, so you always know your coverage.

๐Ÿข Where does the supplier come from? Trip.com attaches the operating company to each listing in its search response but never renders it on the site. The Actor keeps it, which is why it pages at 20 listings at a time: above that size Trip.com stops sending the supplier block.

๐Ÿ’ต How is the price reported? price is the current number, originalPrice the pre-discount number, discountAmount the difference and promotions the list of active offers. All of them are in the currency you chose, converted by Trip.com.

๐Ÿ’ฑ Which currencies and languages are supported? 31 currencies and 24 languages, each one verified against the live site. Both are Trip.com's own conversions and translations, not ours.

โญ Why do some rows show a rating of 0? Because that listing has no traveller reviews yet. Those rows carry No reviews yet in ratingLabel so you can filter them out cleanly.

๐ŸŽŸ Are the booking counts real? They are the counts Trip.com publishes on the listing card, passed through unchanged. Treat them as Trip.com's figures rather than an independent audit.

๐Ÿ’ฌ Can it return the review texts or the itinerary? No. Individual reviews, day-by-day itineraries, ticket-option breakdowns and availability calendars live on each product page and are outside this Actor's scope. Every row carries the review count and score, and the url takes you straight to the product page.

๐Ÿˆณ Why do I see Not Disclosed or N/A instead of empty cells? Because a blank cell is ambiguous. Not Disclosed means Trip.com did not publish that value for that listing, and N/A means the field does not apply.

โšก How fast is it? All 390 Los Angeles listings land in 18 seconds. Listings arrive 20 per request over plain HTTP, with no browser to start.

๐Ÿ›ก Do I need a proxy? No. Trip.com serves this data to direct requests, so the proxy is off by default. You can switch Apify Proxy on in the input if your own runs ever start getting throttled at volume.

๐Ÿ”„ Can I run it on a schedule? Yes. Save your input as a task, schedule it in Apify, and diff price, discountAmount, rating and bookedThisMonth between runs to track the market.

๐Ÿ”Œ Integrate with any app

Every run's dataset is available through the Apify API, so you can pull results into any language or platform that speaks HTTP. Apify also ships official clients for JavaScript and Python, plus native integrations for Make, Zapier, Airbyte, Slack, GitHub and Google Drive.

๐Ÿ”— Recommended Actors

๐Ÿ’ก Pro Tip: browse the complete ParseForge collection.

๐Ÿ†˜ Need Help? Open our contact form

โš ๏ธ Disclaimer: This is an independent tool, not affiliated with or endorsed by Trip.com. It collects only publicly available data.

What input does the Trip.com Attractions & Tours Scraper accept?

FieldTypeWhat it doesDefault
searchTerms array City names to pull the Trip.com Things to Do catalogue for, one per line. Trip.com resolves the name to its own destination, so write it the way the site does: Los Angeles, Tokyo, Paris, Bangkok, Dubai, New York, Hong Kong. ["Los Angeles"]
startUrls array Optional. Paste Trip.com Things to Do list URLs instead of city names, for example https://www.trip.com/things-to-do/list?city=347. Both the city id and the keyword form are read. []
maxItems integer Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 10
category string (7 options) Restrict the run to one Trip.com category tab. Leave on All categories to sweep the whole city catalogue. not set
sortBy string (4 options) Order Trip.com applies before the results are paginated. With a Max Items lower than the city total, this decides which slice you get. 1
currency string (31 options) Currency every price is converted to by Trip.com before it reaches the dataset. USD
language string (24 options) Language Trip.com writes product names, categories and tags in. Translations come from Trip.com itself, not from this Actor. en-XX
proxyConfiguration object Trip.com serves this data without a proxy, so this is off by default. Switch it on if you run very high volume from one IP. {"useApifyProxy":false}

How much does the Trip.com Attractions & Tours Scraper cost?

from $2.20 per 1,000 results

Charged forWhat it isPrice each
Attraction or tour listing One Trip.com listing with its price, rating, booking counts and supplier. $0.0022 to $0.003

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the Trip.com Attractions & Tours Scraper API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~trip-com-attractions-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchTerms": [
      "Los Angeles"
    ],
    "startUrls": [],
    "maxItems": 10,
    "sortBy": "1",
    "currency": "USD"
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "searchTerms": [
    "Los Angeles"
  ],
  "startUrls": [],
  "maxItems": 10,
  "sortBy": "1",
  "currency": "USD"
}

What do users say about the Trip.com Attractions & Tours Scraper?

No reviews yet. Be the first.

How do I report an issue with the Trip.com Attractions & Tours Scraper?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run Trip.com Attractions & Tours Scraper on Apify All scrapers