# Trip.com Attractions & Tours Scraper (`parseforge/trip-com-attractions-scraper`) Actor

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.

- **URL**: https://apify.com/parseforge/trip-com-attractions-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Travel, Automation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.20 / 1,000 attraction or tour listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🎡 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

```json
{
  "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"
}
```

```json
{
  "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"
}
```

```json
{
  "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](https://console.apify.com/sign-up?fpr=vmoqkp).
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:

```json
{
  "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

- [Viator Scraper](https://apify.com/parseforge/viator-scraper?fpr=vmoqkp) - the same tours from the supplier side, to compare listings and pricing against Trip.com.
- [Booking.com Hotels Scraper](https://apify.com/parseforge/booking-com-hotels-scraper?fpr=vmoqkp) - pair the attractions in a city with its hotel supply and rates.
- [TripAdvisor Reviews Scraper](https://apify.com/parseforge/tripadvisor-reviews-scraper?fpr=vmoqkp) - traveller review text for the attractions you shortlist.
- [Airbnb Scraper](https://apify.com/parseforge/airbnb-scraper?fpr=vmoqkp) - short-term rental supply and pricing in the same destinations.
- [Google Travel Scraper](https://apify.com/parseforge/google-travel-scraper?fpr=vmoqkp) - flight and destination data to complete the trip picture.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp).

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** This is an independent tool, not affiliated with or endorsed by Trip.com. It collects only publicly available data.

# Actor input Schema

## `searchTerms` (type: `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.

## `startUrls` (type: `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` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `category` (type: `string`):

Restrict the run to one Trip.com category tab. Leave on All categories to sweep the whole city catalogue.

## `sortBy` (type: `string`):

Order Trip.com applies before the results are paginated. With a Max Items lower than the city total, this decides which slice you get.

## `currency` (type: `string`):

Currency every price is converted to by Trip.com before it reaches the dataset.

## `language` (type: `string`):

Language Trip.com writes product names, categories and tags in. Translations come from Trip.com itself, not from this Actor.

## `proxyConfiguration` (type: `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.

## Actor input object example

```json
{
  "searchTerms": [
    "Los Angeles"
  ],
  "startUrls": [],
  "maxItems": 10,
  "category": "",
  "sortBy": "1",
  "currency": "USD",
  "language": "en-XX",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key listing, price, rating and supplier fields

## `fullData` (type: `string`):

Complete dataset with all 40 fields, including promotions, category tags, service badges, locations and the full image gallery

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "Los Angeles"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/trip-com-attractions-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerms": ["Los Angeles"],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/trip-com-attractions-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "Los Angeles"
  ],
  "maxItems": 10
}' |
apify call parseforge/trip-com-attractions-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/trip-com-attractions-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3EcdEY3h2efKHx8Ee/builds/fC9C7IBVopxp7lhw8/openapi.json
