Trip.com & Ctrip (携程) Hotel Reviews Scraper (June 2026)
Pricing
from $2.50 / 1,000 reviews
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).
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.comURLs andhotels.ctrip.comURLs together. Each URL is processed with its native locale:Trip.comURLs return the international guest-review feed;CtripURLs return the Chinese guest-review feed (withreviewerIpLocationshowing Chinese provincial origin). Duplicate URLs are deduplicated silently. - LLM-ready
markdownContentper 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 -
markdownContentis chunk-ready. - Hospitality researchers filtering by
travelType,language,reviewerIpLocation(Ctriponly), and the sub-rating dimensions for ICP-scoped datasets. - Brand reputation teams monitoring
daysSinceLastNegative,negativeReviewsCount, andownerResponseTextacross 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
- Click Try for free on this actor's Apify Store page.
- Paste one or more
Trip.comorhotels.ctrip.comhotel URLs into Hotel URLs (mix freely; up to 500 per run). - Set
maxReviewsPerHotel,fromDate/toDate,minRating/maxRating, andsortByas needed. - Click Start. Results stream into the Output tab in real time.
- 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
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array of URL | (prefilled) | Trip.com or hotels.ctrip.com hotel URLs. Mix freely. Max 500. |
maxReviewsPerHotel | integer | 200 | 1–5,000 |
sortBy | enum | mostRecent | mostRelevant / mostRecent / ratingHighToLow / ratingLowToHigh |
fromDate | date | - | YYYY-MM-DD; reviews submitted on or after |
toDate | date | - | YYYY-MM-DD; reviews submitted on or before |
minRating | integer | 1 | 1–5 |
maxRating | integer | 5 | 1–5 |
proxyConfiguration | proxy | Apify 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.htmlhttps://hotels.ctrip.com/hotels/123456.html

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).

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


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.
| Event | Rate |
|---|---|
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:
- Open the Apify Schedules tab in your Console.
- Add a new schedule and select this actor.
- Set the cron expression (e.g.,
0 6 * * *for daily at 06:00 UTC). - In the schedule's input override, set
fromDateto a sliding window - for example, yesterday's date via Apify's{{NOW - 1.day | date('YYYY-MM-DD')}}template. - (Optional) Wire an Apify webhook on
ACTOR.RUN.SUCCEEDEDto 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.

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
| Field | What it carries | Why an agent cares |
|---|---|---|
markdownContent | Per-review self-contained markdown chunk | RAG / vector DB ingestion |
subRatingCleanliness / Location / Service / Facilities | Per-review dimension scores 0–5 | Fine-grained sentiment retrieval |
travelType | Business / Family / Solo / Couple / Friends / Other | ICP filtering before embedding |
reviewerIpLocation | Chinese province (Ctrip locale only) | Geographic segmentation for Chinese market |
ownerResponseText | Hotel management reply | Reputation-management agents |
recommendRate (Hotels dataset) | 0–1 recommendation fraction | NPS-style hotel-level signal |
daysSinceLastNegative (Hotels dataset) | Days since the most recent ≤3-star review | Risk-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.