Trip.com & Ctrip Reviews Scraper - Tripcom Hotels 携程
Pricing
from $2.50 / 1,000 reviews
Trip.com & Ctrip Reviews Scraper - Tripcom Hotels 携程
Scrape Trip.com & Ctrip (携程) hotel reviews - guest reviews, star ratings, sub-ratings, review text, travel type, owner responses and reviewer data, with LLM-ready markdown. Structured JSON/CSV for analytics, AI and market research. No API, no login.
Pricing
from $2.50 / 1,000 reviews
Rating
5.0
(4)
Developer
FactDen
Maintained by CommunityActor stats
5
Bookmarked
13
Total users
6
Monthly active users
2.3 days
Issues response
14 hours ago
Last modified
Categories
Share
Trip.com & Ctrip (携程) Hotel Reviews Scraper (June 2026)
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 (withreviewer.ipLocationshowing 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 clubbed into a
subRatingsarray (Cleanliness, Location, Service, Facilities) — one tidy cell in CSV. - 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, up to 500 per run). The actor returns two structured datasets:
Reviews dataset — one row per guest review, 32 data points per row:
- Core:
overallRating,ratingLabel,reviewTitle,reviewBody,travelType,checkInMonth,language - Sub-ratings:
subRatingsarray — Cleanliness, Location, Service, Facilities — one labeled cell in CSV - Reviewer:
reviewer.name,reviewer.lifetimeReviews,reviewer.tier,reviewer.ipLocation(Ctrip locale, Chinese province) - Management response:
ownerResponse.text,ownerResponse.date - AI-ready:
markdownContent— self-contained per-review markdown block, direct vector-DB input - Translation: English machine translation for Chinese-language reviews
Hotels dataset — one summary row per hotel:
- Aggregate ratings, star classification, address, total and positive review counts
recommendationRate,daysSinceLastNegative,negativeReviewsCount— ORM signals
Both datasets are accessible via the Output-tab dropdown — see Output.
Why this scraper (vs the official API and other Apify scrapers)
Trip.com Group publishes no public reviews API for either Trip.com or Ctrip - scraping the public review pages is the only way to get this data at scale. Among the Apify actors that do, this is the only one that reads both locales in a single run and keeps the per-review depth most others drop:
| Capability | This actor | Other Apify Trip.com scrapers | Official API |
|---|---|---|---|
Trip.com (international) reviews | ✅ | ✅ (most) | ❌ none |
Ctrip (携程) Chinese reviews | ✅ same run | ❌ Trip.com-only | ❌ |
| Per-review sub-ratings (cleanliness / location / service / facilities) | ✅ | varies | ❌ |
| Hotel owner responses | ✅ | varies | ❌ |
Reviewer province via IP location (Ctrip) | ✅ | ❌ | ❌ |
| Machine translation of Chinese reviews | ✅ | varies | ❌ |
LLM-ready markdownContent per review | ✅ | ❌ | ❌ |
| No login, proxy, or anti-bot setup | ✅ | ✅ | n/a |
| Pricing | $4 / 1,000 reviews (from $2.50 on Business) | varies | n/a |
The headline difference is Ctrip (携程) coverage: international tools see only the Trip.com guest pool, while this actor also reads the Chinese-domestic Ctrip corpus - same hotels, both audiences - so you can compare Chinese vs. international sentiment for one property in a single dataset.
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,reviewer.ipLocation(Ctriponly), and the sub-rating dimensions for ICP-scoped datasets. - Brand reputation teams monitoring
daysSinceLastNegative,negativeReviewsCount, andownerResponse.textacross 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. ownerResponse.text 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 reviewer.ipLocation (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 data points). Two table views: Overview (11 columns most users want, including the clubbed
subRatingsarray) and AI ingest (8 LLM-ready columns includingmarkdownContent).


- Hotels - one summary row per hotel scraped (18 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","reviewer": {"name": "Sarah K.","lifetimeReviews": 42,"tier": "Review Specialist","isAnonymous": false,"ipLocation": null},"travelType": "Couple","roomName": "Club Room Twin Bed","language": "en","overallRating": 4.7,"ratingLabel": "Amazing","subRatings": ["Cleanliness: 5", "Location: 5", "Service: 4.5", "Facilities: 4.5"],"reviewText": "Outstanding service throughout our stay...","reviewTextTranslated": null,"isMachineTranslated": false,"recommends": true,"usefulCount": 14,"imagesCount": 3,"hasVideo": false,"ownerResponse": {"text": "Dear valued guest, thank you for your kind words...","date": "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,"subRatings": ["Cleanliness: 4.1", "Location: 4.4", "Service: 3.9", "Facilities: 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 ownerResponse.date 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.
📊 Free sample dataset - browse 800 real reviews (4 hotels, Trip.com + Ctrip) before you run, no account needed: HuggingFace · Kaggle.
Pricing
Pay-per-event. No subscription, no minimum spend.
| 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. Tiered subscription discounts reduce this automatically — down to $2.50 per 1,000 on the Business plan (37.5% off).
Cost examples:
| Scope | Reviews | Cost |
|---|---|---|
| Quick validation (1 hotel, 50 reviews) | 50 | $0.21 |
| Single hotel full history | 200 | $0.81 |
| Competitor set (10 hotels × 100 reviews) | 1,000 | $4.01 |
| Deep pull (10 hotels × 500 reviews) | 5,000 | $20.01 |
Apify's $5 new-account credit covers ~1,250 reviews on day one — enough to validate end-to-end before any spend. Incremental daily runs (50–200 new reviews per hotel) typically cost a few cents each.
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 |
subRatings | Per-review dimension scores as a labeled array, e.g. ["Cleanliness: 5", "Location: 5", "Service: 4.5", "Facilities: 4.5"] | Fine-grained sentiment retrieval |
travelType | Business / Family / Solo / Couple / Friends / Other | ICP filtering before embedding |
reviewer.ipLocation | Chinese province (Ctrip locale only) | Geographic segmentation for Chinese market |
ownerResponse.text | 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 reviewer.name field may contain real first names where the reviewer chose to display them publicly on Trip.com; the reviewer.ipLocation field (Ctrip locale only) contains the Chinese province-level location the reviewer published with the review. Anonymous reviewers are surfaced as reviewer.name: null + reviewer.isAnonymous: 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 get a $5 credit that covers ~1,250 reviews at base tier — enough to validate the actor end-to-end before any spend. Tiered discounts reduce the per-row price automatically as your Apify plan scales.
Can I scrape multiple hotels in one run?
Yes. Paste up to 500 URLs in startUrls and mix Trip.com and hotels.ctrip.com URLs freely in the same run — the actor handles both locales concurrently. Duplicate URLs are silently dropped so you don't pay for the same hotel twice.
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 full Chinese guest-review feed. This includes reviewer.ipLocation (province-level origin, e.g. "Guangdong") which only appears on the Ctrip locale. Mix Trip.com and Ctrip URLs in the same run — the actor handles both in one pass.
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. A review posted minutes ago will appear in the next run as soon as Trip.com's own indexing picks it up, typically within a few minutes.
Can I export hotel reviews to CSV or Excel?
Yes. The Output tab in Apify Console offers JSON, JSONL, CSV, Excel, and HTML downloads on both the Reviews and Hotels datasets. The Overview view is column-ordered for clean import into Google Sheets or Excel without reformatting. For large exports use the Apify API for direct dataset streaming.
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. Each incremental run typically costs a few cents per hotel. 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 the publicly exposed reviews you actually retrieved. For incremental monitoring syncs this limit is irrelevant — you'll capture every new review posted since your last fromDate regardless.
Do I need a Trip.com account, API key, or proxy to use this scraper?
No. Only an Apify account (free) is required. No Trip.com login, no Ctrip account, no API key, and no proxy configuration — Apify's built-in datacenter proxy is bundled and handles all anti-bot requirements automatically. You can run your first hotel review extraction in under 30 seconds with zero infrastructure setup.
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.
Related Actors
Working with hotel and travel review data? These actors pair well with Trip.com & Ctrip Reviews Scraper:
Cross-platform hotel review coverage
- Booking.com Review Scraper — extract Booking.com guest reviews for the same properties; cross-platform sentiment comparison
- TripAdvisor Reviews Scraper — TripAdvisor reviews with the widest global coverage across hotels, restaurants, and attractions
- Airbnb Reviews Scraper — short-stay guest reviews from Airbnb; useful for vacation-rental competitive analysis
Our other actors
- G2 Reviews Scraper — B2B SaaS competitive intelligence and battlecard data
- Indeed Jobs Scraper — job listings, salaries, and company profiles across 60+ countries
Changelog
v1.2 - Room column in the default view (2026-06-29)
The roomName field (the room type the guest booked, e.g. "City King Room") was always scraped and present in
the JSON, CSV, and API exports, but hidden from the default Overview table. It now shows as a Room column in the
Overview view of both datasets, and is included in the per-review markdownContent block for LLM ingest. No schema
or field changes - existing consumers are unaffected.
v1.1 - Cleaner output shape (2026-06-20)
Grouped related fields for tidier JSON and CSV exports (same data, fewer top-level columns): the four sub-ratings are now a single labeled subRatings array (e.g. ["Cleanliness: 4.9", "Location: 4.7", ...], one cell in CSV); reviewer attributes are clubbed under a reviewer object (name, lifetimeReviews, tier, isAnonymous, ipLocation); and the hotel reply is clubbed under an ownerResponse object (text, date). overallRating, ratingLabel, and all review-count fields stay flat. Breaking change for consumers that referenced the old flat field names.
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
⭐ Found this useful? Leaving a quick review on this page helps other travel-data teams discover the actor - and tells us what to build next. Thank you!
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.
Hiring or running labor-market research? Try our Indeed Jobs Scraper for job listings, salaries, and company profiles across 60+ countries.
Built by factden on the Apify platform. Try the Trip.com & Ctrip Reviews Scraper free with Apify's $5 monthly credit - covers ~1,250 reviews on first run.