Trip.com and Ctrip (携程) hotel guest reviews by URL or id. One row per review: 0-10 rating, 4 sub-scores, text, stay date, room, travel type, reviewer country, photos, hotel reply, source. Free hotel row: stars, address, scores. Filters before billing: language, max score (negative reviews). 酒店点评
2026-10-16 — Keyword Planner and locale documentation
Validated search terminology against Google Ads Keyword Planner and Store shelves. Added localized usage guidance and bounded examples; retained existing English phrases. Clarified locale limitations where measured. No runtime, output fields, defaults, or pricing changed.
1.0 — listing and input form reworded, 2026-10-11
No behaviour, output or price changed; the same inputs return the same rows.
The input form is reordered: which hotels, how many reviews and in what order, Trip.com's own language filter, then the two filters that cut the bill (maxRating, requireText), the free hotel row, locale, pacing and proxy. Nothing was renamed or removed.
Every input now says what to pass, with an example, its default and what it costs.maxReviewsPerHotel states that the default 200 is up to $0.80 per hotel, that 0 is capped at 20,000 per run, that languages applies before the cap and maxRating/requireText after it (pair maxRating with lowest_rated); startUrls says hotel names are not accepted; locale says it is not a filter and that nothing is translated; includeHotelRow says how to get the scores with one billed review.
The title and description name Ctrip (携程) and 酒店点评 next to Trip.com so Chinese-market searches find the actor; the pricing text lists everything that is never charged, that there is no start fee, and that a run stops at the maximum cost you set.
seo.json: native nouns (携程 酒店点评, ホテル 口コミ, 호텔 리뷰) in the meta description.
README: a section mapping common requests to the exact input, with the output row and the status contract.
2026-08-30
Reliability: a run that cannot act on its input — a URL from the wrong site, a name nothing resolves to, an empty target list, a number outside the documented range — now ends cleanly with the reason on the run card instead of as a failed run. Nothing is charged in either case; a blocked or throttled source still fails loudly.
Store listing: moved into the categories buyers actually browse (the old Business category has no Store page).
1.0 — 2026-08-29
First release.
Every guest review of any Trip.com (Ctrip) hotel: rating on Trip.com's 0-10 scale and the familiar 5-star scale, the rating word, the four sub-scores (location, cleanliness, service, amenities), review text in the language it was written in, posting and check-in dates, room type, traveler type, reviewer name, country, review count and level, helpful votes, photos, the hotel's public reply and which source the review came from (Trip.com, Ctrip, Expedia, Hotels.com).
Two ways in: Trip.com hotel URLs (the id is in the URL, so no page read is needed) or the numeric ids directly. A URL and its id count as the same hotel and are harvested once.
Order by most recent, highest rated, lowest rated or most relevant; keep only chosen languages, filtered by Trip.com itself so skipped reviews are never fetched or charged.
Two cost controls that filter before billing: maxRating keeps only reviews at or below a score, and requireText drops reviews with no words. Filtered reviews are never charged.
Free hotel row per property: name, stars, address, overall and sub-scores, review count, and the languages and traveler types its reviews come in.
Billing: pay per delivered review row. Hotel rows, status rows, filtered reviews, hotels with no reviews and failed hotels are all free.
Reliability: a refused call from Trip.com answers 200/Success with no review block — the same shape a missing request head produces — and is detected and retried on a fresh IP instead of being reported as "no reviews". An unknown hotel id is reported as such, not retried forever.