GET
# Agoda Review Comments API

Fetch Agoda's own guest reviews for a hotel, page by page.

## Overview

This endpoint returns the same Agoda reviews as the [main reviews endpoint](/docs/endpoints/agoda/hotel-reviews): Agoda's own guest reviews only. Reviews Agoda shows from partner sites are not included.

### Endpoint URL

GET https://api.stayapi.com/v1/agoda/hotel/reviews/{hotel\_id}/comments 

## Management replies

Returns Agoda's own guest reviews only; reviews Agoda shows from partner sites are not included; pagination (`total_count`, `has_more`) covers Agoda's own reviews only. The requested page size is 20; actual counts can differ. Agoda lists English-language reviews first (newest first with the default sort), then reviews in other languages, so for a complete date range, page until `has_more` is false. Advertised totals do not guarantee every review is accessible. A hotel with no Agoda reviews returns `200` with `reviews: []` and `total_count` 0; a page Agoda keeps blocking returns `502`, so retry it later.

`reviews[].owner_response` is null when no reply is available, or an object with nullable string fields `text`, `published_date`, and `author`. Reply dates preserve source formatting; ISO format and timezone are not guaranteed. Date and author may be null even when text is present.

```
{"text":"Thank you for your feedback.","published_date":null,"author":"Hotel management"}
```

`review_score` is Agoda's own guest score and rating count (not combined with partner sites), never a page average. Its `review_count` can be higher than `pagination.total_count` because it includes ratings without written reviews. Available aggregates contain nullable `overall`, `score_text`, and `review_count`. Missing aggregates can be an empty object or null; this endpoint may return null. Do not infer an aggregate from the reviews on this page.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| hotel\_id | integer | Required | Agoda hotel ID (path parameter) |
| page | integer | Optional | Page number for pagination (starts at 1, default: 1) |
| sorting | integer | Optional | Sort order: 7 = most recent, 6 = highest rating, 5 = lowest rating (default: 7) |

## Response Format

### Success Response

Returns a page of Agoda's own guest reviews with pagination information.

```
{
  "success": true,
  "hotel_id": 319457,
  "reviews": [...],
  "pagination": {
    "current_page": 1,
    "page_size": 20,
    "total_count": 565,
    "total_pages": 29,
    "has_more": true
  },
  "retrieved_at": "2025-09-04T10:30:00Z"
}
```

## Usage Examples

### Get the Newest Reviews

Fetch the first page with the default sort (most recent):

 GET /v1/agoda/hotel/reviews/319457/comments?page=1 

### Get Highest Rated Reviews

Fetch top-rated reviews for showcasing positive feedback:

 GET /v1/agoda/hotel/reviews/319457/comments?sorting=6 

### Paginate Through All Reviews

Increase `page` until `pagination.has_more` is false:

 GET /v1/agoda/hotel/reviews/319457/comments?page=3 

## Best Practices

### Optimization Tips

- Page until pagination.has\_more is false; English-language reviews come first, then other languages
- Paginate available reviews; requested page size is 20
- Use sorting=6 to highlight positive reviews in your application

Request

```curl
curl -X GET "https://api.stayapi.com/v1/agoda/hotel/reviews/319457/comments?page=1&sorting=7" \
  -H "X-API-Key: YOUR_API_KEY"
```

Response

```json
{
  "success": true,
  "hotel_id": 319457,
  "reviews": [
    {
      "review_id": "607467196",
      "rating": 8.0,
      "title": "Very good",
      "comment": "",
      "pros": "Enough space in room, clean and silent.",
      "cons": "Shower is annoying, whole toilet floor is wet after shower...",
      "reviewer": {
        "name": "Eerik",
        "country": "",
        "level": "",
        "group_type": "Business traveler"
      },
      "date": "January 16, 2023",
      "stay_date": "",
      "room_type": "",
      "helpful_count": 0,
      "language": "en",
      "translation": null,
      "photos": [],
      "sub_ratings": {},
      "owner_response": {
        "text": "Dear guest, thank you for taking the time to review us. We are glad the location worked well for you and hope to host you again.",
        "published_date": "2023-01-20T09:00:00+07:00",
        "author": "Hotel Management"
      }
    },
    {
      "review_id": "607467536",
      "rating": 6.0,
      "title": "Will not go again to this hotel---",
      "comment": "",
      "pros": "The place of the hotel was very good. We could reach all parts of town...",
      "cons": "They didn't communicate with me. I contacted them about payment...",
      "reviewer": {
        "name": "Gyorgy",
        "country": "",
        "level": "",
        "group_type": "Business traveler"
      },
      "date": "October 03, 2022",
      "stay_date": "",
      "room_type": "",
      "helpful_count": 0,
      "language": "en",
      "translation": null,
      "photos": [],
      "sub_ratings": {},
      "owner_response": null
    }
  ],
  "pagination": {
    "current_page": 1,
    "page_size": 20,
    "total_count": 565,
    "total_pages": 29,
    "has_more": true
  },
  "retrieved_at": "2025-09-04T10:30:00Z"
}
```

```json
{
  "type": "https://api.stayapi.com/errors/upstream-error",
  "title": "Upstream Error",
  "status": 502,
  "detail": "The upstream service could not complete the request.",
  "error_code": "UPSTREAM_ERROR",
  "hotel_id": 319457
}
```
