Google Hotels Photos API

Google Hotels Photos API allows you to get photos of a specific property listed on Google Hotels. The API is accessed through the following endpoint: /search?engine=google_hotels_photos.

A user may query the following: https://serpapi.com/search?engine=google_hotels_photos utilizing a GET request. Head to the playground for a live and interactive demo.

API Parameters

Search Query

property_token

Required

Parameter defines unique identifier used to identify a Google Property. You can find property_token from Google Hotels Properties API.

Pagination

next_page_token

Optional

Parameter defines the next page token needed to retrieve the next batch of photos of a particular section.

Serpapi Parameters

engine

Required

Set parameter to google_hotels_photos to use the Google Hotels Photos API engine.

no_cache

Optional

Parameter will force SerpApi to fetch the Google Hotels Photos results even if a cached version is already present. A cache is served only if the query and all parameters are exactly the same. Cache expires after 1h. Cached searches are free, and are not counted towards your searches per month. It can be set to false (default) to allow results from the cache, or true to disallow results from the cache. no_cache and async parameters should not be used together.

async

Optional

Parameter defines the way you want to submit your search to SerpApi. It can be set to false (default) to open an HTTP connection and keep it open until you got your search results, or true to just submit your search to SerpApi and retrieve them later. In this case, you'll need to use our Searches Archive API to retrieve your results. async and no_cache parameters should not be used together. async should not be used on accounts with Ludicrous Speed enabled.

zero_trace

Optional

Enterprise only. Parameter enables ZeroTrace mode. It can be set to false (default) or true. Enable this mode to skip storing search parameters, search files, and search metadata on our servers. This may make debugging more difficult.

api_key

Required

Parameter defines the SerpApi private key to use.

output

Optional

Parameter defines the final output you want. It can be set to json (default) to get a structured JSON of the results, or html to get the raw html retrieved.

json_restrictor

Optional

Parameter defines the fields you want to restrict in the outputs for smaller, faster responses. See JSON Restrictor for more details.

API Results

JSON Results

JSON output includes structured data for Sections and Photos.

A search status is accessible through search_metadata.status. It flows this way: Processing -> Success || Error. If a search has failed, error will contain an error message. search_metadata.id is the search ID inside SerpApi.

HTML Results

This API does not have html response, just a text. search_metadata.prettify_html_file contains prettified version of result. It is displayed in playground.

API Examples

Example with property_token

Example with property_token

JSON Example

{
  ...
  "search_parameters": {
    "engine": "google_hotels_photos",
    "property_token": "ChcI15Wcx823svUQGgsvZy8xdm50eHpmMhAB"
  },
  "sections": [
    {
      "title": "At a glance",
      "total": 201,
      "next_page_token": "EvgDKYQi49-NlUMIDwAAAAEAAAMAAAAAAAAAAAAAAAAAIAAAAIAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAgAARCAAAAAAAAAAAAAgIgAAACACAAAAAAAAAAAoAAAAAAAAAIAAAAAAAAABAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAABAAAQCAAgAAAAAAAAAAAAIAAAEAAAAAAAAAAAAAAAAAAAAIAAgYAAAAAAAAAAAgAAAEAAAAAAAAAAAAAAABAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAQAAAAAAAAAAAACAAAAAAAAAAAAAAAIAAAAAAAAAAAAEgAAAAAAAAAAAACAAAAAAIAAAAAIAAAAAAAAEAAAAAAAAQAAAAAQAAYAAAAAAAAAgEQAAAAAAAAAAAAAAABAAAAAABAAAAAAAAEAACAAhAAEAAAAAAAgIAEAAAAAAAQAAAAAAAAAEAAAABAgACAAAQAgAAAAQAAACAABAgAAAAAAAAAAIAAAAAAAAAEAAAAAAAAgAACABAAIAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAAAAAAAAAAAAAgAAAEAAAAAAGBxCVCmEIuPfjZVD6AEAACAAAAADAAAAQQiAYsBCAFisAQAYBAKAAiACwgZQE0CCCgCIAAQCABIAACRBQCAAAcAAAIIKA4hCAAABAAAAEgKEIAwAQAAAAA",
      "photos": [
        {
          "width": 5616,
          "height": 3744,
          "source": "Owner Submitted",
          "thumbnail_url": "https://lh3.googleusercontent.com/p/AF1QipMEBojh-BvZnNCQMk1lOTihX9_BFi_cT6H1qgPY=w253-h168-k-no",
          "photo_url": "https://lh3.googleusercontent.com/p/AF1QipMEBojh-BvZnNCQMk1lOTihX9_BFi_cT6H1qgPY=s5616",
          "posted_on": "2025-04-07",
          "source_url": "https://maps.google.com/maps/contrib/103108887507597475893"
        },
        {
          "width": 720,
          "height": 1280,
          "source": "Visitor Submitted",
          "thumbnail_url": "https://lh3.googleusercontent.com/gps-cs-s/AG0ilSxc0IfQxbcB0v6ERpIg3l2lcD1rklTWe-Jx4oXCWLZWWJtPwfrJRvo0h5tr1JEIDjIRCrcAKT3NHaNejFcHLPs9qXUP1z_COEdDLOvSsRhw74m-SwPRMSftQRn0pJC2bGM1C_6AZA=w253-h449-k-no",
          "photo_url": "https://lh3.googleusercontent.com/gps-cs-s/AG0ilSxc0IfQxbcB0v6ERpIg3l2lcD1rklTWe-Jx4oXCWLZWWJtPwfrJRvo0h5tr1JEIDjIRCrcAKT3NHaNejFcHLPs9qXUP1z_COEdDLOvSsRhw74m-SwPRMSftQRn0pJC2bGM1C_6AZA=s720",
          "posted_on": "2021-05-23",
          "source_url": "https://maps.google.com/maps/contrib/113881267707225251371"
        },
       .....
      ]
    }
  ]
}

Example with property_token and next_page_token

Example with property_token and next_page_token

JSON Example

{
  ....
  "search_parameters": {
    "engine": "google_hotels_photos",
    "property_token": "ChcI15Wcx823svUQGgsvZy8xdm50eHpmMhAB",
    "next_page_token": "EvgDKYQi49-NlUMIDwAAAAEAAAMAAAAAAAAAAAAAAAAAIAAAAIAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAgAARCAAAAAAAAAAAAAgIgAAACACAAAAAAAAAAAoAAAAAAAAAIAAAAAAAAABAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAABAAAQCAAgAAAAAAAAAAAAIAAAEAAAAAAAAAAAAAAAAAAAAIAAgYAAAAAAAAAAAgAAAEAAAAAAAAAAAAAAABAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAQAAAAAAAAAAAACAAAAAAAAAAAAAAAIAAAAAAAAAAAAEgAAAAAAAAAAAACAAAAAAIAAAAAIAAAAAAAAEAAAAAAAAQAAAAAQAAYAAAAAAAAAgEQAAAAAAAAAAAAAAABAAAAAABAAAAAAAAEAACAAhAAEAAAAAAAgIAEAAAAAAAQAAAAAAAAAEAAAABAgACAAAQAgAAAAQAAACAABAgAAAAAAAAAAIAAAAAAAAAEAAAAAAAAgAACABAAIAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAAAAAAAAAAAAAgAAAEAAAAAAGBxCVCmEIuPfjZVD6AEAACAAAAADAAAAQQiAYsBCAFisAQAYBAKAAiACwgZQE0CCCgCIAAQCABIAACRBQCAAAcAAAIIKA4hCAAABAAAAEgKEIAwAQAAAAA"
  },
  "photos": [
    {
      "width": 3072,
      "height": 4096,
      "source": "Visitor Submitted",
      "thumbnail_url": "https://lh3.googleusercontent.com/gps-cs-s/AG0ilSxRuL-4MYP3vXm3yFQyDelzQH0NcPus2ZcClID_5wtK4DiP9p3koYy0miNNYdANvG7scQ9j33BuG66KMqL_WISQrP6vL2QyK-GkynYfoqf2Bp5MUxN5q17XDOfeICV3PBNlpTs=w253-h337-k-no",
      "photo_url": "https://lh3.googleusercontent.com/gps-cs-s/AG0ilSxRuL-4MYP3vXm3yFQyDelzQH0NcPus2ZcClID_5wtK4DiP9p3koYy0miNNYdANvG7scQ9j33BuG66KMqL_WISQrP6vL2QyK-GkynYfoqf2Bp5MUxN5q17XDOfeICV3PBNlpTs=s3072",
      "posted_on": "2024-11-20",
      "source_url": "https://maps.google.com/maps/contrib/113376484706707455043"
    },
    {
      "width": 4000,
      "height": 1848,
      "source": "Visitor Submitted",
      "thumbnail_url": "https://lh3.googleusercontent.com/gps-cs-s/AG0ilSwOGrTdYoGdcG4rK1xDvwfi5112pOl-R_3dPI2gJ-YSNinxCGP3vXLRzuqEm8QP9H8xB4Lol0VB4pHi4-6Xg4YiDZ2YTHrQXejTZyE5CH6JzfXYsK1wCVj3QNdGDNVnYyMd-Pwt=w253-h116-k-no",
      "photo_url": "https://lh3.googleusercontent.com/gps-cs-s/AG0ilSwOGrTdYoGdcG4rK1xDvwfi5112pOl-R_3dPI2gJ-YSNinxCGP3vXLRzuqEm8QP9H8xB4Lol0VB4pHi4-6Xg4YiDZ2YTHrQXejTZyE5CH6JzfXYsK1wCVj3QNdGDNVnYyMd-Pwt=s4000",
      "posted_on": "2024-02-26",
      "source_url": "https://maps.google.com/maps/contrib/115613597822353457366"
    },
    ....
  ]
}

JSON Structure Overview for Photo Sections

{
  "sections": [
    {
      "title": "String - Title of the section",
      "total": "Integer - Total number of photos in the section",
      "next_page_token": "String - Token to fetch next set of photos of this particular section",
      "photos": "Array - List of Photo objects"
    },
    ...
  ]
}

JSON Structure Overview for Photos

{
  "photos": [
    {
      "width": "Integer - Intrinsic width of the photos in pixels",
      "height": "Integer - Intrinsic height of the photos in pixels",
      "alt": "String - Alt text of the photo, if present",
      "source": "String - Either of 'Visitor Submitted', 'Owner Submitted', 'External Website'",
      "thumbnail_url": "String - Thumbnail URL used by Google Hotels to show preview of the photo",
      "photo_url": "String - Full resolution URL of the photo",
      "posted_on": "String - Date the image was posted or crawled in YYYY-MM-DD format",
      "source_url": "String - If the photo is from Google Maps, the link to the Google Maps page where review and photos were posted."
    },
    ...
  ]
}