Otelpuan Hotel Reviews API
Read guest feedback with an Otelpuan hotel ID.
Overview
Get Otelpuan hotel reviews by hotel ID with StayAPI: guest ratings, review text, stay months, and pagination. Resolve a public hotel URL first when needed.
Scope
Returns up to 10 reviews per page in source order. No sorting, filtering, locale, or page-size controls are supported. review_date is null because publication dates are unavailable. stay_date is a stay month (YYYY-MM), never a publication date; stay_date_text preserves the original text. The response example uses a real hotel ID, but its review content, review ID, and one-review counts are synthetic, not the hotel’s current totals. Hotel name, URL, and aggregate rating are unavailable in ID-based reviews and stay null; optional review fields are populated when supplied. travel_type prefers display text, then the source type code such as COUPLE, and is null only when neither is available. Pass hotel_id on every reviews request. If you only have a URL, use URL to Hotel ID first; known IDs work directly.
Authentication
Send your StayAPI key in the X-API-Key header. Successful requests return JSON; failures use RFC 7807 Problem Details.
Endpoint URL
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| hotel_id | string | Required | Positive decimal hotel identifier from Search or URL to Hotel ID, such as 25322. Maximum 2147483647; no leading zero, sign, or whitespace. A known ID works directly. |
| page | integer | Optional | Page number, at least 1. Default: 1. Page size is fixed at 10; follow page_info.has_next_page. |
Response schema
| Field | Type | Description |
|---|---|---|
| success | boolean | True only for a successful response. |
| hotel | object | hotel_id, with nullable name and url. ID-based reviews do not return name or URL; retain resolver metadata separately. |
| rating / rating_scale | number or null / integer | Aggregate hotel rating is null when unavailable from the ID-based response; rating_scale is 10. Individual review ratings remain 0–10. |
| review_count | integer | Total reviews reported for the hotel. |
| reviews | array | Review id, nullable reviewer_name, rating, title, text, travel_type, and room_type. |
| reviews[].review_date | null | Publication date is unavailable. Do not substitute the stay date. |
| reviews[].stay_date / stay_date_text | string or null | Stay month in YYYY-MM format and original source text, such as 2026 Ocak. No day is inferred. |
| total | integer | Number of reviews on this response page. |
| page_info | object | page, page_size (10), total_pages, and has_next_page. |
Errors and limitations
Errors use RFC 7807 Problem Details with provider: "otelpuan", an instance and correlation id.
- 400 INVALID_HOTEL_ID: supply a positive decimal hotel ID within the documented range.
- 422: hotel_id is required; page must be an integer of at least 1.
- 404 NO_REVIEWS: no review data is available for this ID or page.
- 502 UPSTREAM_ERROR or 504 UPSTREAM_TIMEOUT: the source request could not complete.
- 503: service temporarily unavailable.
- 500 CONTENT_EXTRACTION_FAILED: the source response could not be interpreted.