Trip.com Hotels Scraper
Pricing
Pay per usage
Trip.com Hotels Scraper
Extract real-time hotel listings, prices, reviews & availability from Trip.com. Perfect for travel research, price monitoring & competitive analysis. Get structured data instantly.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Shahid Irfan
Actor stats
0
Bookmarked
5
Total users
3
Monthly active users
2 days ago
Last modified
Categories
Share
Collect Trip.com hotel search results with hotel names, room offers, review scores, star ratings, map coordinates, and live pricing. Provide a Trip.com hotel search URL and the actor derives the request context directly from it.
Features
- Hotel search extraction — Capture listings directly from Trip.com hotel search result pages
- Price and room coverage — Collect headline room names, live display prices, deleted prices, and currencies
- Review insights — Save review score, review summary, review count text, and sub-score breakdowns
- Location context — Keep city, address, area description, zones, and map coordinates together
- Lean dataset output — Empty and null fields are removed before records are saved
Use Cases
Travel Research
Build accommodation shortlists for a city and compare ratings, room names, and displayed prices across many hotels in one run.
Pricing Intelligence
Monitor price shifts for a destination and store snapshots for trend analysis, alerts, or reporting workflows.
Market Comparison
Compare hotel categories, review performance, and location positioning across neighborhoods or travel dates.
Content Enrichment
Populate internal travel dashboards, destination guides, or search indexes with structured hotel listing data.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | Yes | None | Trip.com hotel search URL used as the source of destination, dates, guest settings, and currency |
results_wanted | Integer | No | 20 | Maximum number of hotel records to save |
max_pages | Integer | No | 3 | Safety cap for paginated requests |
proxyConfiguration | Object | No | {"useApifyProxy": false} | Optional proxy settings for repeated or blocked runs |
Output Data
Each dataset item can contain:
| Field | Type | Description |
|---|---|---|
hotelId | String | Trip.com hotel identifier |
masterHotelId | String | Master hotel identifier |
hotelType | String | Hotel type label returned by Trip.com |
hotelName | String | Displayed hotel name |
hotelNameEn | String | English hotel name |
hotelCategory | String | Category such as hotel or apartment |
starRating | Number | Star category |
reviewScore | Number | Headline review score |
reviewDescription | String | Review sentiment label |
reviewCount | Number | Parsed review count |
reviewCountText | String | Original review count text |
featuredReview | String | Short featured review sentence |
reviewSubScores | Array | Sub-score breakdowns such as cleanliness or location |
cityId | Number | Destination city identifier |
cityName | String | Destination city name |
countryId | Number | Country identifier |
provinceId | Number | Province identifier |
address | String | Address or area label |
positionDescription | String | Trip.com location summary |
positionHighlights | Array | Nearby area highlights |
zoneNames | Array | Zone names returned by Trip.com |
latitude | Number | Primary latitude |
longitude | Number | Primary longitude |
imageUrl | String | Main hotel image |
imageUrls | Array | Additional hotel images |
hotelDetailUrl | String | Trip.com hotel detail page |
roomId | String | Room identifier |
roomName | String | Headline room name |
roomType | String | Room result type |
roomQuantity | Number | Room quantity in the offer |
displayPrice | String | Formatted price shown on the listing |
price | Number | Numeric price value |
currency | String | Currency code |
originalPrice | Number | Deleted price before discount |
originalDisplayPrice | String | Deleted price as displayed text |
priceExplanation | String | Total price explanation from the listing |
payType | Number | Payment type returned by Trip.com |
checkIn | String | Check-in date in compact format |
checkOut | String | Check-out date in compact format |
freeCancellation | Boolean | Whether free cancellation is shown |
advantageTags | Array | Advantage tag titles |
promotionTags | Array | Promotion tag titles |
discountTags | Array | Discount tag titles |
encourageTags | Array | Urgency tag titles |
resultPage | Number | Result page number |
positionOnPage | Number | Approximate result position |
searchUrl | String | Search URL used for the request |
fetchedAt | String | ISO timestamp when the record was saved |
Usage Examples
Basic Extraction
Collect the first 20 hotels from the provided Trip.com search URL:
{"startUrl": "https://us.trip.com/hotels/list?city=228&provinceId=0&countryId=78&checkIn=2026-05-18&checkOut=2026-05-30&lat=0&lon=0&districtId=0&barCurr=PKR&searchType=CT&searchValue=undefined&crn=1&adult=2&children=0&searchBoxArg=t&ctm_ref=ix_sb_dl&travelPurpose=0&domestic=false","results_wanted": 20}
Extended Collection
Increase the cap and enable a proxy configuration for larger production runs:
{"startUrl": "https://us.trip.com/hotels/list?city=228&provinceId=0&countryId=78&checkIn=2026-05-18&checkOut=2026-05-30&lat=0&lon=0&districtId=0&barCurr=PKR&searchType=CT&searchValue=undefined&crn=1&adult=2&children=0&searchBoxArg=t&ctm_ref=ix_sb_dl&travelPurpose=0&domestic=false","results_wanted": 60,"max_pages": 4,"proxyConfiguration": {"useApifyProxy": true}}
Sample Output
{"hotelId": "994584","masterHotelId": "994584","hotelType": "NORMAL","hotelName": "Sunshine City Prince Hotel Ikebukuro Tokyo(Sunshine City Prince Hotel Ikebukuro Tokyo)","hotelNameEn": "Sunshine City Prince Hotel Ikebukuro Tokyo","hotelCategory": "Hotel","starRating": 4,"reviewScore": 9,"reviewDescription": "Great","reviewCount": 3359,"reviewCountText": "3,359 reviews","featuredReview": "The hotel has an excellent location with an airport shuttle conveniently available right at the entrance.","cityId": 228,"cityName": "Tokyo","countryId": 78,"provinceId": 0,"address": "Ikebukuro Commercial","positionDescription": "Near Ikebukuro Commercial | Otsuka Station","zoneNames": ["Ikebukuro Commercial"],"latitude": 35.729534,"longitude": 139.719546,"imageUrl": "https://ak-d.tripcdn.com/images/0226912000ar2syzo655B_R_600_600_R5_D.jpg","hotelDetailUrl": "https://us.trip.com/hotels/detail/?hotelId=994584","roomId": "1399464744","roomName": "City Floor Semi Double Room (17th-24th Floor)","displayPrice": "PKR 47,784","price": 47784,"currency": "PKR","originalPrice": 50856,"originalDisplayPrice": "PKR 50,856","priceExplanation": "Total price: PKR 631,977\n1 room x 12 nights incl. taxes and fees\nAdditional charges may apply","freeCancellation": true,"advantageTags": ["Free Cancellation"],"promotionTags": ["Special Discount"],"discountTags": ["6% off"],"resultPage": 1,"positionOnPage": 1,"searchUrl": "https://us.trip.com/hotels/list?city=228&provinceId=0&countryId=78&checkIn=2026-05-18&checkOut=2026-05-30&lat=0&lon=0&districtId=0&barCurr=PKR&searchType=CT&searchValue=undefined&crn=1&adult=2&children=0&searchBoxArg=t&ctm_ref=ix_sb_dl&travelPurpose=0&domestic=false","fetchedAt": "2026-04-13T00:00:00.000Z"}
Tips for Best Results
Use A Working Search URL
- Start from a Trip.com hotel result URL that already shows the destination and dates you want
- Keep the stay details inside the URL accurate because the actor derives its request context from that URL
Keep Runs Fast
- Start with
results_wanted: 20for validation and QA-friendly checks - Increase
max_pagesonly when you need deeper pagination
Use Currency Intentionally
- Use a search URL that already contains the currency you want reflected in the saved price fields
- Keep the same currency across comparison runs for cleaner downstream analysis
Use Proxies When Needed
- Larger or repeated production runs can benefit from
proxyConfiguration - If a destination gets inconsistent responses, retry with Apify Proxy enabled
Integrations
- Google Sheets — Export hotel prices and ratings for side-by-side comparison
- Airtable — Build searchable accommodation databases
- Make — Trigger downstream travel workflows automatically
- Zapier — Send hotel snapshots into business tools
- Webhooks — Forward structured search results to internal systems
Export Formats
- JSON — For APIs, warehouses, and engineering workflows
- CSV — For spreadsheet analysis
- Excel — For travel ops and reporting teams
- XML — For custom integrations
Frequently Asked Questions
Does the actor need a Trip.com hotel search URL?
Yes. The actor is designed to derive destination, dates, guest counts, and currency directly from a Trip.com hotel search URL.
Does it collect prices in other currencies?
Yes. Use a Trip.com search URL that already includes the currency you want, such as barCurr=PKR.
Does the dataset include empty fields?
No. Empty strings, null values, empty arrays, and empty objects are removed before each record is saved.
How many hotels can I collect?
You can collect as many as the search result pagination provides, constrained by your results_wanted and max_pages settings.
How is deep pagination kept stable?
The actor keeps Trip.com's search session alive across requests, which prevents older result blocks from repeating on deeper pages.
Does it include ratings and room details?
Yes. The output includes review score, review text, star category, room name, pricing fields, and offer tags when Trip.com returns them.
Support
For issues or feature requests, use the Apify Console issue channel for this actor.
Resources
Legal Notice
This actor is intended for legitimate data collection, travel research, and automation workflows. Users are responsible for complying with website terms and applicable laws in their jurisdiction.