Google Hotels Properties API
SerpApi is able to scrape, extract, and make sense of Google Hotels Properties, they are parsed and included in the properties array in the JSON output. Properties can include name, rate_per_night, reviews, amenities, and many other fields.
The API endpoint is https://serpapi.com/search?engine=google_hotels
Head to the playground for a live and interactive demo.
API examples
Example with q: Bali Resorts
{
...
"search_information": {
"total_results": 15000
},
"brands": [
{
"id": 33,
"name": "Accor Live Limitless",
"children": [
{
"id": 67,
"name": "Banyan Tree"
},
{
"id": 101,
"name": "Grand Mercure"
},
...
]
},
{
"id": 223,
"name": "Archipelago International",
"children": [
{
"id": 229,
"name": "Aston"
},
{
"id": 225,
"name": "Favehotel"
},
...
]
},
...
],
"ads": [
{
"name": "Jannata Resort and Spa Ubud",
"source": "Booking.com",
"source_icon": "https://www.gstatic.com/travel-hotels/branding/icon_184.png",
"link": "https://www.google.com/aclk?sa=l&ai=DChsSEwjbwuj-7vWWAxWhNQgFHW1wJBMYACICCAEQDxoCbWQ&co=1&gclid=EAIaIQobChMI28Lo_u71lgMVoTUIBR1tcCQTEA0YASABEgJVLfD_BwE&cid=CAASuwHkaB3BTnwrhfhMh9TXqsjwunwNUErpeOADg7y3GQumv-k1Zy7rC7BZPgyqlBgmYUs3ak7lShhy842aBpZKQU_RWYnD1jInzRS9Xb-NV5NvFdMqOJgLt-SyqdfDG52ee-MHhMtejps5M_bYR6EfZv7oXw8knf1G9lZ8LKbU3XCuaXy_7OXA1loxIoBLFoy4uCGZEofDDQX3JHlIgppEhBp9wkTaVTq8UkAwD8afghl53hvRR7c07Ncgdhyj&sig=AOD64_24elbSZtvxpmy4MTNXZZRQiIRMdA&adurl=",
"property_token": "CgoIidiWh7iY7MVPEAE",
"serpapi_property_details_link": "https://serpapi.com/search.json?adults=2&check_in_date=2026-11-20&check_out_date=2026-11-22&children=0¤cy=USD&engine=google_hotels&gl=us&hl=en&property_token=CgoIidiWh7iY7MVPEAE&q=Bali+Resorts",
"gps_coordinates": {
"latitude": -8.482618,
"longitude": 115.25817900000001
},
"hotel_class": 5,
"thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQh0pbqUVypuMqbXaA0ASZZXm9g7-kWpIFCmZnmGxKZ09soaw&s=10",
"overall_rating": 4.7,
"reviews": 1122,
"price": "$104",
"extracted_price": 104,
"amenities": [
"Spa",
"Pool",
...
],
"free_cancellation": true
},
{
"name": "Four Seasons Resort Bali At Sayan",
"source": "Expedia.com",
"source_icon": "https://www.gstatic.com/travel-hotels/branding/ac238c97-1652-4830-8da8-bb8d8883af88.png",
"link": "https://www.google.com/aclk?sa=l&ai=DChsSEwjbwuj-7vWWAxWhNQgFHW1wJBMYACICCAEQAxoCbWQ&co=1&gclid=EAIaIQobChMI28Lo_u71lgMVoTUIBR1tcCQTEA0YAiABEgIQvPD_BwE&cid=CAASuwHkaB3BTnwrhfhMh9TXqsjwunwNUErpeOADg7y3GQumv-k1Zy7rC7BZPgyqlBgmYUs3ak7lShhy842aBpZKQU_RWYnD1jInzRS9Xb-NV5NvFdMqOJgLt-SyqdfDG52ee-MHhMtejps5M_bYR6EfZv7oXw8knf1G9lZ8LKbU3XCuaXy_7OXA1loxIoBLFoy4uCGZEofDDQX3JHlIgppEhBp9wkTaVTq8UkAwD8afghl53hvRR7c07Ncgdhyj&sig=AOD64_0viBjdD3MamLk7HLz8MEKEDcLNHQ&adurl=",
"property_token": "CgoI7_HxzMGngNt_EAE",
"serpapi_property_details_link": "https://serpapi.com/search.json?adults=2&check_in_date=2026-11-20&check_out_date=2026-11-22&children=0¤cy=USD&engine=google_hotels&gl=us&hl=en&property_token=CgoI7_HxzMGngNt_EAE&q=Bali+Resorts",
"gps_coordinates": {
"latitude": -8.50032,
"longitude": 115.24148199999999
},
"hotel_class": 5,
"thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQBk5wjA6pONl5izslNdLQ5Csht3De9CcOYBOqCQ_5ujR2hrQ&s=10",
"overall_rating": 4.8,
"reviews": 1742,
"price": "$1,153",
"extracted_price": 1153,
"amenities": [
"Hot tub",
"Spa",
...
]
},
...
],
"properties": [
{
"type": "hotel",
"name": "RIMBA by AYANA Bali",
"description": "Modern rooms & suites in a sleek property with 30 dining & bar options, an outdoor pool & a spa.",
"link": "https://www.ayana.com/bali/rimba-by-ayana/",
"property_token": "ChgI56qezNac0-O6ARoLL20vMDEyc250MTkQAQ",
"serpapi_property_details_link": "https://serpapi.com/search.json?adults=2&check_in_date=2026-11-20&check_out_date=2026-11-22&children=0¤cy=USD&engine=google_hotels&gl=us&hl=en&property_token=ChgI56qezNac0-O6ARoLL20vMDEyc250MTkQAQ&q=Bali+Resorts",
"gps_coordinates": {
"latitude": -8.7934334,
"longitude": 115.13946729999999
},
"check_in_time": "3:00 PM",
"check_out_time": "12:00 PM",
"rate_per_night": {
"display_price": "$154",
"extracted_display_price": 154,
"lowest": "$187",
"extracted_lowest": 187,
"before_taxes_fees": "$154",
"extracted_before_taxes_fees": 154,
"after_taxes_fees": "$187",
"extracted_after_taxes_fees": 187
},
"total_rate": {
"display_price": "$309",
"extracted_display_price": 309,
"lowest": "$374",
"extracted_lowest": 374,
"before_taxes_fees": "$309",
"extracted_before_taxes_fees": 309,
"after_taxes_fees": "$374",
"extracted_after_taxes_fees": 374
},
"nearby_places": [
{
"name": "Jimbaran Beach",
"transportations": [
{
"type": "Taxi",
"duration": "10 min"
}
]
},
{
"name": "I Gusti Ngurah Rai International Airport",
"transportations": [
{
"type": "Taxi",
"duration": "25 min"
}
]
},
...
],
"hotel_class": "5-star hotel",
"extracted_hotel_class": 5,
"images": [
{
"thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWmIcy8lYVJQx7vONPC7Ucu4lffr_EsUhS9bE3Vll9WeGSOjKEkmlxSQmptgnXWtJKANVVJqvp3aOK4v76vyVMbFENrv6ChaukOZUPmfKvNmllo_AQ_wmvHTn_mz2bPFYpHgnB3cLA=s287-w287-h192-n-k-no-v1",
"original_image": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWmIcy8lYVJQx7vONPC7Ucu4lffr_EsUhS9bE3Vll9WeGSOjKEkmlxSQmptgnXWtJKANVVJqvp3aOK4v76vyVMbFENrv6ChaukOZUPmfKvNmllo_AQ_wmvHTn_mz2bPFYpHgnB3cLA=s10000"
},
{
"thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWkWPKGRX8AvKPC0K_a1iBTR6Gfq2V6zyfLOzol6TbKh-woE81uqTj9sa3tmrm3eXxQJOXWc4tZCfQiZpkqqbTPlO7mhgjikt58jOLmExe_8AGtXXdxMB0zAgetNVo0_fB9ezsbD=s287-w287-h192-n-k-no-v1",
"original_image": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWkWPKGRX8AvKPC0K_a1iBTR6Gfq2V6zyfLOzol6TbKh-woE81uqTj9sa3tmrm3eXxQJOXWc4tZCfQiZpkqqbTPlO7mhgjikt58jOLmExe_8AGtXXdxMB0zAgetNVo0_fB9ezsbD=s10000"
},
...
],
"overall_rating": 4.7,
"reviews": 6589,
"ratings": [
{
"stars": 5,
"count": 5406
},
{
"stars": 4,
"count": 750
},
{
"stars": 3,
"count": 167
},
{
"stars": 2,
"count": 64
},
{
"stars": 1,
"count": 202
}
],
"location_rating": 3.7,
"reviews_breakdown": [
{
"name": "Property",
"description": "Property",
"total_mentioned": 657,
"positive": 590,
"negative": 44,
"neutral": 23,
"category_token": "qPRjhHica1yRnFiSmp5fVDl5RUBRfkFqUUklI5wFANGQDTY",
"serpapi_link": "https://serpapi.com/search.json?category_token=qPRjhHica1yRnFiSmp5fVDl5RUBRfkFqUUklI5wFANGQDTY&engine=google_hotels_reviews&hl=en&property_token=ChgI56qezNac0-O6ARoLL20vMDEyc250MTkQAQ"
},
{
"name": "Service",
"description": "Service",
"total_mentioned": 455,
"positive": 390,
"negative": 50,
"neutral": 15,
"category_token": "DZ7RYHica1yRnFiSmp5fVDl5eXBqUVlmciojjAEAtX8MDA",
"serpapi_link": "https://serpapi.com/search.json?category_token=DZ7RYHica1yRnFiSmp5fVDl5eXBqUVlmciojjAEAtX8MDA&engine=google_hotels_reviews&hl=en&property_token=ChgI56qezNac0-O6ARoLL20vMDEyc250MTkQAQ"
},
...
],
"amenities": [
"Air conditioning",
"Airport shuttle",
...
],
"eco_certified": true,
"serpapi_google_hotels_reviews_link": "https://serpapi.com/search.json?engine=google_hotels_reviews&hl=en&property_token=ChgI56qezNac0-O6ARoLL20vMDEyc250MTkQAQ",
"serpapi_google_hotels_photos_link": "https://serpapi.com/search.json?engine=google_hotels_photos&property_token=ChgI56qezNac0-O6ARoLL20vMDEyc250MTkQAQ"
},
{
"type": "hotel",
"name": "TanaDewa Resort Ubud Bali by Cross Collection",
"description": "Polished hotel featuring jungle & rice paddy views, plus dining, a gym & an infinity pool.",
"link": "https://www.tanadewaubud.com/",
"property_token": "ChoI95zfzdSX6cb5ARoNL2cvMTFkeGRtX2RxcRAB",
"serpapi_property_details_link": "https://serpapi.com/search.json?adults=2&check_in_date=2026-11-20&check_out_date=2026-11-22&children=0¤cy=USD&engine=google_hotels&gl=us&hl=en&property_token=ChoI95zfzdSX6cb5ARoNL2cvMTFkeGRtX2RxcRAB&q=Bali+Resorts",
"gps_coordinates": {
"latitude": -8.544117199999999,
"longitude": 115.2504635
},
"check_in_time": "2:00 PM",
"check_out_time": "12:00 PM",
"rate_per_night": {
"display_price": "$85",
"extracted_display_price": 85,
"lowest": "$93",
"extracted_lowest": 93,
"before_taxes_fees": "$85",
"extracted_before_taxes_fees": 85,
"after_taxes_fees": "$93",
"extracted_after_taxes_fees": 93
},
"total_rate": {
"display_price": "$170",
"extracted_display_price": 170,
"lowest": "$186",
"extracted_lowest": 186,
"before_taxes_fees": "$170",
"extracted_before_taxes_fees": 170,
"after_taxes_fees": "$186",
"extracted_after_taxes_fees": 186
},
"nearby_places": [
{
"name": "I Gusti Ngurah Rai International Airport",
"transportations": [
{
"type": "Taxi",
"duration": "59 min"
}
]
},
{
"name": "TanaRasa Restaurant Ubud",
"transportations": [
{
"type": "Walking",
"duration": "2 min"
}
]
}
],
"hotel_class": "5-star hotel",
"extracted_hotel_class": 5,
"images": [
{
"thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWmNQoCVqHh4NpYpKfD-AggMZVA55i6Vwo5T2gw9s-KkhGurA1o_xyj7LFq4YjwcdwiKtLd3vC1HIqkBPOG-D0uirIR28SMQTW8C28J9flKieeVcsHIC8tGWW-to1-05HF3tWB3-=s287-w287-h192-n-k-no-v1",
"original_image": "https://lh3.googleusercontent.com/gps-cs-s/AHRPTWmNQoCVqHh4NpYpKfD-AggMZVA55i6Vwo5T2gw9s-KkhGurA1o_xyj7LFq4YjwcdwiKtLd3vC1HIqkBPOG-D0uirIR28SMQTW8C28J9flKieeVcsHIC8tGWW-to1-05HF3tWB3-=s10000"
},
{
"thumbnail": "https://lh3.googleusercontent.com/proxy/ullrTNw_Qq8WRE3o6l3qhZmN0D6HnZS549-U-IrCcmCg4Zyl4ZpXtrXsGSDqLQznAcXBlvbjk9n8mJ5Whhl_VCjsadydk5f4PSC9QkEEEFdgyfZmmqZc7O0Vri6F3uYKrrUEyBTsGvY0waxxsegZGjJy_kh9Qn0=s287-w287-h192-n-k-no-v1",
"original_image": "https://www.iceportal.com/data/2813-188788-f91891024_XXLejpg/Indonesia/Ubud-Gianyar/Tanadewa-Resort-Ubud-Bali-by-Cross-Collection/Photo/Tanadewa-Resort-Ubud-Bali-by-Cross-Collection-Ubud-Gianyar-Undefined-Library.jpg"
},
...
],
"overall_rating": 4.8,
"reviews": 2455,
"ratings": [
{
"stars": 5,
"count": 2209
},
{
"stars": 4,
"count": 172
},
{
"stars": 3,
"count": 33
},
{
"stars": 2,
"count": 10
},
{
"stars": 1,
"count": 31
}
],
"location_rating": 3.5,
"reviews_breakdown": [
{
"name": "Service",
"description": "Service",
"total_mentioned": 621,
"positive": 604,
"negative": 12,
"neutral": 5,
"category_token": "DZ7RYHica1yRnFiSmp5fVDl5eXBqUVlmciojjAEAtX8MDA",
"serpapi_link": "https://serpapi.com/search.json?category_token=DZ7RYHica1yRnFiSmp5fVDl5eXBqUVlmciojjAEAtX8MDA&engine=google_hotels_reviews&hl=en&property_token=ChoI95zfzdSX6cb5ARoNL2cvMTFkeGRtX2RxcRAB"
},
{
"name": "Property",
"description": "Property",
"total_mentioned": 429,
"positive": 414,
"negative": 13,
"neutral": 2,
"category_token": "qPRjhHica1yRnFiSmp5fVDl5RUBRfkFqUUklI5wFANGQDTY",
"serpapi_link": "https://serpapi.com/search.json?category_token=qPRjhHica1yRnFiSmp5fVDl5RUBRfkFqUUklI5wFANGQDTY&engine=google_hotels_reviews&hl=en&property_token=ChoI95zfzdSX6cb5ARoNL2cvMTFkeGRtX2RxcRAB"
},
...
],
"amenities": [
"Air conditioning",
"Restaurant",
...
],
"serpapi_google_hotels_reviews_link": "https://serpapi.com/search.json?engine=google_hotels_reviews&hl=en&property_token=ChoI95zfzdSX6cb5ARoNL2cvMTFkeGRtX2RxcRAB",
"serpapi_google_hotels_photos_link": "https://serpapi.com/search.json?engine=google_hotels_photos&property_token=ChoI95zfzdSX6cb5ARoNL2cvMTFkeGRtX2RxcRAB"
},
...
],
"serpapi_pagination": {
"current_from": 1,
"current_to": 20,
"next_page_token": "CBI=",
"next": "https://serpapi.com/search.json?adults=2&check_in_date=2026-11-20&check_out_date=2026-11-22&children=0¤cy=USD&engine=google_hotels&gl=us&hl=en&next_page_token=CBI%3D&q=Bali+Resorts"
}
}
Example filtering with Eco-certified
{
...
"properties": [
{
"type": "hotel",
"name": "Hilton Garden Inn Bali Ngurah Rai Airport",
"description": "Warm rooms in a serene lodging featuring a restaurant, an outdoor pool & a free airport shuttle.",
"link": "https://www.hilton.com/en/hotels/dpsjagi-hilton-garden-inn-bali-ngurah-rai-airport/?SEO_id=GMB-APAC-GI-DPSJAGI",
"gps_coordinates": {
"latitude": -8.7436776,
"longitude": 115.17103000000002
},
"check_in_time": "3:00 PM",
"check_out_time": "12:00 PM",
...
"eco_certified": true
},
{
"type": "hotel",
"name": "Hilton Bali Resort",
"description": "Posh quarters in an upmarket resort with beach access & a pool, plus a spa, tennis & restaurants.",
"link": "https://www.hilton.com/en/hotels/dpsbahi-hilton-bali-resort/?SEO_id=GMB-APAC-HI-DPSBAHI",
"gps_coordinates": {
"latitude": -8.8256848,
"longitude": 115.21867449999999
},
"check_in_time": "3:00 PM",
"check_out_time": "12:00 PM",
...
"eco_certified": true
},
{
"type": "hotel",
"name": "Conrad Bali",
"description": "Sleek resort with Balinese-inspired lodging, lagoon-style pools & a spa, plus beachfront cabanas.",
"link": "https://www.hilton.com/en/hotels/bpncici-conrad-bali/?SEO_id=GMB-APAC-CI-BPNCICI",
"gps_coordinates": {
"latitude": -8.781029,
"longitude": 115.22515959999998
},
"check_in_time": "3:00 PM",
"check_out_time": "12:00 PM",
...
"eco_certified": true
},
...
],
...
}
Non-matching Properties results (non_matching_properties)
For some searches, non_matching_properties appear when a result is relevant to the query but does not meet one or more active filters (such as min_price, hotel_class, rating etc.).
{
...
"non_matching_properties": [
{
"type": "hotel",
"name": "Aparthotel Adagio Access Paris Porte de Charenton",
"description": "Informal apartment hotel offering bright studios & apartments with kitchenettes, desks & WiFi.",
"link": "https://www.adagio-city.com/fr/hotel-8365-aparthotel-adagio-access-paris-porte-de-charenton/index.shtml?utm_source=googleMaps&utm_medium=seoMaps&utm_campaign=seoMaps&y_source=1_MTUzNTkyODctNzE1LWxvY2F0aW9uLndlYnNpdGU%3D",
"property_token": "ChgI5IiI6Ky47M_hARoLL2cvMXY5NmwzM18QAQ",
"serpapi_property_details_link": "https://serpapi.com/search.json?adults=2&check_in_date=2026-03-18&check_out_date=2026-03-19&children=0¤cy=USD&engine=google_hotels&gl=us&hl=en&max_price=85&next_page_token=CEg%3D&property_token=ChgI5IiI6Ky47M_hARoLL2cvMXY5NmwzM18QAQ&q=paris",
"gps_coordinates": {
"latitude": 48.8292086,
"longitude": 2.4012303999999998
},
"check_in_time": "3:00 PM",
"check_out_time": "11:00 AM",
"rate_per_night": {
"display_price": "$88",
"extracted_display_price": 88,
"lowest": "$104",
"extracted_lowest": 104,
"before_taxes_fees": "$88",
"extracted_before_taxes_fees": 88,
"after_taxes_fees": "$104",
"extracted_after_taxes_fees": 104
},
"total_rate": {
"display_price": "$88",
"extracted_display_price": 88,
"lowest": "$104",
"extracted_lowest": 104,
"before_taxes_fees": "$88",
"extracted_before_taxes_fees": 88,
"after_taxes_fees": "$104",
"extracted_after_taxes_fees": 104
},
"nearby_places": [
{
"name": "Porte de Charenton",
"transportations": [
{
"type": "Walking",
"duration": "5 min"
}
]
},
{
"name": "Paris Charles de Gaulle Airport",
"transportations": [
{
"type": "Taxi",
"duration": "34 min"
},
{
"type": "Public transport",
"duration": "1 hr 15 min"
}
]
},
{
"name": "Les trois amis",
"transportations": [
{
"type": "Walking",
"duration": "2 min"
}
]
}
],
"hotel_class": "2-star tourist residence",
"extracted_hotel_class": 2,
"images": [
{
"thumbnail": "https://lh3.googleusercontent.com/p/AF1QipNOBSf7alzsjd7rTT_2g-79DozhSdn_xyw7JupG=s287-w287-h192-n-k-no-v1",
"original_image": "https://lh5.googleusercontent.com/p/AF1QipNOBSf7alzsjd7rTT_2g-79DozhSdn_xyw7JupG=s10000"
},
{
"thumbnail": "https://lh3.googleusercontent.com/p/AF1QipMb0k_BWxl0BG8fcsTI0FgIWkklvkCyaHDSOg5E=s287-w287-h192-n-k-no-v1",
"original_image": "https://lh5.googleusercontent.com/p/AF1QipMb0k_BWxl0BG8fcsTI0FgIWkklvkCyaHDSOg5E=s10000"
},
{
"thumbnail": "https://lh3.googleusercontent.com/gps-cs-s/AHVAweqGrskwq_mNcoudTPi-7MeA7yxacJTNDIgT0znpXJB5kc9qlliso34yhL-QRxbrXG5MyuAkwLGca23KzfmeVr1kNTt9kwPbbUYTmHWdWUFjvLiMpzNwREALkqc_oSJzJxKIWa1m=s287-w287-h192-n-k-no-v1",
"original_image": "https://lh5.googleusercontent.com/p/CIHM0ogKEICAgIC43ZmVZA=s10000"
},
...
],
"overall_rating": 3.9,
"reviews": 1550,
"ratings": [
{
"stars": 5,
"count": 617
},
{
"stars": 4,
"count": 449
},
{
"stars": 3,
"count": 260
},
...
],
"location_rating": 3.1,
"reviews_breakdown": [
{
"name": "Service",
"description": "Service",
"total_mentioned": 184,
"positive": 155,
"negative": 21,
"neutral": 8,
"category_token": "DZ7RYHica1yRnFiSmp5fVDl5eXBqUVlmciojjAEAtX8MDA",
"serpapi_link": "https://serpapi.com/search.json?category_token=DZ7RYHica1yRnFiSmp5fVDl5eXBqUVlmciojjAEAtX8MDA&engine=google_hotels_reviews&hl=en&property_token=ChgI5IiI6Ky47M_hARoLL2cvMXY5NmwzM18QAQ"
},
{
"name": "Cleanliness",
"description": "Cleanliness",
"total_mentioned": 123,
"positive": 81,
"negative": 33,
"neutral": 9,
"category_token": "3NLKrXica1yRnFiSmp5fVDl5tXNOamJeTmZeanExAzIHACP9D1M",
"serpapi_link": "https://serpapi.com/search.json?category_token=3NLKrXica1yRnFiSmp5fVDl5tXNOamJeTmZeanExAzIHACP9D1M&engine=google_hotels_reviews&hl=en&property_token=ChgI5IiI6Ky47M_hARoLL2cvMXY5NmwzM18QAQ"
},
{
"name": "Property",
"description": "Property",
"total_mentioned": 150,
"positive": 97,
"negative": 40,
"neutral": 13,
"category_token": "qPRjhHica1yRnFiSmp5fVDl5RUBRfkFqUUklI5wFANGQDTY",
"serpapi_link": "https://serpapi.com/search.json?category_token=qPRjhHica1yRnFiSmp5fVDl5RUBRfkFqUUklI5wFANGQDTY&engine=google_hotels_reviews&hl=en&property_token=ChgI5IiI6Ky47M_hARoLL2cvMXY5NmwzM18QAQ"
},
...
],
"amenities": [
"Breakfast ($)",
"Free Wi-Fi",
"Free parking",
...
],
"serpapi_google_hotels_reviews_link": "https://serpapi.com/search.json?engine=google_hotels_reviews&hl=en&property_token=ChgI5IiI6Ky47M_hARoLL2cvMXY5NmwzM18QAQ",
"serpapi_google_hotels_photos_link": "https://serpapi.com/search.json?engine=google_hotels_photos&property_token=ChgI5IiI6Ky47M_hARoLL2cvMXY5NmwzM18QAQ"
},
...
]
...
}
JSON structure overview
{
...
"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": {
"display_price": "String - Rate per night formatted with currency (rate may be before or after tax depending on the search location)",
"extracted_display_price": "Float - Extracted rate per night (rate may be before or after tax depending on the search location)",
"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",
"after_taxes_fees": "String - Rate per night including taxes and fees formatted with currency",
"extracted_after_taxes_fees": "Float - Extracted rate per night including taxes and fees"
},
"total_rate": {
"display_price": "String - Total rate for the entire trip formatted with currency (rate may be before or after tax depending on the search location)",
"extracted_display_price": "Float - Extracted total rate for the entire trip (rate may be before or after tax depending on the search location)",
"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",
"after_taxes_fees": "String - Total rate including taxes and fees for the entire trip formatted with currency",
"extracted_after_taxes_fees": "Float - Extracted total rate including 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": {
"display_price": "String - Rate per night formatted with currency (rate may be before or after tax depending on the search location)",
"extracted_display_price": "Float - Extracted rate per night (rate may be before or after tax depending on the search location)",
"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",
"after_taxes_fees": "String - Rate per night including taxes and fees formatted with currency",
"extracted_after_taxes_fees": "Float - Extracted rate per night including 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",
"category_token": "String - Category token to retrieve reviews for the category",
"serpapi_link": "String - SerpApi's Google Hotels Reviews endpoint for the property and category"
}
],
"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)",
"health_and_safety": {
"groups": [
{
"title": "String - Name of the amenity group",
"list": [
{
"title": "String - Name of the amenity",
"available": "Boolean - Indicates whether the amenity is available"
},
...
]
},
...
],
"details_link": "String - URL to get additional information about health and safety"
},
"essential_info": "Array - Essential info of the vacation rental 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_google_hotels_reviews_link": "String - SerpApi's Google Hotels Reviews endpoint for the property",
"serpapi_google_hotels_photos_link": "String - SerpApi's Google Hotels Photos endpoint for the property"
}
],
// non_matching_properties shares the same JSON schema as properties
"non_matching_properties": [ { "...": "..." } ],
...
}