GET
Best We Hotel Rooms API
Pull room-level CNY rates and availability for one property.
Overview
Get live Best We room types, anonymous public and club rate plans, inventory, breakfast, and cancellation rules for a dated stay.
Scope
Rates use the hotel's native CNY pricing. stay_total equals per_night × nights × requested rooms. Taxes and service fees are not separately itemized by this web surface.
Authentication
Send your StayAPI key in the X-API-Key header. Successful requests return JSON; failures use RFC 7807 Problem Details.
Endpoint URL
GET https://api.stayapi.com/v1/bestwe/hotel/rooms
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| property_id | string | Required | Stable Best We property identifier returned by Search, for example JJ1089. |
| check_in | date | Required | Check-in date (YYYY-MM-DD). Cannot be in the past. |
| check_out | date | Required | Check-out date (YYYY-MM-DD), after check-in. |
| adults | integer | Optional | Total adults, 1 to 8. Default: 2. |
| children | integer | Optional | Total children, 0 to 3. Default: 0. |
| child_ages | integer[] | Optional | Exactly one age from 0 to 17 per child. Repeat the query parameter for multiple children. |
| rooms | integer | Optional | Requested room count, 1 to 3. Default: 1. |
| language | enum | Optional | Localized content language: zh or en. Default: zh; missing fields fall back to the other language. |
Response schema
| Field | Type | Description |
|---|---|---|
| property_id / check_in / check_out / nights | mixed | Normalized property and stay context. |
| currency | string | Authoritative rate currency; currently CNY. |
| room_types | array | Room metadata, beds, image, available-room count, and rate plans. |
| room_types[].rates | array | Per-night and stay-total prices, bookability, inventory, breakfast, cancellation, prepayment, and member-rate signals. |
| total | integer | Number of room types returned. |
Errors and limitations
Errors use RFC 7807 Problem Details with provider: "bestwe", a product name, and a correlation id.
- 400: invalid dates, an incomplete coordinate pair, or child ages that do not match the child count.
- 404: the Best We property identifier is not recognized.
- 422: a parameter is outside its declared range or enum.
- 502: Best We rejected or failed the upstream request.
- 503: bounded scraper capacity is temporarily full; honor
Retry-After.