GET
# Expedia Hotel Reviews API

Extract guest reviews from Expedia hotels using the property ID.

## Overview

#### Real-time Review Data

Get complete review content, ratings, and reviewer information with real-time data updates.

The Expedia Hotel Reviews endpoint returns up to 5 guest reviews per request for a hotel. Each review includes the rating, review text, reviewer name, and review date. Use pagination to fetch more reviews.

### Endpoint URL

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

## Management replies

`reviews[].owner_response` is null when no reply is available, or an object with nullable string fields `text`, `published_date`, and `author`. Only the first management reply is returned. 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"}
```

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| property\_id | string | Required | Expedia property ID (numeric string, e.g., "1582716") |
| page | integer | Optional | Page index, 0-indexed (default: 0) |
| per\_page | integer | Optional | Reviews per page, 1-5 (default: 5, max: 5) |
| sort | string | Optional | Review ordering. Omit (or `recommended`) for Expedia's default order. Use `recent_desc` for newest-first (best for date-range backfill). Also accepts `score_desc`, `score_asc`, `most_relevant`. |

#### Sorting for date ranges

Pass sort=recent\_desc to return reviews newest-first, then paginate until review\_date passes your cutoff. This is the reliable way to pull a specific date range, such as a single month of reviews.

## Response Structure

### Review Information

- `id` - Unique review identifier
- `rating` - Rating as raw string (e.g., "10/10 Excellent")
- `text` - Full review text
- `reviewer_name` - Name of the reviewer
- `review_date` - Date of the review

### Pagination Data

- `total_count` - Number of reviews returned
- `has_more` - Whether more reviews exist

## Finding the Property ID

#### Finding the Property ID

The property ID can be found in Expedia hotel URLs after the "h" prefix.

The property ID appears in Expedia URLs. For example:

`
            https://www.expedia.com/h1582716.Hotel-Information
          `

The property ID is `1582716` (the number after "h").

Request

```curl
curl -X GET "https://api.stayapi.com/v1/expedia/hotel/reviews?property_id=1582716" \
  -H "x-api-key: YOUR_API_KEY"
```

Response

```json
{
  "property_id": "1582716",
  "reviews": [
    {
      "id": "review_123456",
      "rating": "10/10 Excellent",
      "text": "The room was clean and nice. The staff was very friendly and helpful. Great location near the city center.",
      "reviewer_name": "Andrew",
      "review_date": "Nov 2024",
      "owner_response": {
        "text": "Dear Andrew, thank you for your wonderful review! We're so glad you enjoyed our location and service. Best regards, Hotel Management",
        "published_date": "Nov 2024",
        "author": "The Hotel"
      }
    },
    {
      "id": "review_123457",
      "rating": "8/10 Good",
      "text": "Good place for a short rest. Clean room and comfortable bed.",
      "reviewer_name": "Marek",
      "review_date": "Oct 2024",
      "owner_response": null
    }
  ],
  "total_count": 5,
  "page": 0,
  "per_page": 5,
  "has_more": true
}
```

```json
{
  "type": "https://api.stayapi.com/errors/invalid-property-id",
  "title": "Invalid Property ID",
  "status": 400,
  "detail": "Property ID must be numeric",
  "error_code": "INVALID_PROPERTY_ID"
}
```
