Trip.com Hotel Search Scraper avatar

Trip.com Hotel Search Scraper

Pricing

from $0.70 / 1,000 hotel-listeds

Go to Apify Store
Trip.com Hotel Search Scraper

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

BonCross API

Maintained by Community

Actor 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 nameName in English
Hotel IDProperty category
โญ Star ratingGuest score out of 10
Score wordingReview count
๐Ÿ’ฌ Review highlight๐Ÿ“ Address
City and city IDCountry ID
Distance from the centre๐Ÿ—บ Latitude and longitude
๐Ÿ’ต Price per nightStay total
Price as displayedCrossed-out price, where there is one
Currency๐Ÿ› Cheapest room name
Availability wordingPrice note (taxes and fees)
๐Ÿ–ผ Photograph๐Ÿ“… Check-in and check-out
๐Ÿ”— Link to the hotel pageTimestamp of the run

There's no code to write. You fill in a form and download a spreadsheet.

  1. Create a free Apify account and open Trip.com Hotel Search Scraper.
  2. Type one or more city names into Destinations.
  3. Set the check-in and check-out dates. For a scheduled run, leave them empty and use "Or: days ahead to check in".
  4. Choose how many hotels you want per destination and add any filters.
  5. Press Start, then download the hotels as Excel, CSV or JSON.

How much does it cost to search Trip.com hotels?

EventFree planStarterScaleBusiness
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.

FieldNotes
destinations, cityIdsCity or area names, or Trip.com city IDs. Either alone works.
maxHotelsPerDestination, maxItemsThe per-destination cap (default 50, at most 1,000) and the run-wide cap (0 means no limit).
checkIn, checkOutThe stay, as YYYY-MM-DD.
checkInDaysAhead, nightsUsed when no check-in date is given: the stay starts this many days ahead (default 30) and lasts nights (default 1).
adults, rooms, childAgesAdults per room (default 2), rooms priced as one booking (default 1), and one age per child, for example [4, 9].
sortByrecommended (default), price_low, price_high, rating or most_reviewed. The per-destination limit is applied after sorting.
minStars, minRating, maxPricePerNightFloors 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, languageCurrency for every price (default USD) and the locale for names and text (default en-GB).
dedupStoreName, onlyNewA named store that remembers the hotels you've had, and the switch that skips them.
maxConcurrency, delayMsHow many requests run at once, and an optional pause before each one.

For developers

  • minStars, minRating and maxPricePerNight are 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.
  • dedupStoreName names the store that remembers which hotels have been returned. With onlyNew on, 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.

LanguageWhat the price ispricesIncludeTax
English (UK), German, French, English (Australia)The whole stay with every tax and fee, including charges due at the hoteltrue
JapaneseA nightly price with tax. priceTotal is that times the nightstrue
English (US), English (Canada), Chinese (Hong Kong)A nightly price before taxes and fees. priceTotal is the nightly price times the nights, also before taxfalse

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?

DestinationsHotels returnedTime
1205 to 7 s
31506 s
440016 s
5, 200 each1,000, every city filled to 20034 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. isSoldOut is 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.

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

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.