Trip.com Travel Public Hotel Reviews API
Read the public reviews on a Trip.com hotel page, page by page.
- 1 credit per call
- Failed calls are free
- Updated
- tripcom.hotel.reviews.list
{ "collected_at": "2026-10-16T12:26:49Z", "has_more": true, "hotel_id": "2985758", "native_count": 3, "source_page_count": 10, "source_page_size": 10, "source_total_count": 2615, "source_url": "https://www.trip.com/hotels/london-hotel-detail-2985758/royal-national-hotel-london/", "reviews": [ { "rating": 10, "original_language": "ko", "original_text": "조식은 아주 잘 나옵니다. 아침 3일간 메뉴는 같습니다. 그래도 다른곳에 식비를 생각하면 이정도는 아주 좋은듯 합니다. 그래도 안전한 편에 속합니다. 하나 불편한점은 화장실 수압이 약합니다. 그거 외에는 아주 지리적인 면에서 좋습니다.", "rating_scale": 10, "review_id": "2139924487", "source_date": "2026-10-14 16:43:51", "source_date_timezone": "not_provided", "translated_language": "en", "translated_text": "The breakfast is very good. The menu stayed the same for all 3 days, but considering how much you'd spend on food elsewhere, this is quite …" }, { "rating": 10, "original_language": "zh", "original_text": "房間真的很大,酒店裡面有超多房間,像迷宮,不太好找。其他一切都很完美。\n地理位置優越,去哪裡都很方便。", "rating_scale": 10, "review_id": "2126642559", "source_date": "2026-10-05 01:19:15", "source_date_timezone": "not_provided", "translated_language": "en", "translated_text": "The room was really spacious, and the hotel itself has so many rooms it's like a maze, making it a bit hard to find your way around. Everyt…", "property_responses": [ { "text": "尊敬的賓客,您好!感謝您對我們酒店的支持與肯定!很高興您喜歡我們寬敞的房間,也享受了優越的地理位置帶來的便利。不過,我們很抱歉您覺得酒店內部像迷宮一樣不太好找。我們的前台24小時開放,隨時樂意為您指引方向。説到位置,酒店坐落在布盧姆斯伯裏的核心地帶,距離羅素廣場地鐵站僅一分鐘,…", "language": "zh", "source_date": "2026-10-08 00:00:00", "source_type_code": 3 } ] } ]}
| # | Rating | Original language | Original text | Rating scale | Source date | Source date timezone | Translated language | Translated text | Review id |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 10 | ko | 조식은 아주 잘 나옵니다. 아침 3일간 메뉴는 같습니다. 그래도 다른곳에 식비를 생각하면 이정도는 아주 좋은듯 합… | 10 | 2026-10-14 16:43:51 | not_provided | en | The breakfast is very good. The menu stayed the same for all 3 … | 2139924487 |
| 2 | 10 | zh | 房間真的很大,酒店裡面有超多房間,像迷宮,不太好找。其他一切都很完美。 地理位置優越,去哪裡都很方便。 | 10 | 2026-10-05 01:19:15 | not_provided | en | The room was really spacious, and the hotel itself has so many … | 2126642559 |
| 3 | 6 | zh | 地點方便,附近有很多餐廳及便利店。 職員有禮。 房間清潔但有年代感。 房間只有一般用品,如毛巾,杯,水煲。注意沒有拖鞋,牙刷 … | 10 | 2026-09-29 16:56:14 | not_provided | en | The location is convenient, with many restaurants and convenien… | 2119661758 |
What you send
The input
object of the request, with every field the endpoint accepts.
| Field | Type | Required | What it does | Example |
|---|---|---|---|---|
| hotel_url | string | yes | Discovered public Trip.com hotel detail URL | https://www.trip.com/hotels/london-hotel-detail… |
| page | integer | no | One-based result page to fetch. From 1 to 20. Default: 1. |
1 |
Fields it returns
What each record in the response holds, with the values from the sample above.
| Field | Type | What it is | Example |
|---|---|---|---|
| reviews[].rating | integer | The guest's rating. | 10 |
| reviews[].original_language | string | The language the review was written in. | ko |
| reviews[].original_text | string | The review as written. | 조식은 아주 잘 나옵니다. 아침 3일간 메뉴는 같습니다. 그래도 다른곳에 식비를 생각하면 이정도는 아주 좋은듯 합… |
| reviews[].rating_scale | integer | The highest rating possible. | 10 |
| reviews[].review_id | string | Trip.com's ID for the review. | 2139924487 |
| reviews[].source_date | string | When the review was posted. | 2026-10-14 16:43:51 |
| reviews[].source_date_timezone | string | not_provided | |
| reviews[].translated_language | string | The language of the translation. | en |
| reviews[].translated_text | string | The review translated by Trip.com. | The breakfast is very good. The menu stayed the same for all 3 … |
| reviews | array | The reviews. | 3 records |
| collected_at | string | When these reviews were collected. | 2026-10-16T12:26:49Z |
| has_more | boolean | Whether more reviews follow; ask for the next page number. | true |
| hotel_id | string | Trip.com's ID for the hotel. | 2985758 |
| native_count | integer | 3 | |
| source_page_count | integer | 10 | |
| source_page_size | integer | 10 | |
| source_total_count | integer | 2615 | |
| source_url | string | The hotel page the reviews were read from. | https://www.trip.com/hotels/london-hotel-detail-2985758/royal-n… |
Call it from your code, or ask your agent
Set UPSCRAPE_API_KEY to your key and copy a working request.
curl --request POST \ --url https://data.upscrape.com/execute \ --header "Authorization: Bearer $UPSCRAPE_API_KEY" \ --header "Content-Type: application/json" \ --header "Prefer: wait=30" \ --data '{ "capability": "tripcom.hotel.reviews.list", "input": { "hotel_url": "https://www.trip.com/hotels/london-hotel-detail-2985758/royal-national-hotel-london/", "page": 1 }}'
import jsonimport osimport requestspayload = json.loads(r'''{ "capability": "tripcom.hotel.reviews.list", "input": { "hotel_url": "https://www.trip.com/hotels/london-hotel-detail-2985758/royal-national-hotel-london/", "page": 1 }}''')response = requests.post( "https://data.upscrape.com/execute", headers={ "Authorization": f"Bearer {os.environ['UPSCRAPE_API_KEY']}", "Content-Type": "application/json", "Prefer": "wait=30", }, json=payload,)response.raise_for_status()print(json.dumps(response.json(), indent=2))
const response = await fetch("https://data.upscrape.com/execute", { method: "POST", headers: { "Authorization": `Bearer ${process.env.UPSCRAPE_API_KEY}`, "Content-Type": "application/json", "Prefer": "wait=30", }, body: JSON.stringify({ "capability": "tripcom.hotel.reviews.list", "input": { "hotel_url": "https://www.trip.com/hotels/london-hotel-detail-2985758/royal-national-hotel-london/", "page": 1 }}),});if (!response.ok) { throw new Error(`Upscrape request failed: ${response.status}`);}console.log(JSON.stringify(await response.json(), null, 2));
https://data.upscrape.com/mcp
With Upscrape, get the Trip.com Travel public hotel reviews for https://www.trip.com/hotels/london-hotel-detail-2985758/royal-national-hotel-london/. Tell me what it costs before you run it, then show the results as a table.
More from the Trip.com Travel API
- Trip.com Travel Hotel Search API1 credit
- Trip.com Travel Hotel Detail API1 credit
- Trip.com Travel Attractions Search API1 credit
- Trip.com Travel Attraction Detail API1 credit
- Trip.com Travel Flight Search API1 credit
- Trip.com Travel Train Search API1 credit
- Trip.com Travel Car Rental Search API1 credit
The same data from other platforms
Trip.com Travel Public Hotel Reviews API FAQ
The short answers. The docs have the long ones.
How much does the Trip.com Travel Public Hotel Reviews API cost?
1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.
What do I send?
Send hotel_url. The input fields below list every option with its type and limits.
Do I need a Trip.com Travel login?
No. It reads public Trip.com Travel data; nothing runs on your account.
Can my AI agent call it?
Yes, over MCP: the agent finds tripcom.hotel.reviews.list, checks its price and runs it with the same credits as the REST API.
Your first Trip.com Travel call is free.
Up to 100 free credits to start, no card needed.