GET
Ctrip Hotel Rooms & Lowest Price API
Check stay-specific availability, normalized room content, and Ctrip's anonymous advertised from-price.
Endpoint
GET https://api.stayapi.com/v1/ctrip/hotel/rooms/{hotel_id}
Authenticate with your StayAPI key in the X-API-Key header.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| hotel_id | integer (path) | Required | Positive Ctrip hotel ID. |
| check_in | date | Optional | YYYY-MM-DD. Supply with check_out; defaults to 14 days from today. |
| check_out | date | Optional | YYYY-MM-DD. Supply with check_in; maximum stay is 30 nights. |
| adults | integer | Optional | Adults across the request, 1 to 8. Default 2. |
| children_ages | integer[] | Optional | Repeat the query key for each child age, 0 to 17, up to 8 values. |
| rooms | integer | Optional | Rooms requested, 1 to 8. Default 1. |
Request example
curl "https://api.stayapi.com/v1/ctrip/hotel/rooms/18078321?check_in=2026-08-15&check_out=2026-08-16&adults=2&rooms=1" \
-H "X-API-Key: YOUR_API_KEY"
Success response
{
"success": true,
"hotel_id": 18078321,
"check_in": "2026-08-15",
"check_out": "2026-08-16",
"nights": 1,
"adults": 2,
"children_ages": [],
"rooms_requested": 1,
"currency": "CNY",
"available": true,
"lowest_price": {
"amount": 686.0,
"currency": "CNY",
"symbol": "¥",
"basis": "advertised_from_price"
},
"room_prices_included": false,
"room_price_limitation": "Individual rate-plan prices require a Ctrip login.",
"room_types": [],
"total_room_types": 0,
"total_rate_plans": 0
}
Limits and errors
- Ctrip exposes the hotel-level advertised lowest public price anonymously.
- Individual rate-plan prices are login-gated. Their price is null and price_visibility is login_required.
- This endpoint uses an isolated browser subprocess and can return 503 when its bounded browser pool is busy.
- Errors are non-2xx RFC 7807 Problem Details responses with
provider: "ctrip"and a correlation id.