# Google Hotels Reviews

<p>Get guest reviews for a specific property on Google Hotels. Every review carries the reviewer, the rating, the review text, the date, sub-ratings, an owner response and topic mentions, exactly like the reviews tab on the Google Hotels property page.</p><h3>What You Get</h3><ul><li><strong>Reviews</strong> — Up to 10 reviews per request, in Google's most helpful order</li><li><strong>Review sources</strong> — Google reviews plus partner reviews from Trip.com and other providers, with source name, code, id and logo</li><li><strong>Ratings</strong> — The rating with its own maximum, so 10/10 and 5/5 both stay correct</li><li><strong>Sub-ratings</strong> — Aspect scores such as location, cleanliness and service</li><li><strong>Owner responses</strong> — The reply the property posted, with its date</li><li><strong>Topic mentions</strong> — Categories Google matched in the review, with the quoted text</li><li><strong>Pagination</strong> — A next page token plus a ready-to-use next URL</li></ul><h3>How to get a property_token</h3><p>Call the <a href="/docs/google-hotels-api/google_hotels_search">Google Hotels Search</a> endpoint or the <a href="/docs/google-hotels-api/google_hotels_autocomplete">Google Hotels Autocomplete</a> endpoint. Every property result and hotel suggestion carries a <code>property_token</code>. Use that token here.</p><h3>Ordering</h3><p>Reviews come back in Google's most helpful order. There is no <code>sort_by</code> parameter.</p>

- **Documentation:** [https://scrappa.co/docs/google-hotels-api/google_hotels_reviews](https://scrappa.co/docs/google-hotels-api/google_hotels_reviews)
- **API group:** Google Hotels API
- **Endpoint:** `GET https://scrappa.co/api/google-hotels/reviews`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `property_token` | string | Yes | <p>The property token of the hotel or vacation rental.</p><p><strong>Example:</strong> <code>ChcIkODTyPai0cw-GgsvZy8xdjh4MTZjdhAB</code></p><p><strong>Note:</strong> From the <code>property_token</code> field of a <a href="/docs/google-hotels-api/google_hotels_search">Google Hotels Search</a> result or a <a href="/docs/google-hotels-api/google_hotels_autocomplete">Google Hotels Autocomplete</a> suggestion.</p> |
| `hl` | string | No | <p>2-letter language code for the review text.</p><p><strong>Default:</strong> <code>en</code></p><p><strong>Examples:</strong> <code>en</code>, <code>de</code>, <code>fr</code></p> |
| `gl` | string | No | <p>2-letter country code for localization.</p><p><strong>Default:</strong> <code>us</code></p><p><strong>Examples:</strong> <code>us</code>, <code>de</code>, <code>fr</code></p> |
| `category_token` | string | No | <p>A review topic name that filters the reviews to that topic.</p><p><strong>Example:</strong> <code>Location</code></p><p><strong>Note:</strong> Valid topic names are different for every property. A topic name the property does not have returns an error, because an empty result is the same shape as a rejected filter. Leave it out for all reviews.</p> |
| `next_page_token` | string | No | <p>Token for pagination to fetch the next page of reviews.</p><p><strong>Note:</strong> Obtained from the <code>pagination.next_page_token</code> field in a previous response.</p> |

## Example response

```json
{
    "reviews": [
        {
            "date": "3 months ago",
            "user": {
                "link": "https://www.trip.com/hotels/detail?hotelid=732384&Allianceid=810504&Sid=1394411&utm_medium=cpc&utm_campaign=HPA&utm_source=google#review",
                "name": "Trip.com Member",
                "thumbnail": "https://lh3.googleusercontent.com/local-reviews/AJMZ0QeCck1CfANpZm9bBk3PHtP97Kh9k25HZfvq9yAWlN3BaIyjSHUPEfWkhAJmuYiJsH-_6g=s40-c-br100"
            },
            "images": [],
            "rating": 4.5,
            "source": "Trip.com",
            "snippet": "Great location. Central to many things. Ideal for travel from the airport to Alexanderplatz station, short walk from there.Close to many bars and restaurants. A comfortable room with a courtyard view, an excellent bathroom, breakfast was plentiful and deliciousThe staff were helpful. House keeping carried out if you require it but reception needs to be informed daily. This is becoming normal practice here and other hotels. Only negative there is no fridge which is unusual for a hotel of this grading",
            "review_id": "ChdDSUhNMG9nS0VLTDVxYU9acE5ESnBRRRAB",
            "source_id": 84,
            "highlights": null,
            "rating_max": 5,
            "report_url": null,
            "subratings": [],
            "review_link": "https://www.trip.com/hotels/detail?hotelid=732384&Allianceid=810504&Sid=1394411&utm_medium=cpc&utm_campaign=HPA&utm_source=google#review",
            "source_code": 2,
            "source_logo": "https://www.gstatic.com/travel-hotels/branding/b8089cb0-34b4-458c-8749-9bc4614baba4.png",
            "owner_response": null,
            "topic_mentions": [],
            "trip_type_codes": []
        },
        {
            "date": "4 months ago",
            "user": {
                "link": "https://www.google.com/maps/contrib/100436413004919094232?hl=en",
                "name": "Mubin",
                "thumbnail": "https://lh3.googleusercontent.com/a-/ALV-UjUBIkQ8pVH_Lr0Sh6CMws1MCzRwX63a1likaCW7XSJYIMYsPctl=s40-c-rp-mo-ba12-br100"
            },
            "images": [],
            "rating": 3,
            "source": "Google",
            "snippet": "Huge hotel, close enough to main station and some shopping, bars and late night eats. But a 12 minute or so walk either direction to get to anything so keep that in mind. Appreciated the early check-in, the rooms have everything you need and I prefer the privacy. However, the temperature was terrible, during the day it was so warm and stuff and then at night it somehow gets super cold- this part made it uncomfortable at times. For the price I thought it would be close to the center and less walking, honestly would have just paid a little more to not be in the area. Overall a decent hotel.",
            "review_id": "Ci9DQUlRQUNvZENodHljRjlvT2xWelIxZDBjaTF5TkY5blFWOHlTblpDY0VGNGRFRRAB",
            "source_id": -1,
            "highlights": {
                "label": "Hotel highlights",
                "values": [
                    "Quiet"
                ]
            },
            "rating_max": 5,
            "report_url": "https://www.google.com/local/content/rap/report?postId=Ci9DQUlRQUNvZENodHljRjlvT2xWelIxZDBjaTF5TkY5blFWOHlTblpDY0VGNGRFRRAB&d=286732321&t=1&wv=1",
            "subratings": [
                {
                    "out_of": 5,
                    "rating": 4,
                    "aspect_id": 1
                },
                {
                    "out_of": 5,
                    "rating": 5,
                    "aspect_id": 4
                },
                {
                    "out_of": 5,
                    "rating": 2,
                    "aspect_id": 5
                }
            ],
            "review_link": null,
            "source_code": 1,
            "source_logo": "https://www.gstatic.com/images/branding/product/1x/googleg_48dp.png",
            "owner_response": {
                "body": "Dear Mubin,\nThank you for choosing our hotel for your recent trip to Berlin and for giving us constructive feedback. Good to know that apart from your criticism, which we regret the time with us was pleasant and overall enjoyable. However, we are sorry that the aircon in your room obviously did not work properly during daytime and assure you to get our maintenance team to check it immediately.",
                "date": "2 months ago"
            },
            "topic_mentions": [],
            "trip_type_codes": [
                6,
                3
            ]
        }
    ],
    "pagination": {
        "next": "https://scrappa.co/api/google-hotels/reviews?property_token=ChcIkODTyPai0cw-GgsvZy8xdjh4MTZjdhAB&hl=en&gl=de&next_page_token=CjEIARIpCgoAP7_LALW2____EhAw81KMwv5Z-mClTKoAAAAAGgn92ScCYqZtrYQYACIA%3A10",
        "next_page_token": "CjEIARIpCgoAP7_LALW2____EhAw81KMwv5Z-mClTKoAAAAAGgn92ScCYqZtrYQYACIA:10"
    },
    "response_time_ms": 733,
    "search_parameters": {
        "gl": "de",
        "hl": "en",
        "engine": "google_hotels_reviews",
        "category_token": null,
        "property_token": "ChcIkODTyPai0cw-GgsvZy8xdjh4MTZjdhAB"
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | The property_token, hl, gl, category_token or next_page_token query parameter failed validation before the upstream request ran. |
| 503 | No Reviews Found | The upstream returned the empty shape that a rejected topic filter produces. An empty result is not distinguishable from a failed lookup, so the request is not billed. |
| 503 | Google Hotels Reviews Temporarily Unavailable | The upstream service is temporarily unavailable. Please retry shortly. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
