Google Hotels API

Our Google Hotels API allows you to scrape hotel and vacation rental results from Google Hotels. The API is accessed through the following endpoint: /search?engine=google_hotels.

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

API Parameters

Search Query

q

Required

Parameter defines the search query. You can use anything that you would use in a regular Google Hotels search.

Localization

gl

Optional

Parameter defines the country to use for the Google Hotels search. It's a two-letter country code. (e.g., us for the United States, uk for United Kingdom, or fr for France) Head to the Google countries page for a full list of supported Google countries.

hl

Optional

Parameter defines the language to use for the Google Hotels search. It's a two-letter language code. (e.g., en for English, es for Spanish, or fr for French). Head to the Google languages page for a full list of supported Google languages.

currency

Optional

Parameter defines the currency of the returned prices. Default to USD. Head to the Google Travel Currencies page for a full list of supported currency codes.

Advanced Parameters

check_in_date

Required

Parameter defines the check-in date. The format is YYYY-MM-DD. e.g. 2024-12-26

check_out_date

Required

Parameter defines the check-out date. The format is YYYY-MM-DD. e.g. 2024-12-27

adults

Optional

Parameter defines the number of adults. Default to 2.

children

Optional

Parameter defines the number of children. Default to 0.

children_ages

Optional

Parameter defines the ages of children. The age range is from 1 to 17, with children who haven't reached 1 year old being considered as 1.

Example for single child only:
5

Example for multiple children (seperated by comma ,):
5,8,10

The number of children's ages specified must match the children.

Advanced Filters

sort_by

Optional

Parameter is used for sorting the results. Default is sort by Relevance.

Available options:
3 - Lowest price
8 - Highest rating
13 - Most reviewed

min_price

Optional

Parameter defines the lower bound of price range.

max_price

Optional

Parameter defines the upper bound of price range.

property_types

Optional

Parameter defines to include only certain type of property in the results. Head to the Google Hotels Property Types page for a full list of supported Hotels property types. For Vacation Rentals, please refer to the Google Vacation Rentals Property Types page for a full list of supported Vacation Rentals property types.

Example for single property type only:
17

Example for multiple property types (seperated by comma ,):
17,12,18

amenities

Optional

Parameter defines to include only results that offer specified amenities. Head to the Google Hotels Amenities page for a full list of supported Hotels amenities. For Vacation Rentals, please refer to the Google Vacation Rentals Amenities page for a full list of supported Vacation Rentals amenities.

Example for single amenity only:
35

Example for multiple amenities (seperated by comma ,):
35,9,19

rating

Optional

Parameter is used for filtering the results to certain rating.

Available options:
7 - 3.5+
8 - 4.0+
9 - 4.5+

Hotels Filters

brands

Optional

Parameter defines the brands where you want your search to be concentrated. ID values are accessible inside brands array, located in our JSON output (e.g. brands[0].id).

Example for single brand only:
33

Example for multiple brands (seperated by comma ,):
33,67,101

This parameter isn't available for Vacation Rentals.

hotel_class

Optional

Parameter defines to include only certain hotel class in the results.

Available options:
2 - 2-star
3 - 3-star
4 - 4-star
5 - 5-star

Example for single hotel class only:
2

Example for multiple hotel class (seperated by comma ,):
2,3,4

This parameter isn't available for Vacation Rentals.

free_cancellation

Optional

Parameter defines to show results that offer free cancellation.

This parameter isn't available for Vacation Rentals.

special_offers

Optional

Parameter defines to show results that have special offers.

This parameter isn't available for Vacation Rentals.

eco_certified

Optional

Parameter defines to show results that are eco certified.

This parameter isn't available for Vacation Rentals.

Vacation Rentals Filters

vacation_rentals

Optional

Parameter defines to search for Vacation Rentals results. Default search is for Hotels.

bedrooms

Optional

Parameter defines the minimum number of bedrooms. Default to 0.

This parameter only available for Vacation Rentals.

bathrooms

Optional

Parameter defines the minimum number of bathrooms. Default to 0.

This parameter only available for Vacation Rentals.

Pagination

next_page_token

Optional

Parameter defines the next page token. It is used for retrieving the next page results.

Property Details

property_token

Optional

Parameter is used to get property details which consists of name, address, phone, prices, nearby places, and etc. You can find property_token from Google Hotels Properties API.

Serpapi Parameters

engine

Required

Set parameter to google_hotels to use the Google Hotels API engine.

no_cache

Optional

Parameter will force SerpApi to fetch the Google Hotels 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.

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.

API Results

JSON Results

JSON output includes structured data for Properties and brands.

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

JSON structure overview

{
  "brands": [
    {
      "id": "Integer - ID of the brand",
      "name": "String - Name of the brand",
      // children can be null
      "children": [
        {
          "id": "Integer - ID of the child's brand",
          "name": "String - Name of the child's brand"
        }
      ]
    }
  ],
  "properties": [
    {
      "type": "String - Type of property (e.g. hotel or vacation rental)",
      "name": "String - Name of the property",
      "description": "String - Description of the property",
      "link": "String - URL of the property's website",
      "logo": "String - URL of the property's logo",
      "sponsored": "Boolean - Indicate if the property result is sponsored",
      "eco_certified": "Boolean - Indicate if the property is Eco-certified",
      "gps_coordinates": {
        "latitude": "Float - Latitude of the GPS Coordinates",
        "longitude": "Float - Langitude of the GPS Coordinates"
      },
      "check_in_time": "String - Check-in time of the property (e.g. 3:00 PM)",
      "check_out_time": "String - Check-out time of the property (e.g. 12:00 PM)",
      "rate_per_night": {
        "lowest": "String - Lowest rate per night formatted with currency",
        "extracted_lowest": "Float - Extracted lowest rate per night",
        "before_taxes_fees": "String - Rate per night before taxes and fees formatted with currency",
        "extracted_before_taxes_fees": "Float - Extracted rate per night before taxes and fees"
      },
      "total_rate": {
        "lowest": "String - Lowest total rate for the entire trip formatted with currency",
        "extracted_lowest": "Float - Extracted lowest total rate for the entire trip",
        "before_taxes_fees": "String - Total rate before taxes and fees for the entire trip formatted with currency",
        "extracted_before_taxes_fees": "Float - Extracted total rate before taxes and fees for the entire trip"
      },
      "prices": [
        {
          "source": "String - Source of the site that list the price",
          "logo": "String - URL of the source's logo",
          "rate_per_night": {
            "lowest": "String - Lowest rate per night formatted with currency",
            "extracted_lowest": "Float - Extracted lowest rate per night",
            "before_taxes_fees": "String - Rate per night before taxes and fees formatted with currency",
            "extracted_before_taxes_fees": "Float - Extracted rate per night before taxes and fees"
          }
        }
      ],
      "nearby_places": [
        {
          "name": "String - Name of the place",
          "transportations": [
            {
              "type": "String - Type of transportation (e.g. Taxi, Walking, Public transport)",
              "duration": "String - Travel duration (e.g. 30 min)"
            }
          ]
        }
      ],
      "hotel_class": "String - Hotel class of the property (e.g. 5-star hotel)",
      "extracted_hotel_class": "Integer - Extracted hotel class of the property (e.g. 5)",
      "images": [
        {
          "thumbnail": "String - URL of the thumbnail",
          "original_image": "String - URL of the original image"
        }
      ],
      "overall_rating": "Float - Overall rating for the property",
      "reviews": "Integer - Total reviews for the property",
      "ratings": [
        {
          "stars": "Integer - Number of stars from 1 to 5",
          "count": "Integer - Total number of reviews for given star"
        }
      ],
      "location_rating": "Float - Location rating of the property (e.g. 1.8 is Bad location, 4.8 is excellent location)",
      "reviews_breakdown": [
        {
          "name": "String - Name of the review breakdown category",
          "description": "String - Description of the category",
          "total_mentioned": "Integer - Total mentioned about the category",
          "positive": "Integer - Total amount of positivity",
          "negative": "Integer - Total amount of negativity",
          "neutral": "Integer - Total amount of neutrality"
        }
      ],
      "amenities": "Array - Amenities provided by the property (e.g. Free Wi-Fi, Free parking, Hot tub, Pools, Airport shuttle and many more)",
      "excluded_amenities": "Array - Excluded amenities (e.g. No air conditioning, No airport shuttle, No beach access, Not pet-friendly and many more)",
      // For vacation rental property
      "essential_info": "Array - Essential info of the property (e.g. Entire villa, Sleeps 4, 9 bedrooms, 7 bathrooms)",
      "property_token": "String - Property token to retrieve the details of the property",
      "serpapi_property_details_link": "String - SerpApi's endpoint for retrieving property details of the property"
    }
  ],
  "serpapi_pagination": {
    "current_from": "Integer - Current page start index",
    "current_to": "Integer - Current page end index",
    "next_page_token": "String - Next page token",
    "next": "String - SerpApi's Google Hotels API endpoint for the next page"
  }
}

Example with q: Bali Resorts

Example with q: Bali Resorts

JSON Example

{
  "search_metadata": {
    "id": "65533314b68f8b5cf35732bd",
    "status": "Success",
    "json_endpoint": "https://serpapi.com/searches/7e9e85e70fe7f094/65533314b68f8b5cf35732bd.json",
    "created_at": "2023-11-14 08:43:00 UTC",
    "processed_at": "2023-11-14 08:43:00 UTC",
    "google_hotels_url": "https://www.google.com/_/TravelFrontendUi/data/batchexecute?rpcids=AtySUc&source-path=/travel/search&hl=en&gl=us&rt=c&soc-app=162&soc-platform=1&soc-device=1",
    "raw_html_file": "https://serpapi.com/searches/7e9e85e70fe7f094/65533314b68f8b5cf35732bd.html",
    "prettify_html_file": "https://serpapi.com/searches/7e9e85e70fe7f094/65533314b68f8b5cf35732bd.prettify",
    "total_time_taken": 1.36
  },
  "search_parameters": {
    "engine": "google_hotels",
    "q": "Bali Resorts",
    "gl": "us",
    "hl": "en",
    "currency": "USD",
    "check_in_date": "2024-12-27",
    "check_out_date": "2024-12-28",
    "adults": 2,
    "children": 0
  },
  "search_information": {
    "total_results": 15000
  },
  "brands": [
    {
      "id": 33,
      "name": "Accor Live Limitless",
      "children": [
        {
          "id": 67,
          "name": "Banyan Tree"
        },
        {
          "id": 101,
          "name": "Grand Mercure"
        },
        {
          "id": 21,
          "name": "Ibis"
        },
        ...
      ]
    },
    {
      "id": 229,
      "name": "Aston"
    },
    {
      "id": 18,
      "name": "Best Western International",
      "children": [
        {
          "id": 155,
          "name": "Best Western"
        },
        {
          "id": 105,
          "name": "Best Western Premier"
        }
      ]
    },
    ...
  ],
  "properties": [
    {
      "type": "hotel",
      "name": "The Ritz-Carlton, Bali",
      "description": "Zen-like quarters, some with butler service, in an upscale property offering refined dining & a spa.",
      "logo": "https://www.gstatic.com/travel-hotels/branding/df3424c9-7799-4d27-aeb5-cdcabf8bf950.png",
      "sponsored": true,
      "gps_coordinates": {
        "latitude": -8.830670999999999,
        "longitude": 115.21533099999999
      },
      "check_in_time": "3:00 PM",
      "check_out_time": "12:00 PM",
      "rate_per_night": {
        "lowest": "$347",
        "extracted_lowest": 347,
        "before_taxes_fees": "$287",
        "extracted_before_taxes_fees": 287
      },
      "prices": [
        {
          "source": "The Ritz-Carlton, Bali",
          "logo": "https://www.gstatic.com/travel-hotels/branding/df3424c9-7799-4d27-aeb5-cdcabf8bf950.png",
          "rate_per_night": {
            "lowest": "$347",
            "extracted_lowest": 347,
            "before_taxes_fees": "$287",
            "extracted_before_taxes_fees": 287
          }
        }
      ],
      "nearby_places": [
        {
          "name": "I Gusti Ngurah Rai International Airport",
          "transportations": [
            {
              "type": "Taxi",
              "duration": "29 min"
            }
          ]
        },
        {
          "name": "Bejana, Indonesian Restaurant at The Ritz-Carlton, Bali",
          "transportations": [
            {
              "type": "Walking",
              "duration": "1 min"
            }
          ]
        }
      ],
      "hotel_class": "5-star hotel",
      "extracted_hotel_class": 5,
      "images": [
        {
          "thumbnail": "https://lh3.googleusercontent.com/proxy/3GU0rF7c5y00MbsWRPAkzdY0Mql0YhH7coFNK9nRDE8GwlzsRbc7xHB8lu8ZN6ApPUiuM7GvjB4RWoJaQCcD4kjARaoyDitH27WhWiAdz8dfG4TCY6pafMo52UQH5W76rgH3JESuGN3ohZ20fEwSgBKGmdQZOA=s287-w287-h192-n-k-no-v1",
          "original_image": "https://d2hyz2bfif3cr8.cloudfront.net/imageRepo/7/0/151/470/91/rz-dpssw-private-pool-29237_Classic-Hor_O.jpg"
        },
        {
          "thumbnail": "https://lh5.googleusercontent.com/proxy/IUakfiu-4guLHoPdx1ippkGtRxwdDW9pxf3j8kRq8FtIKOnnCepdr1DBB1vDftDvbY1IDqTCsgzrvgXdzBB6sJU8-z-7yawWRg-tsLlqSy9XI9mbudAurUnJBm9tmF4sJJFZXkuiyUc7zaNMZ6XPZ3MJDhEzWw=s287-w287-h192-n-k-no-v1",
          "original_image": "https://d2hyz2bfif3cr8.cloudfront.net/imageRepo/7/0/147/874/299/dpssw-villa-0105-hor-clsc_O.jpg"
        },
        {
          "thumbnail": "https://lh6.googleusercontent.com/proxy/MWhomwXIPhVXgnq1drMsEuPzTr2FB1f5ePbnpGxtyxwOcB0zr7xKrN34pDzJQVEPRJxFtaSFKfGngytJW4jO2c_9jiVCQuOb6OgRBqn-TEAI172VO2Ptx3G1bx1OpnvBsIcIhTk4ZoNH4EWwUIRxEgVoYQg2EQ=s287-w287-h192-n-k-no-v1",
          "original_image": "https://d2hyz2bfif3cr8.cloudfront.net/imageRepo/7/0/147/874/243/dpssw-villa-0107-hor-clsc_O.jpg"
        },
        ...
      ],
      "overall_rating": 4.6,
      "reviews": 3614,
      "location_rating": 2.8,
      "reviews_breakdown": [
        {
          "name": "Property",
          "description": "Property",
          "total_mentioned": 605,
          "positive": 534,
          "negative": 44,
          "neutral": 27
        },
        {
          "name": "Service",
          "description": "Service",
          "total_mentioned": 599,
          "positive": 507,
          "negative": 74,
          "neutral": 18
        },
        {
          "name": "Nature",
          "description": "Nature and outdoor activities",
          "total_mentioned": 256,
          "positive": 212,
          "negative": 29,
          "neutral": 15
        }
      ],
      "amenities": [
        "Free Wi-Fi",
        "Free parking",
        "Pools",
        "Hot tub",
        "Air conditioning",
        "Fitness centre",
        "Spa",
        "Beach access",
        "Bar",
        "Restaurant",
        "Room service",
        "Kitchen in some rooms",
        "Airport shuttle",
        "Full-service laundry",
        "Accessible",
        "Business centre",
        "Child-friendly",
        "Smoke-free property"
      ],
      "property_token": "ChcIyo2FjenOuZ8xGgsvZy8xdGYyMTV2aBAB",
      "serpapi_property_details_link": "<SerpApi JSON endpoint>"
    },
    {
      "type": "hotel",
      "name": "Mulia Resort - Nusa Dua, Bali",
      "description": "Upmarket rooms & suites in a premium beachfront getaway with 6 restaurants & 4 pools.",
      "logo": "https://www.gstatic.com/travel-hotels/branding/icon_220.png",
      "sponsored": true,
      "gps_coordinates": {
        "latitude": -8.81621,
        "longitude": 115.22117399999999
      },
      "check_in_time": "3:00 PM",
      "check_out_time": "12:00 PM",
      "rate_per_night": {
        "lowest": "$484",
        "extracted_lowest": 484,
        "before_taxes_fees": "$388",
        "extracted_before_taxes_fees": 388
      },
      "prices": [
        {
          "source": "Priceline",
          "logo": "https://www.gstatic.com/travel-hotels/branding/icon_220.png",
          "rate_per_night": {
            "lowest": "$484",
            "extracted_lowest": 484,
            "before_taxes_fees": "$388",
            "extracted_before_taxes_fees": 388
          }
        }
      ],
      "nearby_places": [
        {
          "name": "I Gusti Ngurah Rai International Airport",
          "transportations": [
            {
              "type": "Taxi",
              "duration": "21 min"
            }
          ]
        },
        ...
      ],
      "hotel_class": "5-star hotel",
      "extracted_hotel_class": 5,
      "images": [
        {
          "thumbnail": "https://lh5.googleusercontent.com/p/AF1QipNP9sahhj7GhCqvn_UuJ6E_k6YLxdVXKgj_L1Pe=s287-w287-h192-n-k-no-v1",
          "original_image": "https://lh5.googleusercontent.com/p/AF1QipNP9sahhj7GhCqvn_UuJ6E_k6YLxdVXKgj_L1Pe=s10000"
        },
        ...
      ],
      "overall_rating": 4.7,
      "reviews": 7567,
      "location_rating": 3.5,
      "reviews_breakdown": [
        {
          "name": "Property",
          "description": "Property",
          "total_mentioned": 1088,
          "positive": 971,
          "negative": 58,
          "neutral": 59
        },
        ...
      ],
      "amenities": [
        "Free breakfast",
        "Free Wi-Fi",
        "Parking ($)",
        ...
      ],
      "property_token": "ChcIyo2FjteOuZ8xGgsvZy8xdGYyMTV2aBAB",
      "serpapi_property_details_link": "<SerpApi JSON endpoint>"
    },
    {
      "type": "hotel",
      "name": "Anantara Uluwatu Bali Resort",
      "description": "Chic suites with in-room bars & high-end sound systems, plus restaurants, a spa & an infinity pool.",
      "link": "https://www.anantara.com/uluwatu-bali?utm_source=GoogleMyBusiness&utm_medium=GMB&utm_term=Uluwatu&utm_content=Home&utm_campaign=Google_GMB",
      "gps_coordinates": {
        "latitude": -8.8085355,
        "longitude": 115.107911
      },
      "check_in_time": "3:00 PM",
      "check_out_time": "12:00 PM",
      "rate_per_night": {
        "lowest": "$247",
        "extracted_lowest": 247,
        "before_taxes_fees": "$199",
        "extracted_before_taxes_fees": 199
      },
      "total_rate": {
        "lowest": "$1,233",
        "extracted_lowest": 1233,
        "before_taxes_fees": "$994",
        "extracted_before_taxes_fees": 994
      },
      "deal": "27% less than usual",
      "deal_description": "Great Deal",
      "nearby_places": [
        {
          "name": "Padang Padang Beach",
          "transportations": [
            {
              "type": "Taxi",
              "duration": "10 min"
            }
          ]
        },
        ...
      ],
      "hotel_class": "5-star hotel",
      "extracted_hotel_class": 5,
      "images": [
        {
          "thumbnail": "https://lh5.googleusercontent.com/p/AF1QipOWiZ-Gb1n4TFh_g0UJSqViox2Gt5X30ESdFIg9=s287-w287-h192-n-k-no-v1",
          "original_image": "https://lh5.googleusercontent.com/p/AF1QipOWiZ-Gb1n4TFh_g0UJSqViox2Gt5X30ESdFIg9=s10000"
        },
        ...
      ],
      "overall_rating": 4.5,
      "reviews": 2210,
      "ratings": [
        {
          "stars": 5,
          "count": 1613
        },
        {
          "stars": 4,
          "count": 350
        },
        {
          "stars": 3,
          "count": 118
        },
        {
          "stars": 2,
          "count": 38
        },
        {
          "stars": 1,
          "count": 91
        }
      ],
      "location_rating": 3.6,
      "reviews_breakdown": [
        {
          "name": "Service",
          "description": "Service",
          "total_mentioned": 397,
          "positive": 324,
          "negative": 53,
          "neutral": 20
        },
        ...
      ],
      "amenities": [
        "Breakfast",
        "Free Wi-Fi",
        "Free parking",
        ...
      ],
      "property_token": "ChcIyo2FjenOuZ8xGgsvgodxdGYyMTV2aBAB",
      "serpapi_property_details_link": "<SerpApi JSON endpoint>"
    },
    ...
  ],
  "serpapi_pagination": {
    "current_from": 1,
    "current_to": 20,
    "next_page_token": "CBI=",
    "next": "https://serpapi.com/search.json?adults=2&check_in_date=2024-12-27&check_out_date=2024-12-28&children=0&currency=USD&engine=google_hotels&gl=us&hl=en&next_page_token=CBI%3D&q=Bali+Resorts"
  }
}

Example Vacation Rentals with q: Bali

Example Vacation Rentals with q: Bali

JSON Example

{
  "search_metadata": {
    "id": "655335bab68f8b5cf2b314a3",
    "status": "Success",
    "json_endpoint": "https://serpapi.com/searches/7e9e85e70fe7f094/655335bab68f8b5cf2b314a3.json",
    "created_at": "2023-11-14 08:54:18 UTC",
    "processed_at": "2023-11-14 08:54:18 UTC",
    "google_hotels_url": "https://www.google.com/_/TravelFrontendUi/data/batchexecute?rpcids=AtySUc&source-path=/travel/search&hl=en&gl=us&rt=c&soc-app=162&soc-platform=1&soc-device=1",
    "raw_html_file": "https://serpapi.com/searches/7e9e85e70fe7f094/655335bab68f8b5cf2b314a3.html",
    "prettify_html_file": "https://serpapi.com/searches/7e9e85e70fe7f094/655335bab68f8b5cf2b314a3.prettify",
    "total_time_taken": 3.34
  },
  "search_parameters": {
    "engine": "google_hotels",
    "q": "Bali",
    "gl": "us",
    "hl": "en",
    "currency": "USD",
    "check_in_date": "2024-12-27",
    "check_out_date": "2024-12-28",
    "adults": 2,
    "children": 0,
    "vacation_rentals": true
  },
  "search_information": {
    "total_results": 14920
  },
  "properties": [
    {
      "type": "vacation rental",
      "name": "Yana Villas Kemenuh",
      "gps_coordinates": {
        "latitude": -8.555330276489258,
        "longitude": 115.28772735595703
      },
      "check_in_time": "2:00 PM",
      "check_out_time": "12:00 AM",
      "rate_per_night": {
        "lowest": "$40",
        "extracted_lowest": 40,
        "before_taxes_fees": "$33",
        "extracted_before_taxes_fees": 33
      },
      "total_rate": {
        "lowest": "$202",
        "extracted_lowest": 202,
        "before_taxes_fees": "$167",
        "extracted_before_taxes_fees": 167
      },
      "prices": [
        {
          "source": "Bluepillow.com",
          "logo": "https://www.gstatic.com/travel-hotels/branding/190ff319-d0fd-4c45-bfc8-bad6f5f395f2.png",
          "rate_per_night": {
            "lowest": "$40",
            "extracted_lowest": 40,
            "before_taxes_fees": "$33",
            "extracted_before_taxes_fees": 33
          }
        }
      ],
      "nearby_places": [
        {
          "name": "I Gusti Ngurah Rai International Airport",
          "transportations": [
            {
              "type": "Taxi",
              "duration": "58 min"
            },
            {
              "type": "Public transport",
              "duration": "2 hr 22 min"
            }
          ]
        },
        {
          "name": "Warung Thepaon",
          "transportations": [
            {
              "type": "Taxi",
              "duration": "10 min"
            }
          ]
        }
      ],
      "images": [
        {
          "thumbnail": "https://lh4.googleusercontent.com/proxy/1DpPI6Ipxyb3hCE5eBcnPWRiMvGGSgu-h50VkgCT_1ooT9mIPUIP2PvnfVHtHKpVCMJ6eG5x-lsYZRy4_cVg74cgY5qvDp-toQeT9bhkaSv15tUpFqVz8B0hr4JPdDsb6q-3Y_XJRhZmMuFVvLd0RU5Kg7GDqww=s287-w287-h192-n-k-no-v1",
          "original_image": "https://q-xx.bstatic.com/xdata/images/hotel/max1440x1080/223247563.jpg?k=17e4b19b4710d224007544d313b2e012e33475d53877bdea8cf036d8f6a60c1c&o="
        },
        {
          "thumbnail": "https://lh4.googleusercontent.com/proxy/HDK_ROG3ZEbuBkU5LEh2GIhGoiVm3Eof-1OBgO_50NdTLMh0BJ0W9r4scwbIi2bD53V897tTaTKYLP345Sf397KHtGijMdc2oFJuxdYGyygFwYECxX_88F8M38fjic99TnEJhqpXf1aNt_pV2uXDJD7K-ncqAA=s287-w287-h192-n-k-no-v1",
          "original_image": "https://q-xx.bstatic.com/xdata/images/hotel/max1440x1080/223247466.jpg?k=4bcc896b368c2bf0fc74edf39003f4ae18889e27d7c6df3d8ade34be887986be&o="
        },
        {
          "thumbnail": "https://lh6.googleusercontent.com/proxy/LRDW9oGz8oY9Pzis9Nli9yvOULgbnSqHd8tsg4mwHwLpBvCcm08r8F8xzFl9q5gymyiKlzBNNXdOqXPRR_mmBQndFePSlxDJcI7NSdSXR6wu8o3i-E7-nZiRnPJ2-BSmBpI8EDFMZjDBOkIBbRYcWfYP76b29g=s287-w287-h192-n-k-no-v1",
          "original_image": "https://s-light.tiket.photos/t/01E25EBZS3W0FY9GTG6C42E1SE/t_htl-dskt/tix-hotel/images-web/2020/10/31/9e51d564-cc30-4a2a-ab14-809d6deede87-1604146952201-3950d28982374ab237d1e13478487cd9.jpg"
        },
        ...
      ],
      "overall_rating": 3.994737,
      "reviews": 152,
      "location_rating": 3.3,
      "amenities": [
        "Air conditioning",
        "Airport shuttle",
        "Balcony",
        "Crib",
        "Fitness center",
        "Outdoor pool",
        "Smoke-free",
        "Washer",
        "Free parking",
        "Free Wi-Fi"
      ],
      "excluded_amenities": [
        "No beach access",
        "Not kid-friendly",
        "No elevator",
        "No fireplace",
        "No heating",
        "No hot tub",
        "No indoor pool",
        "No ironing board",
        "No kitchen",
        "No microwave",
        "No outdoor grill",
        "No oven stove",
        "No patio",
        "Not wheelchair accessible"
      ],
      "essential_info": [
        "Entire house",
        "Sleeps 2",
        "1 bedroom",
        "1 bathroom",
        "1 bed",
        "215 sq ft"
      ],
      "property_token": "ChcIyo2FjenOdOasxGgsvZy8xdGYyMTV2aBAB",
      "serpapi_property_details_link": "<SerpApi JSON endpoint>"
    },
    {
      "type": "vacation rental",
      "name": "Tirta sari",
      "gps_coordinates": {
        "latitude": -8.416190147399902,
        "longitude": 115.2825698852539
      },
      "check_in_time": "1:00 PM",
      "check_out_time": "6:00 AM",
      "rate_per_night": {
        "lowest": "$50",
        "extracted_lowest": 50,
        "before_taxes_fees": "$42",
        "extracted_before_taxes_fees": 42
      },
      "total_rate": {
        "lowest": "$252",
        "extracted_lowest": 252,
        "before_taxes_fees": "$208",
        "extracted_before_taxes_fees": 208
      },
      "prices": [
        {
          "source": "Bluepillow.com",
          "logo": "https://www.gstatic.com/travel-hotels/branding/190ff319-d0fd-4c45-bfc8-bad6f5f395f2.png",
          "rate_per_night": {
            "lowest": "$50",
            "extracted_lowest": 50,
            "before_taxes_fees": "$42",
            "extracted_before_taxes_fees": 42
          }
        }
      ],
      "nearby_places": [
        {
          "name": "I Gusti Ngurah Rai International Airport",
          "transportations": [
            {
              "type": "Taxi",
              "duration": "1 hr 35 min"
            }
          ]
        },
        ...
      ],
      "images": [
        {
          "thumbnail": "https://lh6.googleusercontent.com/proxy/HfsdZpRpkAEHaei8gnPjCRbdwsd_EDHupUGPzYmEC5YrCZFxOGoZS5xaiBb7qlTO-d7GMlmdpBM3U1mXlBZknrNYL1IWGAsDhF7bWaB95A1AW35m0YQSBIBR5rXLYHfL8g-7ymvrV-bNa7FtW5ox1LMdZBdJtwI=s287-w287-h192-n-k-no-v1",
          "original_image": "https://s-light.tiket.photos/t/01E25EBZS3W0FY9GTG6C42E1SE/t_htl-dskt/tix-hotel/images-web/2023/05/17/b14d0a14-388c-4eff-8cfa-71ba9665045c-1684315756338-947f4308781850dc6b18828071a0c6f3.jpg"
        },
        ...
      ],
      "overall_rating": 4.225,
      "reviews": 12,
      "location_rating": 3.6,
      "amenities": [
        "Air conditioning",
        "Balcony",
        "Crib"
      ],
      "excluded_amenities": [
        "No airport shuttle",
        "No beach access",
        "Not kid-friendly",
        ...
      ],
      "essential_info": [
        "Entire villa",
        "Sleeps 3",
        "1 bedroom",
        "1 bathroom",
        "269 sq ft"
      ],
      "property_token": "ChcIyo2FjenOuZ8xGgsvZy8xdGds4TV2aBAB",
      "serpapi_property_details_link": "<SerpApi JSON endpoint>"
    },
    {
      "type": "vacation rental",
      "name": "Keramas Sacred River Village",
      "link": "https://deals.vio.com?sig=73aca13c7f952d2641c156f3e69125e1eb497c325f122828ee5aa8797168b9a12d32303331333438363233&turl=https%3A%2F%2Fwww.vio.com%2FHotel%2FSearch%3FhotelId%3D5255198%26utm_source%3Dgha-vr%26utm_campaign%3Dstatic%26openHotelDetails%3D1",
      "gps_coordinates": {
        "latitude": -8.586440086364746,
        "longitude": 115.3296127319336
      },
      "check_in_time": "2:00 PM",
      "check_out_time": "12:30 AM",
      "rate_per_night": {
        "lowest": "$46",
        "extracted_lowest": 46,
        "before_taxes_fees": "$38",
        "extracted_before_taxes_fees": 38
      },
      "total_rate": {
        "lowest": "$228",
        "extracted_lowest": 228,
        "before_taxes_fees": "$188",
        "extracted_before_taxes_fees": 188
      },
      "prices": [
        {
          "source": "Vio.com",
          "logo": "https://www.gstatic.com/travel-hotels/branding/7287187d-2586-494f-92ff-726979e94c2a.png",
          "rate_per_night": {
            "lowest": "$46",
            "extracted_lowest": 46,
            "before_taxes_fees": "$38",
            "extracted_before_taxes_fees": 38
          }
        }
      ],
      "nearby_places": [
        {
          "name": "I Gusti Ngurah Rai International Airport",
          "transportations": [
            {
              "type": "Taxi",
              "duration": "52 min"
            }
          ]
        },
        {
          "name": "Warong Legong",
          "transportations": [
            {
              "type": "Taxi",
              "duration": "4 min"
            }
          ]
        }
      ],
      "images": [
        {
          "thumbnail": "https://lh5.googleusercontent.com/proxy/yXB-H-lTQ1MH1bWIMXAU3JRRJCiLC6apOl-dkE2FhpTQLljrYhEayGK0_a5hGaLnJlVpKh072yvLFV2mH-brVIpRGBBftAvu-d3bAbjHK9EKMmjzoARdCsUW_KnuvtIZwvC0r6DAyevg1JL2dDflEB2PBoV8qFE=s287-w287-h192-n-k-no-v1",
          "original_image": "https://p.fih.io/v2/nSr0o-3gbZN8o1xMecXCcG-BkDeQVo3k-wOeVogkTe7ajuFOX7O-WA8aRWhXz1jsToZif_TsA_xCWfhWRa0Z3Ke1vT1z90khCU2Da7x0-xiShVn8GuC9vj7KBaOhg-vgKl4c_rzAKF78OTF4en3ketkYyx1j1dLbUfhlOgkNcIcn9PwNtk_AU2csbUk6dd9sGqAEVmr2qjQMPI095Pdv3pEtFPIxOxxOPC-YWoFEg4yXvCZQ3nG9m-EOZqnW2lodL_hO30Ezy-jlqKVHa0uB_8O59smfYWZisPxpsuKafAZkFxNkAjW1f-Y-DpE9Rgh64AZ_KQd1YCIQC1WVxAG4bqbEaIBWIgb2"
        },
        {
          "thumbnail": "https://lh3.googleusercontent.com/proxy/K3K-ywMEqxZwT8DWkI4v8_qukJDwY01i8mOZDP6ppAlbh9GQcGotrQDWO0NSBo3GW5x_hXnxGGZpvBVCrsNtSfk10DEfSB4qYaybt5TLWvxjwPXrUQCEGqkKEHDdcTpSxGg8MvgmMe-GBrQLO0MjWLxn4XTO7LU=s287-w287-h192-n-k-no-v1",
          "original_image": "https://p.fih.io/v2/nSr0o-3gbZN8o1xMecXCcG-BkDeQVo3k-wOeVogkTe7ajuFOX7O-WA8aRWhXz1jsToZif_TsA_xCWfhWRa0ZrqOuunYD91xgFQ_ea84R1z7jkWbdLumZpU_AM4PivpuFGD9eyu67MlTVFzF4en3ketkYyx1j1dLbUfhlOgkNcIcn9PwNtk_AU2csbUk6dd9sGqAEVmr2qjQMPI095Pdv3pEtFPIxOxxOPC-YWoFEg4yXvCZQ3nG9m-EOZqnW2lodL_hO30Ezy-jlqKVHa0uB_8O59smfYWZisPxpsuKafAZiAxNnXzS1fLw-U5E9Rgh64AZ_KQd1YCKpLdhy5WGXi-CaBHchStHA"
        },
        {
          "thumbnail": "https://lh4.googleusercontent.com/proxy/Rm6W1Ti3m6XIgyV8UE786I_f4EPBIFcFesq8eJbgqc0sgv1G6bBwfzLK8FYO6jmW0idKZsfkL0Ozo43Fr8J0AVaCEAlh71GTZwfBgafPG-craBwN__kAGzd9KukM_HLyxLx1Qf9SQ5NvW9R7P5GwK4fkB8mowuI=s287-w287-h192-n-k-no-v1",
          "original_image": "https://p.fih.io/v2/nSr0o-3gbZN8o1xMecXCcG-BkDeQVo3k-wOeVogkTe7ajuFOX7O-WA8aRWhXz1jsToZif_TsA_xCWfhWRa0ZvcfmhAQK8GZjLRmGdIFV8DvNriDeH-2U-Dz7cr-i_Z-2KgB83r7cGl_FJTF4en3ketkYyx1j1dLbUfhlOgkNcIcn9PwNtk_AU2csbUk6dd9sGqAEVmr2qjQMPI095Pdv3pEtFPIxOxxOPC-YWoFEg4yXvCZQ3nG9m-EOZqnW2lodL_hO30Ezy-jlqKVHa0uB_8O59smfYWZisPxpsuKafAZkFy1rXyCmePQpaZE9Rgh64AZ_KQd1YCJpER13G6kZmqrt3sn5ocKZ"
        },
        ...
      ],
      "overall_rating": 4.35,
      "reviews": 152,
      "location_rating": 2.8,
      "amenities": [
        "Air conditioning",
        "Airport shuttle",
        "Outdoor pool",
        ...
      ],
      "excluded_amenities": [
        "No beach access",
        "No elevator",
        "No fireplace",
        ...
      ],
      "essential_info": [
        "Sleeps 10",
        "8 bedrooms",
        "5 bathrooms"
      ],
      "property_token": "ChcIyo2Fjdjs2uZ8xGgsvZy8xdGYyMTV2aBAB",
      "serpapi_property_details_link": "<SerpApi JSON endpoint>"
    },
    ...
  ],
  "serpapi_pagination": {
    "current_from": 1,
    "current_to": 18,
    "next_page_token": "CBI=",
    "next": "https://serpapi.com/search.json?adults=2&check_in_date=2024-12-27&check_out_date=2024-12-28&children=0&currency=USD&engine=google_hotels&gl=us&hl=en&next_page_token=CBI%3D&q=Bali&vacation_rentals=true"
  }
}