GET
# 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

GET https://api.stayapi.com/v1/otelpuan/hotel/reviews 

## 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.

## Related resources

[Check rooms and prices for a stay](/docs/endpoints/otelpuan/rooms)[Search for hotel IDs by name](/docs/endpoints/otelpuan/search)[Resolve a URL to a hotel ID](/docs/endpoints/otelpuan/url-to-id)[Read reviews by hotel ID](/docs/endpoints/otelpuan/hotel-reviews)[Otelpuan API overview](/apis/otelpuan)[Use Otelpuan tools through MCP](/docs/mcp)

Request

```curl
curl -X GET "https://api.stayapi.com/v1/otelpuan/hotel/reviews?hotel_id=25322&page=1" \
  -H "X-API-Key: YOUR_API_KEY"
```

Response

```json
{
  "success": true,
  "hotel": {
    "hotel_id": "25322",
    "name": null,
    "url": null
  },
  "rating": null,
  "rating_scale": 10,
  "review_count": 1,
  "reviews": [
    {
      "id": "9000000",
      "reviewer_name": "Guest R***",
      "rating": 8.7,
      "review_date": null,
      "stay_date": "2026-01",
      "stay_date_text": "2026 Ocak",
      "title": "Good location",
      "text": "The location was convenient and the room was comfortable.",
      "travel_type": "COUPLE",
      "room_type": "DELUXE DUBLEX ODA"
    }
  ],
  "total": 1,
  "page_info": {
    "page": 1,
    "page_size": 10,
    "total_pages": 1,
    "has_next_page": false
  }
}
```
