Trip.com & Ctrip (携程) Hotel Reviews Scraper (June 2026) avatar

Trip.com & Ctrip (携程) Hotel Reviews Scraper (June 2026)

Pricing

from $2.50 / 1,000 reviews

Go to Apify Store
Trip.com & Ctrip (携程) Hotel Reviews Scraper (June 2026)

Trip.com & Ctrip (携程) Hotel Reviews Scraper (June 2026)

Scrape hotel reviews from Trip.com and Ctrip (携程). 32 fields per review: sub-ratings (cleanliness, location, service, facilities), owner responses, reviewer IP location(ctrip), travel type, and LLM-ready markdownContent. Zero setup, no login. $4 per 1,000 reviews (from $2.50 on Business).

Pricing

from $2.50 / 1,000 reviews

Rating

5.0

(1)

Developer

FactDen

FactDen

Maintained by Community

Actor stats

2

Bookmarked

3

Total users

2

Monthly active users

2 days ago

Last modified

Share

Extract hotel reviews from both Trip.com (international) and hotels.ctrip.com / 携程 (China) in a single run - no login, no proxy setup, no code required.

$4 per 1,000 reviews · $0.01 per run · New Apify users get ~1,250 reviews free with the $5 platform credit.

Contents: What's different · Who it's for · Use cases · Step by step · Input · Output · Pricing · Schedule · AI agents & RAG · GDPR · FAQ · Changelog · Support


What's different

Two things no other Apify actor for Trip.com or Ctrip does today:

  • Both locales in one run. Add Trip.com URLs and hotels.ctrip.com URLs together. Each URL is processed with its native locale: Trip.com URLs return the international guest-review feed; Ctrip URLs return the Chinese guest-review feed (with reviewerIpLocation showing Chinese provincial origin). Duplicate URLs are deduplicated silently.
  • LLM-ready markdownContent per review. Each review row carries a self-contained markdown block - rating, travel type, body, translation, and the hotel's response - ready to embed straight into a vector DB. No reformatting, no glue code.

Plus:

  • Per-review sub-ratings (subRatingCleanliness, subRatingLocation, subRatingService, subRatingFacilities).
  • Owner/management responses with response date.
  • Recommendation rate, days-since-last-negative-review, total negative review count (ORM signals for brand monitoring).
  • Reviewer credibility tier (Trip.com's "Review Specialist" / "Review Expert" badge).

No-setup checklist:

  • No login or account required
  • Apify Proxy bundled (datacenter; switch to RESIDENTIAL via the Advanced section for heavy runs)
  • No code required (form-based input in the Apify Console)
  • Pay-per-event pricing - no subscription, no commitment

What does this scraper do?

You paste hotel URLs (Trip.com or hotels.ctrip.com - mix freely). The actor returns two structured datasets:

  • Reviews - one row per guest review (32 fields including sub-ratings, owner responses, translations, and LLM-ready markdown).
  • Hotels - one summary row per hotel (aggregate ratings, star classification, address, recommendation rate, sentiment signals).

Both are accessible via the Output-tab dropdown - see Output.


Who this scraper is for

  • Hotel revenue managers tracking competitor properties' rating trends and sub-rating breakdowns on Trip.com.
  • OTA analysts comparing Chinese vs. international guest sentiment for the same property in one dataset.
  • AI / RAG engineers ingesting hotel reviews into vector databases - markdownContent is chunk-ready.
  • Hospitality researchers filtering by travelType, language, reviewerIpLocation (Ctrip only), and the sub-rating dimensions for ICP-scoped datasets.
  • Brand reputation teams monitoring daysSinceLastNegative, negativeReviewsCount, and ownerResponseText across a portfolio.

Common use cases

1. Daily sentiment monitoring for a hotel chain portfolio

{
"startUrls": [
"https://www.trip.com/hotels/macau-hotel-detail-344983/galaxy-hotel/",
"https://www.trip.com/hotels/hangzhou-hotel-detail-70492076/",
"https://hotels.ctrip.com/hotels/1286148.html"
],
"maxReviewsPerHotel": 50,
"sortBy": "mostRecent",
"fromDate": "2026-06-01"
}

Pair with the Schedule section to run nightly with fromDate set to yesterday.

2. Negative-review mining for a competitor analysis

{
"startUrls": ["https://www.trip.com/hotels/macau-hotel-detail-344983/galaxy-hotel/"],
"maxReviewsPerHotel": 500,
"sortBy": "ratingLowToHigh",
"minRating": 1,
"maxRating": 2
}

Sort lowest-rating first and cap rating at 2 to surface only the painful reviews. ownerResponseText shows how the hotel handles complaints.

3. Chinese-market intelligence with provincial geolocation

{
"startUrls": ["https://hotels.ctrip.com/hotels/1286148.html"],
"maxReviewsPerHotel": 200,
"sortBy": "mostRecent"
}

Ctrip-locale rows carry reviewerIpLocation (e.g., "发布于浙江" - Posted from Zhejiang), enabling province-level Chinese guest segmentation.

4. Backfill a full review history for AI / RAG ingestion

{
"startUrls": ["https://www.trip.com/hotels/macau-hotel-detail-344983/galaxy-hotel/"],
"maxReviewsPerHotel": 5000,
"sortBy": "mostRelevant"
}

The markdownContent field on each row is a self-contained chunk ready for direct embedding - see AI agents & RAG.


How to scrape Trip.com reviews - step by step

  1. Click Try for free on this actor's Apify Store page.
  2. Paste one or more Trip.com or hotels.ctrip.com hotel URLs into Hotel URLs (mix freely; up to 500 per run).
  3. Set maxReviewsPerHotel, fromDate / toDate, minRating / maxRating, and sortBy as needed.
  4. Click Start. Results stream into the Output tab in real time.
  5. Switch the Output tab dropdown between Reviews and Hotels to inspect either dataset. Download as JSON, CSV, or Excel.

Trip.com caps accessible reviews around 1,000 per high-volume hotel; completenessPct on the Hotels dataset tracks how much you got of what's exposed. See Pricing below for per-event rates and tiered discount ladder.


Input

FieldTypeDefaultDescription
startUrlsarray of URL(prefilled)Trip.com or hotels.ctrip.com hotel URLs. Mix freely. Max 500.
maxReviewsPerHotelinteger2001–5,000
sortByenummostRecentmostRelevant / mostRecent / ratingHighToLow / ratingLowToHigh
fromDatedate-YYYY-MM-DD; reviews submitted on or after
toDatedate-YYYY-MM-DD; reviews submitted on or before
minRatinginteger11–5
maxRatinginteger51–5
proxyConfigurationproxyApify Proxy (datacenter)Override to Residential for heavy runs

URL examples:

  • https://www.trip.com/hotels/macau-hotel-detail-344983/galaxy-hotel/
  • https://hotels.ctrip.com/hotels/1286148.html
  • https://hotels.ctrip.com/hotels/123456.html

Trip.com and Ctrip Hotel Reviews Scraper input form on Apify Store with emoji-rich field titles, two prefilled demo URLs (Galaxy Macau and Beijing Sofitel), date range and rating filters, and a one-line section description above each group


Output

Two named alias datasets, accessible via the Output tab dropdown in the Apify Console:

  • Reviews - one row per review (32 fields). Two table views: Overview (14 columns most users want, including per-review sub-ratings) and AI ingest (8 LLM-ready columns including markdownContent).

Trip.com and Ctrip Hotel Reviews Scraper Reviews dataset Overview view on Apify Store showing 14 columns including hotelName, reviewer travel type, overall rating, four per-review sub-ratings (cleanliness, location, service, facilities), review text and owner hotel response for Galaxy Hotel Macau

  • Hotels - one summary row per hotel scraped (21 fields): aggregate ratings, sub-ratings, recommendation rate, days-since-last-negative, completeness percentage.

Trip.com and Ctrip Hotel Reviews Scraper Hotels dataset Overview view on Apify Store showing the per-hotel summary row with parsed star classification, address, aggregate sub-ratings (cleanliness, location, service, facilities), recommend rate, days-since-last-negative review and completeness percentage for Galaxy Hotel Macau and Beijing Sofitel

Trip.com and Ctrip Hotel Reviews Scraper run log on Apify Store with startup banner, per-hotel progress lines, final summary showing reviews scraped and estimated cost, plus support contact in the closing block

Sample review row

{
"reviewId": "1972372932",
"hotelId": 344983,
"hotelName": "Galaxy Hotel",
"hotelUrl": "https://www.trip.com/hotels/macau-hotel-detail-344983/galaxy-hotel/",
"source": "trip",
"submittedAt": "2026-05-12T14:32:00",
"checkInMonth": "2026-04",
"reviewerName": "Sarah K.",
"reviewerLifetimeReviews": 42,
"reviewerTier": "Review Specialist",
"reviewerIsAnonymous": false,
"reviewerIpLocation": null,
"travelType": "Couple",
"roomName": "Club Room Twin Bed",
"language": "en",
"overallRating": 4.7,
"ratingLabel": "Amazing",
"subRatingCleanliness": 5,
"subRatingLocation": 5,
"subRatingService": 4.5,
"subRatingFacilities": 4.5,
"reviewText": "Outstanding service throughout our stay...",
"reviewTextTranslated": null,
"isMachineTranslated": false,
"recommends": true,
"usefulCount": 14,
"imagesCount": 3,
"hasVideo": false,
"ownerResponseText": "Dear valued guest, thank you for your kind words...",
"ownerResponseDate": "2026-05-14T09:12:00",
"markdownContent": "# Galaxy Hotel review (Trip.com)\n\n**Rating:** 4.7/5 ★★★★☆\n**Travel type:** Couple\n\n## Review\nOutstanding service throughout our stay...\n\n## Hotel response\nDear valued guest, thank you for your kind words...",
"extractedAt": "2026-06-06T10:15:00+00:00"
}

Sample hotel summary row

{
"hotelId": 344983,
"hotelName": "Galaxy Hotel",
"source": "trip",
"url": "https://www.trip.com/hotels/macau-hotel-detail-344983/galaxy-hotel/",
"hotelStars": 5,
"hotelAddress": "Galaxy Macau, Cotai, Macau, China",
"overallRating": 4.0,
"ratingLabel": "Very good",
"reviewsCount": 356,
"displayedReviewsCount": 305,
"subRatingCleanliness": 4.1,
"subRatingLocation": 4.4,
"subRatingService": 3.9,
"subRatingFacilities": 3.7,
"recommendRate": 0.7,
"mostRecentNegativeDate": "2026-05-24",
"daysSinceLastNegative": 4,
"negativeReviewsCount": 40,
"reviewsExtracted": 200,
"completenessPct": 56.2,
"extractedAt": "2026-06-06T10:15:30+00:00"
}

Timestamps: submittedAt, checkInMonth, and ownerResponseDate come from Trip.com in the hotel's local time zone with no offset - we preserve them as naive ISO strings rather than mislabeling them as UTC. extractedAt is our scrape time in UTC.


Pricing

Pay-per-event. No subscription, no minimum.

EventRate
apify-actor-start$0.01 per run
apify-default-dataset-item$0.004 per review row

Effective rate: $4 per 1,000 reviews. Apify's $5 new-account credit covers approximately 1,250 reviews on day one - enough to validate the actor end-to-end before any spend. Tiered subscription discounts apply automatically when your Apify plan qualifies, down to $2.50 per 1,000 on the Business plan (37.5% off).


How to run this Trip.com reviews API on a schedule

For continuous monitoring, daily delta refreshes, or ORM dashboards:

  1. Open the Apify Schedules tab in your Console.
  2. Add a new schedule and select this actor.
  3. Set the cron expression (e.g., 0 6 * * * for daily at 06:00 UTC).
  4. In the schedule's input override, set fromDate to a sliding window - for example, yesterday's date via Apify's {{NOW - 1.day | date('YYYY-MM-DD')}} template.
  5. (Optional) Wire an Apify webhook on ACTOR.RUN.SUCCEEDED to push the dataset into Snowflake, BigQuery, S3, or your CRM.

Combined with sortBy: "mostRecent", the actor short-circuits once it crosses the fromDate floor - incremental runs are fast and cheap.


AI agents & RAG - using the data with LLMs

The markdownContent field on every review is a self-contained markdown block - title, rating, travel type, body, translation, and hotel response inlined. Designed for direct vector-DB ingestion and LLM context windows. Capped at 100 KB per row.

Trip.com and Ctrip Hotel Reviews Scraper AI ingest LLM-ready view on Apify Console showing markdownContent column with self-contained per-review markdown chunks, original Chinese text, English translation, language code, rating, travel type and source ready for direct vector database ingestion and RAG pipelines

Use the standard Apify API or client libraries to run the actor and iterate the Reviews dataset - markdownContent is your ready-to-embed chunk.

Field glossary for AI agents

FieldWhat it carriesWhy an agent cares
markdownContentPer-review self-contained markdown chunkRAG / vector DB ingestion
subRatingCleanliness / Location / Service / FacilitiesPer-review dimension scores 0–5Fine-grained sentiment retrieval
travelTypeBusiness / Family / Solo / Couple / Friends / OtherICP filtering before embedding
reviewerIpLocationChinese province (Ctrip locale only)Geographic segmentation for Chinese market
ownerResponseTextHotel management replyReputation-management agents
recommendRate (Hotels dataset)0–1 recommendation fractionNPS-style hotel-level signal
daysSinceLastNegative (Hotels dataset)Days since the most recent ≤3-star reviewRisk-scoring + alerting agents

Data sources & GDPR

This actor extracts publicly visible review data from Trip.com and hotels.ctrip.com. The reviewerName field may contain real first names where the reviewer chose to display them publicly on Trip.com; the reviewerIpLocation field (Ctrip locale only) contains the Chinese province-level location the reviewer published with the review. Anonymous reviewers are surfaced as reviewerName: null + reviewerIsAnonymous: true. You are responsible for ensuring your downstream use of this data complies with GDPR, China's PIPL, and any other applicable data-protection regulations in your jurisdiction.


FAQ

How much does it cost to scrape 10,000 Trip.com reviews? $0.01 (run start) + 10,000 × $0.004 = $40.01. New Apify accounts have a $5 credit that covers ~1,250 reviews.

Can I scrape multiple hotels in one run? Yes - paste up to 500 URLs in startUrls. Mix Trip.com and hotels.ctrip.com URLs freely. Duplicate URLs are dropped silently.

Does this work for Chinese-language (携程) reviews? Yes. Paste any hotels.ctrip.com/hotels/{id}.html or hotels.ctrip.com/international/{id}.html URL and the actor returns the Chinese guest-review feed - including reviewerIpLocation (province-level origin) which only appears on the Ctrip locale.

How does this compare to other Trip.com scrapers on Apify? Three things unique to this actor: (1) bilingual - both Trip.com and Ctrip (携程) in one run, no other scraper does both; (2) per-review sub-ratings - cleanliness / location / service / facilities scores on every row, not just the hotel-level aggregate; (3) markdownContent chunks - self-contained per-review markdown ready for direct vector DB / RAG ingestion. Plus parsed hotel star classification + address pulled from the detail page.

How fresh is the review data? Real-time. Every run pulls fresh data from Trip.com and Ctrip directly. There is no caching layer between the upstream and your dataset.

Can I export hotel reviews to CSV or Excel? Yes. The Output tab in the Apify Console offers JSON, JSONL, CSV, Excel, and HTML export formats on both the Reviews and Hotels datasets.

Can I scrape incrementally instead of refetching everything? Yes. Set sortBy: "mostRecent" and fromDate to your last successful scrape date. The actor stops paginating once it crosses the date floor - much faster and cheaper than a full re-scrape. See Schedule for cron + webhook wiring.

How many reviews can I get per hotel? Trip.com caps publicly accessible reviews around 1,000 per high-volume property. The Hotels dataset's completenessPct field tells you what fraction of what's exposed you actually retrieved. For incremental syncs that's irrelevant - you'll get every new review since fromDate.

Is scraping Trip.com legal? This actor extracts publicly visible data - no login is required, no rate-limit bypass is performed. Whether your downstream use is permissible depends on your jurisdiction's regulations (GDPR, PIPL, CCPA, etc.) and on Trip.com's Terms of Service for the data category you're collecting. Reviewing both is your responsibility before deploying at scale.


Changelog

v1.0 - Public launch (2026-06-08)

Initial public release. Bilingual Trip.com + Ctrip review extraction, 32-field reviews + 21-field hotels schema, LLM-ready markdownContent, pay-per-event pricing with tiered discounts.


Support & maintenance

Actively maintained. Bug reports and feature requests are typically triaged within 1–2 business days.

  • Apify Issues tab - primary support channel; we get notified instantly and other users can upvote your report. Please include the run ID, one example URL, and what you expected vs what you saw.
  • Email - support@factden.com for private / billing / partnership questions.

Looking for a software-product review scraper? See our sibling actor G2 Reviews Scraper for B2B SaaS competitive intelligence.