# Google Hotels Photos

<p>Get the photos of one property on Google Hotels: the photo URL, size, source, contributor, upload date and caption, grouped the way the photos tab on Google Hotels groups them.</p><h3>What You Get</h3><ul><li><strong>Photos</strong> with a full-size URL, a thumbnail, width and height</li><li><strong>Source</strong>: <code>owner</code> (uploaded by the property), <code>visitor</code> (uploaded by a guest) or <code>provider</code> (a booking partner, named in <code>provider</code>)</li><li><strong>Contributor, upload date and caption</strong> when Google shows them</li><li><strong>Photo groups</strong> with a total and a first page of photos for each group</li><li><strong>Pagination</strong> with a <code>next_page_token</code></li></ul><h3>Categories</h3><p><code>all</code> (default), <code>owner</code>, <code>visitors</code> and <code>360</code>. The category applies to the photos and to every page you request with the token.</p><h3>Pagination</h3><p>The first page returns the photos of the first group in <code>photos</code>. The other groups come with their own first page in <code>groups[].photos</code>. Send <code>pagination.next_page_token</code> (or the <code>next_page_token</code> of a group) to get the next page of that group. The token is opaque and long (about 1,100 characters). The page after the last page is empty.</p><h3>Good to Know</h3><ul><li>Only the first group has a known name (<code>At a glance</code>, English only). Other groups return their <code>group_id</code> and total.</li><li>Cost: 1 credit per successful request. Failed requests are not billed.</li></ul>

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

## 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>ChkI3t3pndiZ0_knGg0vZy8xMWY3N19iX214EAE</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> |
| `category` | string | No | <p>Which photos to return: <code>all</code> (default), <code>owner</code>, <code>visitors</code> or <code>360</code>.</p> |
| `next_page_token` | string | No | <p>Token for the next page of a photo group.</p><p><strong>Note:</strong> From <code>pagination.next_page_token</code> or a group <code>next_page_token</code> of a previous response. The token carries the category, so <code>category</code> is ignored when it is set.</p> |
| `hl` | string | No | <p>2-letter language code. <strong>Default:</strong> <code>en</code></p> |
| `gl` | string | No | <p>2-letter country code. <strong>Default:</strong> <code>us</code></p> |

## Example response

```json
{
    "groups": [
        {
            "name": "At a glance",
            "group_id": 1,
            "total_photos": 201,
            "next_page_token": "eyJjIjoiYWxsIiwiZyI6MSwidCI6Ii4uLiJ9"
        },
        {
            "name": null,
            "photos": [
                {
                    "url": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9QiN8TMV2XA7lJn4zl97ulBr1q6yAVZvBDkQzzSJWrGVgB6G4dA7GVnWRE4r0kg2ii43trxnqF0ePV8LK_zqfhzyS-FVzZ3libVj88YvnpaWM4fwS7QQvGDpoeyu25ZDUIGCmQo2PQERS51=w1280",
                    "date": null,
                    "width": 1280,
                    "height": 853,
                    "source": "provider",
                    "caption": null,
                    "group_id": 6,
                    "photo_id": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9QiN8TMV2XA7lJn4zl97ulBr1q6yAVZvBDkQzzSJWrGVgB6G4dA7GVnWRE4r0kg2ii43trxnqF0ePV8LK_zqfhzyS-FVzZ3libVj88YvnpaWM4fwS7QQvGDpoeyu25ZDUIGCmQo2PQERS51",
                    "provider": "Hotelbeds",
                    "thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9QiN8TMV2XA7lJn4zl97ulBr1q6yAVZvBDkQzzSJWrGVgB6G4dA7GVnWRE4r0kg2ii43trxnqF0ePV8LK_zqfhzyS-FVzZ3libVj88YvnpaWM4fwS7QQvGDpoeyu25ZDUIGCmQo2PQERS51=w253-h168-k-no",
                    "contributor": null
                }
            ],
            "group_id": 6,
            "total_photos": 331,
            "next_page_token": "eyJjIjoiYWxsIiwiZyI6NiwidCI6Ii4uLiJ9"
        }
    ],
    "photos": [
        {
            "url": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9QiN8TMV2XA7lJn4zl97ulBr1q6yAVZvBDkQzzSJWrGVgB6G4dA7GVnWRE4r0kg2ii43trxnqF0ePV8LK_zqfhzyS-FVzZ3libVj88YvnpaWM4fwS7QQvGDpoeyu25ZDUIGCmQo2PQERS51=w1280",
            "date": "2026-08-23",
            "width": 1280,
            "height": 853,
            "source": "owner",
            "caption": null,
            "group_id": 1,
            "photo_id": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9QiN8TMV2XA7lJn4zl97ulBr1q6yAVZvBDkQzzSJWrGVgB6G4dA7GVnWRE4r0kg2ii43trxnqF0ePV8LK_zqfhzyS-FVzZ3libVj88YvnpaWM4fwS7QQvGDpoeyu25ZDUIGCmQo2PQERS51",
            "provider": null,
            "thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/ANWiy9QiN8TMV2XA7lJn4zl97ulBr1q6yAVZvBDkQzzSJWrGVgB6G4dA7GVnWRE4r0kg2ii43trxnqF0ePV8LK_zqfhzyS-FVzZ3libVj88YvnpaWM4fwS7QQvGDpoeyu25ZDUIGCmQo2PQERS51=w253-h168-k-no",
            "contributor": {
                "name": "Pan Pacific Sonargaon Dhaka",
                "profile_url": "https://maps.google.com/maps/contrib/113538921990251389939"
            }
        }
    ],
    "group_id": 1,
    "pagination": {
        "next_page_token": "eyJjIjoiYWxsIiwiZyI6MSwidCI6Ii4uLiJ9"
    },
    "search_parameters": {
        "gl": "us",
        "hl": "en",
        "engine": "google_hotels_photos",
        "category": "all",
        "property_token": "ChkI3t3pndiZ0_knGg0vZy8xMWY3N19iX214EAE"
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | The property_token, category, next_page_token, hl or gl query parameter failed validation before the upstream request ran. |
| 503 | Google Hotels Photos Temporarily Unavailable | The upstream lookup failed on every try. The request is not billed. |

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