Hotel Reviews API
Access detailed customer reviews, ratings, and feedback from various booking platforms including Booking.com.
Overview
Rich Review Data
Get comprehensive review information including ratings, text reviews, reviewer details, and review metadata for in-depth analysis.
The Hotel Reviews endpoint provides access to customer reviews and ratings from major booking platforms. Perfect for sentiment analysis, hotel performance tracking, and providing social proof to your users.
Endpoint URL
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| hotel_id | string | Required | Booking.com hotel ID (numeric string, e.g., "1302021") |
| page | integer | Optional | Page number for pagination (default: 1) |
| per_page | integer | Optional | Number of reviews per page (default: 10, max: 25) |
| language | string | Optional | Filter reviews by language (e.g., "en", "fr", "es") |
Common Use Cases
Sentiment Analysis
Analyze customer sentiment and satisfaction trends to understand hotel performance over time.
Social Proof
Display recent customer reviews to build trust and encourage bookings on your platform.
Competitive Analysis
Compare review trends and ratings across competing hotels in the same market.
Content Generation
Use review highlights and common themes to generate marketing content and descriptions.
Response Format
Review Object Fields
| Field | Type | Description |
|---|---|---|
| id | string | Unique review identifier |
| score | float | Review score (1-10 scale) |
| reviewed_date | string | Date the review was submitted |
| hotelier_name | string | Property name for verification |
| is_incentivised | boolean | Whether review was incentivised |
| guest (object) | ||
| guest.name | string | Reviewer's name |
| guest.user_id | string | Unique reviewer ID |
| guest.avatar | string | Reviewer's profile picture URL |
| guest.nr_reviews | integer | Number of reviews user has written |
| guest.country | string | Country name (uppercase) |
| guest.country_code | string | Country code (e.g., "th") |
| guest.traveler_type | string | Type of traveler (Solo, Couple, Family, etc.) |
| guest.anonymous | boolean | Whether review is anonymous |
| stay_details (object) | ||
| stay_details.room_id | string | Unique room identifier |
| stay_details.room_type | string | Name of the room type booked |
| stay_details.checkin | string | Check-in date |
| stay_details.checkout | string | Check-out date |
| stay_details.nights | integer | Number of nights stayed |
| stay_details.room_photo | string | URL of room photo |
| review (object) | ||
| review.title | string | Review title/summary (may be null) |
| review.positive | string | Positive aspects mentioned |
| review.negative | string | Negative aspects mentioned (may be null) |
| review.language | string | Review language code |
| Additional fields | ||
| helpful_votes | integer | Number of helpful votes |
| has_photos | boolean | Whether review includes photos |
| photos | array | Array of photo URLs |
| partner_reply | string | Hotel response (may be null) |
| travel_purpose | string | Purpose of travel |
Pagination
Use the pagination object to implement proper pagination in your application. Large hotels may have thousands of reviews.
Error handling and status codes
Status codes: 200 on success; errors use non-2xx (400, 404, 500, 502, 503, 504) with Problem Details.
- 400
INVALID_HOTEL_ID: Input validation failed (hotel_id must be a numeric string). - 404 Not Found: Upstream indicates the hotel is missing.
- 502
UPSTREAM_ERROR: Upstream non-2xx or GraphQL errors. - 503 Service Unavailable: Upstream rate-limited/maintenance (may include
Retry-After). - 504 Upstream Timeout: The provider timed out.
- 500
CONTENT_EXTRACTION_FAILEDorINTERNAL_ERROR: Unexpected parsing/processing errors.
Error responses (Problem Details)
All Booking.com hotel endpoints return errors using RFC 7807 Problem Details.
{
"type": "https://api.stayapi.com/errors/invalid-url",
"title": "Invalid URL",
"status": 400,
"detail": "Parameter 'url' must be a full Booking.com hotel URL of the form https://www.booking.com/hotel/{cc}/{slug}.html.",
"error_code": "INVALID_URL",
"provided": "baan-coconut"
}
Media type: application/problem+json
Standard fields: type, title, status, detail
Extensions: error_code and any endpoint-specific fields
2xx policy: 2xx is returned only when data extraction succeeds.