Trip.com Scraper
Pricing
Pay per usage
Trip.com Scraper
Extract Trip.com hotels with live prices for your check-in and check-out dates: nightly and total price, star level, guest rating with cleanliness, location and service sub-scores, addresses, coordinates and guest reviews. Export data, run via API or schedule runs.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Matvey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
18 hours ago
Last modified
Categories
Share
Trip.com Scraper extracts public Trip.com hotel data with live prices for your own check-in and check-out dates: hotel name, nightly and total price, star level, guest rating with its sub-scores for cleanliness, location, service and amenities, review counts, district, coordinates, full address and the guest reviews published on the hotel page. No login, no API key, no partner account. Export to JSON, CSV or Excel, run it via API, schedule it, or plug it into n8n, Make, Zapier, Google Sheets or an AI agent through MCP.
What is Trip.com Scraper?
Trip.com is one of the largest online travel agencies in the world and the main booking channel for Asia. It has no public hotel API for the general web, and its pages render in the browser, so most scrapers either miss prices or run an expensive headless browser for every hotel.
This Actor reads the data Trip.com already ships inside its own pages. That means a run is fast and cheap, and โ unlike list-only tools โ the rows carry the price for the exact dates you asked for, both per night and as a total including taxes and fees.
| Mode | What you get | Input |
|---|---|---|
| ๐จ Hotels in a city | Hotel cards with price for your dates, total stay price, star level, rating and sub-scores, review count, district, coordinates, room type offered, image | city ID and dates |
| ๐ Hotel details | Full address with postcode and country, star level, rating, review count and the hotel's price range | hotel URLs |
| โญ Guest reviews | Reviews published on the hotel page: text, author, date | any hotel or city input |
Every row records checkIn, checkOut, currency and hotelId, so daily runs stack into a price history.
What data can Trip.com Scraper extract?
๐จ Hotel cards
| Field | Example |
|---|---|
name | Hotel Tjampuhan Spa |
price / totalPrice / currency | 89 / 192 / USD |
priceNote | Total price: US$192 ยท 1 room ร 2 nights incl. taxes & fees |
rating / ratingText / reviewCount | 9.3 / Great / 216 |
subScores | [{"name":"Cleanliness","score":9},{"name":"Location","score":9.6}] |
star / category | 4 / Resort |
roomName / adults / children | Two Double Room / 2 / 0 |
district / location | Ubud / `Ubud Centre |
latitude / longitude | -8.506 / 115.259 |
checkIn / checkOut | 20261015 / 20261017 |
hotelId / url / imageUrl / images | identifier, link, main photo, gallery |
๐ Hotel details
address (full street address), addressRegion, postalCode, country, star, rating, ratingBest, reviewCount, priceRange (the hotel's own "From US$70" line) and the canonical url.
โญ Guest reviews
text, author, reviewTime, score where shown, plus hotelId, hotelName and hotelUrl.
How much does it cost to scrape Trip.com?
The Actor uses Apify's pay-per-event pricing, so you pay for results and nothing per page.
| Event | Price | Per 1,000 |
|---|---|---|
| Hotel with price | $0.003 | $3 |
| Hotel detail | $0.003 | $3 |
| Guest review | $0.001 | $1 |
No browser is involved, so platform usage is a fraction of a cent per run. The Apify Free plan ($5 monthly credit) covers roughly 1,600 priced hotels or 5,000 reviews a month.
How to scrape Trip.com
- Open Trip.com Scraper on Apify and click Try for free.
- Open your city on Trip.com and copy the number from the address bar: in
trip.com/hotels/list?city=**723**the city ID is723(Bali). Paste it into Trip.com city ID. - Set Check-in and Check-out. Without dates you still get hotels and ratings, but no prices.
- Set Max hotels, tick Collect guest reviews if you want them, then click Start.
- Alternatively paste Trip.com URLs: a hotel list URL you copied from the site, or single hotel URLs.
- Open the Output tab and download JSON, CSV, Excel or XML, or read the dataset through the API.
โฌ๏ธ Input

Hotels in Bali for a two-night stay, with reviews:
{"cityId": 723,"cityName": "Bali","checkIn": "2026-10-15","checkOut": "2026-10-17","adults": 2,"maxHotels": 100,"includeReviews": true,"currency": "USD"}
Specific hotels by URL, with full addresses:
{"startUrls": ["https://www.trip.com/hotels/detail/?hotelId=982030","https://www.trip.com/hotels/detail/?hotelId=1978099"],"includeHotelDetails": true}
A hotel list URL copied straight from the browser:
{"startUrls": ["https://www.trip.com/hotels/list?city=347&cityName=Los%20Angeles"],"checkIn": "2026-11-02","checkOut": "2026-11-05","maxHotels": 60}
Prices in another currency for a family room:
{"cityId": 723,"cityName": "Bali","checkIn": "2026-12-20","checkOut": "2026-12-27","adults": 2,"children": 2,"rooms": 2,"currency": "SGD"}
โฌ๏ธ Output

One hotel with a live price:
{"type": "hotel","hotelId": "982030","name": "Hotel Tjampuhan Spa","category": "Resort","star": 4,"rating": 9.3,"ratingText": "Great","reviewCount": 216,"subScores": [{ "name": "Cleanliness", "score": 9 },{ "name": "Amenities", "score": 9 },{ "name": "Location", "score": 9.6 },{ "name": "Service", "score": 9.4 }],"price": 89,"totalPrice": 192,"currency": "USD","priceNote": "Total price: US$192 1 room ร 2 nights incl. taxes & fees","roomName": "Deluxe Room","district": "Ubud","latitude": "-8.506","longitude": "115.259","checkIn": "20261015","checkOut": "20261017","url": "https://www.trip.com/hotels/detail/?hotelId=982030","scrapedAt": "2026-09-03T09:11:52.061Z"}
One hotel detail:
{"type": "hotel_detail","hotelId": "982030","name": "Hotel Tjampuhan Spa","star": 4,"rating": 9.3,"ratingBest": 10,"reviewCount": 216,"priceRange": "From US$70","address": "Jl. Raya Campuhan, Ubud, Kecamatan Ubud, Gianyar, Bali, Bali Province, 80571, Indonesia","postalCode": "80571","country": "Indonesia","url": "https://www.trip.com/hotels/bali-hotel-detail-982030/hotel-tjampuhan-spa/"}
Rows carry a type (hotel, hotel_detail, review, error), so one dataset can be split in a spreadsheet or in code. Pages that fail after the retries become error rows with the URL and the reason.
Use cases for Trip.com data
Rate shopping and price monitoring
Run the same city and dates every morning and watch price and totalPrice move. Hotels, revenue managers and OTAs use exactly this to see where they sit against the market.
Competitive set benchmarking
Pull your competitors by hotel URL and compare price, rating and the sub-scores for cleanliness, service, location and amenities side by side.
Destination research
One run returns a whole city with stars, districts and coordinates, which is enough to map supply, plot hotels on a map or size a market before entering it.
Review mining
Collect the reviews published on hotel pages and run sentiment analysis, or feed them to an LLM to find what guests praise and complain about.
Travel content and affiliate sites
Ratings, sub-scores, price ranges and photos are enough to build a comparison page or keep a "best hotels in โฆ" list fresh automatically.
AI agents and RAG
Flat rows with literal names and a minimal input make the Actor easy to call from an agent through the Apify MCP server.
Integrations
- API โ start a run and read the dataset with any HTTP client:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("lergassy/tripcom-scraper").call(run_input={"cityId": 723, "cityName": "Bali","checkIn": "2026-10-15", "checkOut": "2026-10-17", "maxHotels": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("name"), item.get("price"), item.get("currency"))
- JavaScript โ
npm i apify-client, thenclient.actor('lergassy/tripcom-scraper').call(input). - n8n, Make, Zapier, Google Sheets, Airtable, Slack, webhooks โ through the standard Apify integrations.
- MCP โ add the Apify MCP server to Claude, ChatGPT or Cursor and let the agent call
lergassy/tripcom-scraperwith a city and dates.
Errors and troubleshooting
| What you see | What it means | Fix |
|---|---|---|
| No prices in the rows | Check-in and check-out were not set | Add both dates; Trip.com only prices a real stay |
| Fewer hotels than Max hotels | Trip.com serves one screen of hotels per view and paginates behind a signed request | The Actor already rotates sort orders to widen coverage; add more cities or dates for more rows |
error rows | The page failed after the retries | Re-run those URLs; the Actor rotates proxy sessions automatically |
| No reviews for a hotel | That hotel has no reviews rendered on its page | Check reviewCount on the hotel card first |
| Wrong city in the results | cityName alone does not identify a city | Always pass the numeric city ID from the Trip.com URL |
๐ค For AI Agents & LLM Apps
Compact reference for agents calling this Actor through the Apify MCP server or the Apify API (lergassy/tripcom-scraper).
Purpose: returns Trip.com hotel availability and prices for a city and a date range, with guest scores, stars, room type and coordinates, plus optional property details and guest reviews. Use it to answer "what do hotels in Bali cost that week", "which four-star properties are under $100" and "how do guests rate this hotel".
Minimal input:
{ "cityName": "Bali", "checkIn": "2026-10-12", "checkOut": "2026-10-15", "adults": 2, "maxHotels": 40 }
Output: one row per hotel โ type, hotelId, name, nameEn, category,
star, rating, ratingText, reviewCount, subScores, price, priceText,
currency, totalPrice, priceNote, roomName, district, location,
latitude, longitude, distance, isAd, status, imageUrl, adults,
children, checkIn, checkOut, url, city, position, scrapedAt. Detail
rows add address, postalCode, country and priceRange; review rows carry
score, text, author and reviewTime; unreadable pages arrive as
type: "error".
Behaviors an agent should know:
- Trip.com has no search by city name.
cityNameworks only for the thirty destinations Trip.com links from its own pages (Bali, Bangkok, Tokyo, Singapore, Hong Kong, London, Paris, New York and so on) โ the Actor maps those to ids and logs which id it used. For anywhere else, pass the numericcityId: open the city on trip.com and copy the number from/hotels/bali-hotels-list-723/. An unrecognised name is reported in the log rather than silently returning nothing. Hotel and hotel-list URLs also work as input. - Prices only exist for a date range. Without
checkInandcheckOutthe Actor cannot quote a nightly rate, andpricewill be empty. Always pass both. priceis per night for the given occupancy;totalPricecovers the whole stay.priceNotesays whether taxes are excluded โ quote it when reporting a price.currencyis chosen by input and defaults to USD. The number is converted by Trip.com, not by the Actor.maxHotels(default 40) andmaxPages(default 5) together cap a run.includeHotelDetailsandincludeReviewseach add a fetch per hotel.isAdmarks sponsored results; drop them before ranking by price or score.- Availability moves fast: a row is a snapshot at
scrapedAt, not a bookable quote.
โ FAQ
Is it legal to scrape Trip.com?
The Actor reads only pages any visitor can open without logging in, and it collects no personal data beyond the guest names Trip.com publishes next to reviews. You are responsible for using the data in line with local law and Trip.com's terms; consult a lawyer for your case.
Do I need a Trip.com API key or an affiliate account?
No. The Actor never authenticates.
Does it use a browser?
No. Everything is plain HTTP, which keeps runs fast and cheap.
Where do I find the city ID?
Open the city on Trip.com. The address bar shows trip.com/hotels/list?city=723&cityName=Bali, so the ID is 723. You can also paste that whole URL into Trip.com URLs instead.
Can I track prices over time?
Yes. Schedule the run daily with the same city and dates. Each row carries checkIn, checkOut and scrapedAt, so the dataset becomes a price history.
How many hotels can one city return?
Trip.com shows one screen of hotels per view and loads the rest through a signed request the Actor does not touch. To widen coverage it walks several sort orders, which typically yields a few dozen distinct hotels per city and date pair.
Does it return room-level prices for every room type?
The card carries the cheapest bookable room for your dates, with its name and the total for the stay. Full room lists sit behind the same signed request.
Can I use it with the Apify API, MCP or n8n?
Yes, see Integrations. The input is plain JSON.
Your feedback
Need another field, another Trip.com page type, or flights and trains? Open an issue in the Issues tab or leave a review โ user requests decide what ships next.
You might also like
| Actor | What it does |
|---|---|
| Airbnb Scraper | Airbnb listings for any place and dates: nightly price, rating, beds, amenities, host |
| Agoda Reviews Scraper | Hotel reviews from Agoda and Booking.com |
| Google Flights Scraper | Flight prices, airlines and price insights |
| Shopee Scraper | Products and prices across 11 Shopee marketplaces |
| Lazada Scraper | Products, prices and reviews across six Lazada marketplaces |
| Email & Phone Verifier | Checks e-mails and phone numbers in bulk: deliverability, throwaway and role flags, numbering plan, US state and time zone |