Trip.com Hotel Search Scraper
Pricing
from $0.70 / 1,000 hotel-listeds
Trip.com Hotel Search Scraper
Scrape every hotel Trip.com lists for a destination and your dates. Just add city names and get hotel name, star rating, guest score, review count, address, coordinates, cheapest nightly price, stay total and a photo. Export to CSV or Excel, or run it on a schedule. $1.00 per 1,000 hotels.
Pricing
from $0.70 / 1,000 hotel-listeds
Rating
0.0
(0)
Developer
BonCross API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What is Trip.com Hotel Search Scraper?
Type a city, set your dates, and Trip.com Hotel Search Scraper gives you the priced hotel list a guest would see on Trip.com: 1,000 hotels across five cities took 34 seconds in our own run. You don't look up any IDs first. "New York", "Paris" or "Singapore" is enough.
This is the market-wide actor of our three Trip.com hotel scrapers. It lists hotels with their cheapest price for your stay. For the full room and rate-plan grid of one hotel use Trip.com Room Rates Scraper, and for the property record and guest reviews use Trip.com Hotel Details Scraper. Trip.com's tours, tickets and attractions have their own actors, linked at the bottom.
Why choose it:
- You search by name, several cities in one run. Six destinations in five countries returned 120 hotels on 7 October 2026, and none came back empty.
- The price says what it covers. Each row has a per-night figure, a stay total, a flag for whether tax is inside, and Trip.com's own code for the price basis.
- Your party is priced the way Trip.com prices it: adults per room, number of rooms and each child's age.
- It's fast enough for a whole market. Three cities at 50 hotels each finish in about 6 seconds.
- $1.00 per 1,000 hotels on the Free plan and $0.70 on Business. There's no proxy to set up and no proxy charge.
BonCross Verified means we tested this actor against the live site before release and kept the record:
- 31 of 31 live checks on its inputs and filters passed on 8 October 2026
- 6 destinations run on 7 October 2026 in 5 countries: 120 hotels, none empty
What you can do with it:
- Search any city or area by name, or by Trip.com city ID if you already have one
- Get the cheapest available price for your exact dates, per night and per stay
- Read the star rating, guest score out of 10, review count and a review highlight
- Get coordinates, city, and how far the hotel is from the centre
- Sort by price, guest score or review count, and filter by star rating, guest score or a price ceiling
- Have a scheduled run return only hotels an earlier run hasn't already given you
- Read numbers as numbers, with Trip.com's wording kept beside them
- If a destination can't be reached, get a row that says why
People use it to build a priced hotel index for a city and a date range, to track how a market's cheapest price moves as a date approaches, to find the four-star hotels in a city above a guest score, and to assemble a shortlist of hotel IDs to price room by room afterwards.
What hotel data do you get?
| ๐จ Hotel name | Name in English |
| Hotel ID | Property category |
| โญ Star rating | Guest score out of 10 |
| Score wording | Review count |
| ๐ฌ Review highlight | ๐ Address |
| City and city ID | Country ID |
| Distance from the centre | ๐บ Latitude and longitude |
| ๐ต Price per night | Stay total |
| Price as displayed | Crossed-out price, where there is one |
| Currency | ๐ Cheapest room name |
| Availability wording | Price note (taxes and fees) |
| ๐ผ Photograph | ๐ Check-in and check-out |
| ๐ Link to the hotel page | Timestamp of the run |
How to scrape Trip.com hotel search
There's no code to write. You fill in a form and download a spreadsheet.
- Create a free Apify account and open Trip.com Hotel Search Scraper.
- Type one or more city names into Destinations.
- Set the check-in and check-out dates. For a scheduled run, leave them empty and use "Or: days ahead to check in".
- Choose how many hotels you want per destination and add any filters.
- Press Start, then download the hotels as Excel, CSV or JSON.
How much does it cost to search Trip.com hotels?
| Event | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
actor-start, per run | $0.002 | $0.002 | $0.002 | $0.002 |
destination-resolved, per destination resolved | $0.0005 | $0.0005 | $0.0005 | $0.0005 |
hotel-listed, per hotel returned | $0.001 | $0.0009 | $0.0008 | $0.0007 |
Enterprise plans pay the Business price.
$1.00 per 1,000 hotels on the Free plan, $0.70 on Business. That is the whole price: platform usage and proxy are included.
You pay for hotels returned. A destination that resolves but has no hotels costs its $0.0005 and nothing more. A destination that never resolved costs nothing and shows up as an error row.
- Three cities at 100 hotels each: $0.002 + 3 ร $0.0005 + 300 ร $0.001 = $0.3035 ($0.2135 on Business).
- One city a day for a month at 50 hotels: 30 ร ($0.002 + $0.0005 + 50 ร $0.001) = $1.575 ($1.125 on Business).
The $5 of credits in Apify's Free plan each month is about 95 runs of one city at 50 hotels, or roughly 4,700 hotels, before you pay anything.
โฌ๏ธ Input
Give it destinations and dates. A destination is a city or area name, which is matched to a Trip.com destination before the search runs. If you already know a Trip.com city ID you can give that instead.
You have two limits. "Maximum hotels per destination" (default 50, at most 1,000) caps each city separately. "Maximum rows for the whole run" stops the run once that many rows have been returned across all destinations, and 0 means no limit.
Leave the dates empty and the stay starts 30 days ahead and lasts one night. Adults (2 per room by default), rooms and children's ages all change the prices you get back, so set them to the party you care about.
One city, one night
{"destinations": ["New York"],"checkIn": "2026-11-12","checkOut": "2026-11-13","maxHotelsPerDestination": 50,"currency": "USD"}
Several cities, four-star and up, well reviewed
{"destinations": ["New York", "Paris", "Singapore"],"checkIn": "2026-11-12","checkOut": "2026-11-15","minStars": 4,"minRating": 8,"maxHotelsPerDestination": 100}
A moving window on a daily schedule, new hotels only
{"destinations": ["Paris"],"checkInDaysAhead": 30,"nights": 2,"dedupStoreName": "tripcom-seen","onlyNew": true}
By city ID, cheapest first, in pounds
{"cityIds": ["338"],"checkIn": "2026-12-24","checkOut": "2026-12-26","sortBy": "price_low","currency": "GBP"}
338 is London. New York is 633 and Paris is 192.
| Field | Notes |
|---|---|
destinations, cityIds | City or area names, or Trip.com city IDs. Either alone works. |
maxHotelsPerDestination, maxItems | The per-destination cap (default 50, at most 1,000) and the run-wide cap (0 means no limit). |
checkIn, checkOut | The stay, as YYYY-MM-DD. |
checkInDaysAhead, nights | Used when no check-in date is given: the stay starts this many days ahead (default 30) and lasts nights (default 1). |
adults, rooms, childAges | Adults per room (default 2), rooms priced as one booking (default 1), and one age per child, for example [4, 9]. |
sortBy | recommended (default), price_low, price_high, rating or most_reviewed. The per-destination limit is applied after sorting. |
minStars, minRating, maxPricePerNight | Floors on star rating (0 to 5) and guest score (out of 10), and a ceiling on the nightly price in your currency. 0 means no limit on each. |
currency, language | Currency for every price (default USD) and the locale for names and text (default en-GB). |
dedupStoreName, onlyNew | A named store that remembers the hotels you've had, and the switch that skips them. |
maxConcurrency, delayMs | How many requests run at once, and an optional pause before each one. |
For developers
minStars,minRatingandmaxPricePerNightare applied to each page after it's fetched. They return fewer rows. They don't make a run cheaper per hotel returned.- With
sortBy: "price_low"and a limit of 20 you get the 20 cheapest. Trip.com places a few featured hotels among the cheapest, as it does on its own site. - Trip.com repeats some hotels from one results page to the next. Repeats are dropped and further pages are read until each destination reaches its limit.
dedupStoreNamenames the store that remembers which hotels have been returned. WithonlyNewon, a hotel an earlier run returned is skipped.maxConcurrency(default 8, from 1 to 32) is how many requests run at once. Lower it only if a run reports errors.delayMs(default 0) adds a pause in milliseconds before each call. Values above 2000 are treated as 2000. We'd leave both alone.- Rows are saved as they arrive. If Apify restarts a run part-way, the hotels already delivered are neither repeated nor charged again.
โฌ๏ธ Output
One row per hotel, per destination, per stay. The Overview view in the Output tab shows the columns most people want, and the full record has everything in the table above.
{"id": 133835362,"hotelId": 133835362,"url": "https://www.trip.com/hotels/detail/?hotelId=133835362&checkIn=2026-11-12&checkOut=2026-11-13","name": "Nester Finn Financial District","nameEn": "Nester Finn Financial District","category": "Hotel","stars": 3,"rating": 9.3,"ratingScale": 10,"ratingText": "Great","reviewCount": 100,"reviewCountText": "100 reviews","reviewHighlight": "The staff was very friendly, and the room was very comfortable.","address": "Wall Street/Financial District","cityId": 633,"cityName": "New York","countryId": 66,"positionText": "New York | 760m from city centre (straight-line distance)","lat": 40.707517,"lng": -74.006202,"priceTotal": 309,"pricePerNight": 309,"priceText": "US$309","priceListedTotal": 450,"priceNote": "Incl. taxes & fees","pricesIncludeTax": true,"priceTypeCode": 3,"currency": "USD","cheapestRoomName": "Standard Queen Studio","isSoldOut": false,"availabilityText": "Check Availability","isAd": false,"thumbnail": "https://ak-d.tripcdn.com/images/0220612000k6bas8e3C95_R_600_600_R5_D.jpg","checkIn": "2026-11-12","checkOut": "2026-11-13","destination": "New York","scrapedAt": "2026-10-07T20:26:24.282Z"}
isAd is true when Trip.com placed the hotel in the list as an advertised listing, false when it is an ordinary result, and null when Trip.com says neither.
What the price includes depends on the language
Trip.com prices a search differently by region, and the language you choose picks the region. Read pricesIncludeTax before you compare markets.
| Language | What the price is | pricesIncludeTax |
|---|---|---|
| English (UK), German, French, English (Australia) | The whole stay with every tax and fee, including charges due at the hotel | true |
| Japanese | A nightly price with tax. priceTotal is that times the nights | true |
| English (US), English (Canada), Chinese (Hong Kong) | A nightly price before taxes and fees. priceTotal is the nightly price times the nights, also before tax | false |
priceTypeCode is Trip.com's own code for the basis: 3 or 1 the stay with tax, 2 a night with tax, 0 a night before tax. A code we haven't seen leaves the prices and the flag empty, because a guessed price is worse than a missing one. If you need a tax-inclusive price in every market, use a language from the first group or price the stay with Trip.com Room Rates Scraper.
How many hotels can you get, and how fast?
| Destinations | Hotels returned | Time |
|---|---|---|
| 1 | 20 | 5 to 7 s |
| 3 | 150 | 6 s |
| 4 | 400 | 16 s |
| 5, 200 each | 1,000, every city filled to 200 | 34 s |
These are whole runs on Apify with the default settings, start-up included, measured on 1 and 2 October 2026. Adding a city adds little time. At that rate a one-hour run lists well over 50,000 hotels.
Limits to know before you rely on it
- You get the cheapest available price per hotel. The room-by-room grid is Trip.com Room Rates Scraper's job.
- Prices are the public ones a guest sees without signing in. Member rates aren't available.
- About half of rows have a street address, because Trip.com doesn't always publish one in search results. Coordinates and a distance-from-centre line are on each row, and Trip.com Hotel Details Scraper returns the full address.
- Five of Trip.com's orders are offered: recommended, lowest price, highest price, guest score and most reviewed. Each page of ten is in order, but Trip.com can repeat or re-order a few hotels where one page meets the next. A long sorted list is in order page by page, not strictly row by row.
- Trip.com leaves a fully booked hotel out of the results.
isSoldOutis almost always false, and the list shows what can be booked. - Prices move through the day. Two runs hours apart will differ, and that's the market, not an error.
- In English (US), English (Canada) and Chinese (Hong Kong) the search price is before taxes and fees. Trip.com gives no tax-inclusive stay total as a number there.
- Depths beyond about 200 hotels per destination haven't been measured.
- Trip.com may list the same hotels for a larger party. The price changes with the party and covers every room booked.
FAQ
Do I need proxies or a Trip.com account?
Neither. You get the listings Trip.com shows a guest who isn't signed in, and there's no proxy to configure or pay for.
I searched "New York" and got hotels in New Jersey. Why?
Trip.com's recommended order for a city includes the area around it. In a run on 7 October 2026, nine of the first ten hotels for New York were across the river, in places such as Jersey City and Weehawken. Each row has cityName and a distance line ("5.2 km from New York centre"), so you can keep only the ones you want. Paris behaved the same way with its inner suburbs.
How do I search a city when I don't know its ID?
Type the name. The actor matches it to a Trip.com destination for you, and city IDs are optional. If you'd like to pin a run to an exact city, the cityId on each returned row is the number to reuse.
How do I track a market every day?
Schedule the run and use "Or: days ahead to check in" in place of fixed dates. The window then moves with each run. If you only care about hotels that are new to the list, name a seen-hotels store and switch on "Only hotels not seen before".
Why is the cheapest-first list not strictly cheapest first?
Trip.com puts a few featured hotels among the cheapest on its own site, and the actor returns its order as it is. With a limit of 20 you still get Trip.com's 20 cheapest for that order.
Can I get every room and price for a hotel?
Take the hotelId from these rows and give it to Trip.com Room Rates Scraper. That actor returns one row per rate plan.
Why do some rows have no address?
Trip.com doesn't publish a street address for every hotel in search results. The coordinates and the distance line are there on each row.
Is scraping Trip.com legal?
Scraping publicly available information is generally lawful in the EU, UK and US. This actor reads only what Trip.com shows any visitor, and no personal data. You're responsible for how you use the results.
Schedules, the API and AI agents
A daily schedule with a moving date window is the common setup for price tracking. From there the hotel list can go to Google Sheets, Slack or a webhook through Apify's integrations.
From code, POST https://api.apify.com/v2/acts/boncross~tripcom-hotel-search/run-sync-get-dataset-items with the input JSON as the body returns the hotels in one call for short runs. The standard run endpoints handle longer ones, and the apify-client package covers JavaScript and Python.
An AI agent can call it through the Apify MCP server at https://mcp.apify.com: ask for hotels in a city for given dates and let it work over the rows.
More from BonCross
- Trip.com Attraction Reviews Scraper: Trip.com reviews for any attraction.
- Accor Hotel Details Scraper: Full Accor hotel records.
- Agoda Room Rates Scraper: Every room type and rate plan Agoda shows for a hotel and stay.
- Agoda Search Scraper: Agoda search results for any destination and dates.
- Booking.com Hotel Search Scraper: Every hotel Booking.com is selling for a destination and your dates.
- Expedia Hotel Search Scraper: Every hotel Expedia and Hotels.com list for a destination and your dates.
Your feedback
Is a city resolving to the wrong place, or a price that doesn't match what Trip.com shows you? Tell us on the Issues tab in Apify Console, with the destination and dates. BonCross reads each report and replies there.