Trip.com Hotel Data Scraper: details and reviews · Apify
Trip.com Hotel Details Scraper avatar

Trip.com Hotel Details Scraper

Pricing

from $0.56 / 1,000 hotel-scrapeds

Go to Apify Store
Trip.com Hotel Details Scraper

Trip.com Hotel Details Scraper

Scrape the full Trip.com record for any hotel, with its guest reviews. Just add hotel IDs or Trip.com URLs and get names in English and the local language, star rating, guest score and sub-scores, address, coordinates, nearby places, policies, facilities, photos and reviews. $0.80 per 1,000 hotels.

Pricing

from $0.56 / 1,000 hotel-scrapeds

Rating

0.0

(0)

Developer

BonCross API

BonCross API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Categories

Features

Limited permissions

Share

What is Trip.com Hotel Details Scraper?

Trip.com Hotel Details Scraper turns a list of Trip.com hotels into two things at once: a full property record for each hotel, and its guest reviews as separate rows you can filter before you pay for them. Give it hotel IDs or hotel page links. That's the whole input.

Use it when you already know which hotels you want. To find hotels in a city, start with Trip.com Hotel Search Scraper. To price rooms, use Trip.com Room Rates Scraper. All three are for hotels, and Trip.com's attraction and tour data has its own actors.

Why this one:

  • The record and the reviews arrive together. Twelve hotels returned 12 records and 180 reviews in one run on 7 October 2026, and no hotel came back empty.
  • Trip.com does the review filtering: traveller type, room type, positive or negative, photos only, topic and language. Each filter was checked against Trip.com's own counts on 4 October 2026.
  • Reviews come in the guest's own words with Trip.com's machine translation next to them, plus four sub-scores and the room the guest stayed in.
  • The record goes past the basics: phone and email, deposit and minimum-age rules, pet, child and breakfast policies, nearby places with distances.
  • It's quick. 60 hotels with 866 reviews took 28 seconds.
  • $0.80 per 1,000 hotel records on the Free plan and $2.50 per 1,000 reviews. A hotel with no reviews costs only its record.

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
  • 12 hotels run on 7 October 2026: 12 hotels, 180 reviews, none empty

How to scrape Trip.com hotel details

You fill in a form and download a file. Nothing to install.

  1. Open a free Apify account, then go to Trip.com Hotel Details Scraper.
  2. Paste hotel IDs or Trip.com hotel page links into Hotels. A long list can be bulk-loaded with Start URLs.
  3. Decide whether you want reviews, and how many per hotel.
  4. Switch off anything you don't need (photos, facilities, nearby places, the description).
  5. Press Start. Download the rows as Excel, CSV or JSON when the run finishes.

What data can you extract?

🏨 Hotel nameName in the local language
Hotel ID⭐ Star rating
Year openedGuest score out of 10
Score wordingReview count
👍 Recommended percentageWhat guests single out
📍 Full street address🗺 Latitude and longitude
City, province and country🚉 Transport line
Nearby places and distances🕒 Check-in and check-out times
👶 Child policy🐾 Pet policy
🍳 Breakfast policyTotal photo count
Facility listHotel description
🖼 Photographs💬 Review text and machine translation
Review language and reviewer countrySub-scores for location, facilities, service and room
🛏 Room the reviewer stayed inTimestamp of the run
Extra-bed and crib policy💳 Deposit policy
Minimum check-in age📞 Phone and email
Review topics with countsPositive and negative review counts
Reviewed room types with counts

People use this to enrich a hotel list with addresses, coordinates and policies, to run sentiment analysis over reviews by property, to check pet and child policies in bulk, and to build a multilingual review set with the translations already attached.

⬇️ Input

Paste hotels. A hotel is a Trip.com hotel ID or any Trip.com hotel page link. The ID is the number after hotelId= in the page's address.

Reviews are on by default, 20 per hotel, newest first. They arrive as their own rows next to the hotel row, and you can tell the two apart by recordType. "Maximum reviews per hotel" caps each hotel. "Maximum rows for the whole run" caps the run and counts hotel rows and review rows together, with 0 meaning no limit.

One hotel with its reviews

{
"hotels": ["2193746"],
"includeReviews": true,
"maxReviewsPerHotel": 30
}

2193746 is the Sheraton Lincoln Harbor Hotel in Weehawken, New Jersey, facing Manhattan.

Records only, no reviews, lean rows

{
"hotels": ["2193746", "1565819", "687592"],
"includeReviews": false,
"includeImages": false,
"includeFacilities": true
}

That's the Sheraton, the Hôtel Mercure Paris Porte d'Orléans and Marina Bay Sands Singapore.

English reviews scoring 8 or more, lowest of those first

{
"hotels": ["https://www.trip.com/hotels/detail/?hotelId=687592"],
"includeReviews": true,
"maxReviewsPerHotel": 50,
"reviewLanguage": "en",
"reviewSort": "rating_low",
"minReviewRating": 8
}

Negative reviews from business travellers, with photos

{
"hotels": ["687592"],
"maxReviewsPerHotel": 50,
"reviewTravelTypes": ["business"],
"reviewSentiment": "negative",
"reviewPhotosOnly": true
}

A bulk-loaded list of hotels with a run-wide cap

{
"startUrls": [{ "requestsFromUrl": "https://example.com/my-hotels.txt" }],
"includeReviews": true,
"maxReviewsPerHotel": 10,
"maxItems": 5000
}

The review filters

Five filters use Trip.com's own selections. A review has to match all the filters you set. With none set, you get every review.

FieldWhat it keeps
reviewTravelTypesbusiness, family, friends, solo, couple, booked_for_others, other. Several are combined with OR.
reviewRoomIdsRoom types by id. Each hotel row lists its reviewed room types with their ids in reviewRoomTypes.
reviewSentimentpositive or negative, as Trip.com classes the review.
reviewPhotosOnlyOnly reviews with photos or a video.
reviewTopicIdsTopics by id, for example 85 Great location, 70 Delicious breakfast, 77 Easy to get around. Each hotel row lists its topics with their ids in reviewTags.

The ids make a two-step workflow: run a hotel once, read reviewTags and reviewRoomTypes on its row, then run it again with the ids you care about.

Everything else

FieldNotes
hotels, startUrlsHotel IDs or hotel page links. Start URLs takes pasted links or a file, Google Sheet or remote list.
maxItemsRows for the whole run, hotels and reviews together. 0 means no limit.
includeReviews, maxReviewsPerHotelReviews on or off (default on) and how many per hotel (default 20).
reviewSortnewest (default), relevant, rating_high or rating_low.
reviewLanguageOnly reviews written in one language: en, zh, ja, ko, de, fr, es, ru, vi, th, id, it, nl, pl, pt, tr, ar or uk. Empty means all of them.
minReviewRatingDrop reviews below this score out of 10. 0 keeps all.
checkIn, checkOut, checkInDaysAhead, nightsThe stay the record is read for. Left empty, it starts 30 days ahead and lasts one night. The dates don't change the record.
includeFacilities, includeImages, includeNearbyPlaces, includeDescriptionUp to 120 facilities, up to 40 photo URLs, up to 20 nearby places with distances, and the hotel's own description. All on by default.
languageLocale for hotel text and policies (default en-GB), for example en-US, ja-JP or de-DE.
dedupStoreName, onlyNewA named store that remembers hotels already returned, and the switch that skips them.
maxConcurrency, delayMsHow many requests run at once, and an optional pause before each.

For developers

  • maxItems counts hotel rows and review rows together. A run capped at 5,000 with 10 reviews per hotel covers about 450 hotels.
  • Within one review filter, several values are combined with OR. Across filters it's AND.
  • With a review filter on, reviewTags, positiveReviewCount and negativeReviewCount on the hotel row describe the filtered reviews. reviewRoomTypes always covers the whole hotel.
  • Room ids and topic ids aren't translated, and the same ids work in every language. The names are.
  • An unknown reviewLanguage code stops the run with a message. It doesn't fall back to every language.
  • dedupStoreName with onlyNew skips hotels an earlier run returned.
  • maxConcurrency (default 8, from 1 to 32): lower it only if a run reports errors. delayMs (default 0) pauses before each call, and values above 2000 are treated as 2000.
  • Rows are saved as they arrive. After a restart by Apify, hotels and reviews already delivered are neither repeated nor charged again.

⬆️ Output

Two kinds of row share the dataset: one hotel row per hotel and one review row per review. recordType says which is which.

A hotel row, from a run on 7 October 2026. The description is cut short here and the facility, photo and room-type lists show their first entries. The real row had 36 facilities and 10 photos.

{
"id": 2193746,
"hotelId": 2193746,
"url": "https://www.trip.com/hotels/detail/?hotelId=2193746&checkIn=2026-11-06&checkOut=2026-11-07",
"name": "Sheraton Lincoln Harbor Hotel",
"nameEn": null,
"nameLocal": "Sheraton Lincoln Harbor Hotel",
"stars": 4,
"openedYear": "1999",
"rating": 8.5,
"ratingScale": 10,
"ratingText": "Very good",
"reviewCount": 87,
"recommendText": "74% Recommended",
"highlights": ["Great location", "Great rooms"],
"address": "500 Harbor Blvd, Weehawken Township, Weehawken, New Jersey 07086, United States",
"lat": 40.758759,
"lng": -74.023298,
"cityId": 84337,
"cityName": "Weehawken",
"provinceName": "New Jersey",
"countryName": "United States",
"transportText": "2.5 km from New York Penn Station (straight line distance)",
"nearbyPlaces": [
{ "name": "Weehawken Recreation Pier", "type": "scenic", "distance": "<100m" },
{ "name": "Weehawken Cove", "type": "scenic", "distance": "270m" },
{ "name": "Spirit of New Jersey", "type": "play", "distance": "270m" }
],
"description": "Discover an oasis of calm just across the water from New York City at Sheraton Lincoln Harbor Hotel. This waterfront Weehawken hotel is conveniently located on the Hudson River, offering easy access to Manhattan via a six-minute ferry ride…",
"checkInFrom": "16:00",
"checkInUntil": "24:00",
"checkOutUntil": "12:00",
"checkInText": "16:00–24:00",
"checkOutText": "Before 12:00",
"childPolicy": "Children of all ages are welcome at this property.; Additional fees may be charged for children using existing beds. Add the number of children to get a more accurate price.",
"petPolicy": "Pets are allowed; Fee: Contact the property for details",
"breakfastPolicy": "Option: A la carte; Opening hours: [Mon - Sun] 06:30-10:30 Open; Price for extra breakfasts: Varies based on the food ordered; Contact the property to see if extra breakfast is available. If so, you can pay for it at the property.",
"extraBedPolicy": "Extra bed and cot policies may vary according to room type. Please refer to the room type details for more information.",
"depositPolicy": "Deposit Deposit required; Deposit Collection Methods A fixed amount of US$150.00 is charged.; Deposit Payment Methods This property accepts credit cards; Deposit Refund The deposit will be returned to the original account of payment within 7 days after check-out.",
"ageRequirement": "The main guest checking in must be at least 21 years old",
"ratingLocation": 9.7,
"ratingFacility": 7.6,
"ratingService": 8.2,
"ratingRoom": 8.5,
"phone": "+1-201-6175600",
"email": "frontoffice@sheratonlh.com",
"facilities": ["Indoor swimming pool", "Fitness Room", "Public parking", "Luggage Storage", "Bar", "Restaurant"],
"images": ["https://ak-d.tripcdn.com/images/200i0g0000007x9q53317_R_960_660_R5_D.jpg"],
"totalImages": 10,
"reviewTags": [
{ "id": "85", "name": "Great location", "count": 8 },
{ "id": "25", "name": "Awesome rooms", "count": 5 },
{ "id": "150", "name": "Loved the view", "count": 4 }
],
"positiveReviewCount": 19,
"negativeReviewCount": 3,
"reviewRoomTypes": [
{ "id": "85392770", "name": "Two Double Room", "count": 44 },
{ "id": "273095554", "name": "King Room", "count": 23 }
],
"recordType": "hotel",
"scrapedAt": "2026-10-07T20:26:58.456Z"
}

One of its review rows:

{
"id": "2104891074",
"hotelId": 2193746,
"url": "https://www.trip.com/hotels/detail/?hotelId=2193746",
"rating": 10,
"ratingScale": 10,
"ratingText": "Outstanding",
"ratingLocation": 10,
"ratingFacility": 10,
"ratingService": 10,
"ratingRoom": 10,
"text": "The hotel is located in Lincoln harbor, New Jersey side. It’s facing the Hudson River, you can see the beautiful harbor and Manhattan on the other side. You can either take the NY Waterway ferry or Bus 158 just 1 stop to Port Authority Bus Terminal in midtown Manhattan. Easy access to most tourist attractions. The room is spacious and quiet compared with the hotels in New York City. It’s also excellent to walk/jog in the morning or evening along the river side. You can see beautiful night view of Manhattan from Lincoln Harbor or the hotel room. Very relaxing and nice hotel to stay.",
"textTranslated": null,
"language": "en",
"travelType": "Couple",
"roomName": "King Room",
"authorName": "Guest User",
"authorCountry": "United States",
"authorReviewCount": 18,
"postedAt": "2026-09-16T12:02:13",
"stayedMonth": "2026-09",
"helpfulCount": 0,
"isRecommended": true,
"replyText": null,
"photoCount": 0,
"photos": [],
"source": "English",
"recordType": "review",
"scrapedAt": "2026-10-07T20:26:58.456Z"
}
ColumnOnMeaning
nameEnhotelThe English name when language is not English. In English, name already is, and this is null
nameLocalhotelThe name in the local language
cityIdhotelTrip.com's city id, usable in Trip.com Hotel Search Scraper
description, petPolicy, breakfastPolicy, extraBedPolicy, depositPolicy, ageRequirementhotelThe hotel's text, as published
phone, emailhotelThe property's contact details, where Trip.com shows them
reviewTagshotelThe topics guests mention most, each with its id and how many reviews mention it (comes with reviews)
reviewRoomTypeshotelThe room types guests reviewed, each with its id, name and review count (comes with reviews)
positiveReviewCount, negativeReviewCounthotelTrip.com's split of the hotel's reviews (comes with reviews)
totalImageshotelHow many photos Trip.com holds for the hotel. images has up to 40
ratingLocation, ratingFacility, ratingService, ratingRoomhotel, reviewThe four sub-scores, out of 10: location, amenities, service, and cleanliness (ratingRoom). On the hotel row they are the hotel's averages
textTranslatedreviewTrip.com's machine translation, where the review is not in your language
postedAtreviewWhen the review was posted, as Trip.com shows it (no timezone is given)
stayedMonthreviewThe month of the stay. Trip.com gives no day
sourcereviewThe site the review was written on, as Trip.com names it: a Trip.com site by its language ("English") or its sister brand ("ctrip")

How much does it cost to scrape Trip.com hotel details?

EventFree planStarterScaleBusiness
actor-start, per run$0.002$0.002$0.002$0.002
hotel-scraped, per hotel record$0.0008$0.00072$0.00064$0.00056
review-scraped, per review returned$0.0025$0.00225$0.002$0.00175

Enterprise plans pay the Business price.

$0.80 per 1,000 hotels on the Free plan, $0.56 on Business, and $2.50 per 1,000 reviews ($1.75 on Business). Those prices are the whole bill: platform usage is included and there are no proxy charges.

Reviews are where the money goes, so set them deliberately. You're charged only for review rows returned, and a hotel with none costs its record fee alone. A hotel Trip.com never answered costs nothing.

  • Records only, 1,000 hotels: $0.002 + 1,000 × $0.0008 = $0.802 ($0.562 on Business).
  • The same 1,000 hotels with 20 reviews each: $0.802 + 20,000 × $0.0025 = $50.80 ($35.56 on Business).

If you only want the records, turn reviews off. It's the difference between 80 cents and 50 dollars.

With the $5 of monthly credits on Apify's Free plan you can pull about 6,000 hotel records with reviews off, or about 100 hotels with 20 reviews each (roughly 2,000 reviews).

How fast is it, and how many reviews can you reach?

HotelsRows returnedTime
11 hotel + 10 reviews3 to 6 s
66 hotels + 153 reviews4 to 6 s
88 hotels + 263 reviews6 s
6060 hotels + 866 reviews28 s

Whole runs on Apify with default settings, start-up included, on 1 and 2 October 2026. More hotels or more reviews add little time, and an hour covers several thousand hotels.

A hotel's review count and the number of reviews you can page through are close but not equal. We measured 315 of 346 on one hotel and 5,014 of 6,437 on another, because Trip.com folds some repeat and older reviews away. You get everything reachable. Ask for more and the run stops when the pages run out.

Limits

  • Prices aren't part of this actor. Use Trip.com Hotel Search Scraper or Trip.com Room Rates Scraper.
  • Reviewer names are the display names shown publicly. Many are simply "Guest User".
  • Some hotels have no reviews. That's a real answer, and the hotel row still arrives.
  • Policies are the text Trip.com publishes, and the wording varies by property.
  • Photo lists stop at 40 per hotel, facilities at 120 and nearby places at 20. A review's own photos are all returned.
  • Review sub-scores are returned where Trip.com has them. How often each is filled across many hotels hasn't been measured.
  • With a filter on, a little under Trip.com's count can be reached by paging, as with the unfiltered list: 32 of 35 business reviews and 99 of 109 photo reviews on the hotel measured on 4 October 2026. On that hotel the negative filter returned 5 of 5 and one topic 162 of 162, and the traveller, room and photo filters returned only matching reviews.
  • Newest first is Trip.com's recency order. A few reviews can sit slightly out of posting-date order.
  • checkInUntil (the latest check-in time) was filled on 17% of the hotels sampled on 7 October 2026. Most hotels don't publish one.

FAQ

Do I need proxies or a Trip.com account?

No to both. You get what Trip.com shows a visitor who isn't signed in, and there are no proxy charges or settings.

How do I pull only the complaints?

Set "Positive or negative reviews" to negative. Trip.com decides which reviews count as negative, and you pay only for those rows. Add a traveller type or a topic id to narrow it further.

Where do the topic ids and room ids come from?

From the hotel row. reviewTags lists the topics guests mention most with an id and a count each, and reviewRoomTypes does the same for rooms. Run the hotel once with a handful of reviews, read the ids, and use them in the next run.

Why did I get fewer reviews than the hotel's review count?

Trip.com lets a visitor page through most of a hotel's reviews but not all of them. In our measurements that was 91% on a small hotel and 78% on a very large one.

Can I get reviews in one language only?

Set "Review language" to one of the 18 codes, such as en or de. If you leave it empty you get all languages, each with the original text and a translation where Trip.com has one.

How do I tell hotel rows from review rows in a spreadsheet?

Filter on the recordType column. It reads hotel or review. Review rows have the hotelId they belong to, so you can join them back.

Where do I find a hotel ID?

It's the number after hotelId= in the address bar of the hotel's Trip.com page. You can also paste the whole link. For a city's worth of IDs, run Trip.com Hotel Search Scraper.

The hotel record and the reviews are both pages Trip.com shows to any visitor, and reading public pages is generally lawful in the EU, UK and US. Reviews are public and are returned with the display name the reviewer chose. You're responsible for how you use the results, including under GDPR where it applies.

Keeping a hotel database current

A monthly schedule over your hotel list keeps policies and scores fresh. For reviews, a weekly run sorted newest first with a small per-hotel cap returns each hotel's latest reviews. Match on the review id to drop the ones you already hold.

From your own code, POST https://api.apify.com/v2/acts/boncross~tripcom-hotel-details/run-sync-get-dataset-items with the input JSON as the body returns the rows in one call for short runs. The apify-client package for JavaScript and Python handles longer ones. Through the Apify MCP server at https://mcp.apify.com, an AI agent can fetch a hotel's record and reviews and summarise what guests complain about.

More from BonCross

Your feedback

Missing a field you can see on the hotel's Trip.com page, or a review filter that returned the wrong reviews? Raise it on the Issues tab in Apify Console and include the hotel ID. We read each one and answer there.