Date-Aware Live Rates
Pass any check-in and check-out date to pull live nightly rates, total rates, and before-taxes pricing.
Scrape Google hotels data at scale without worrying about the proxy rotation. Get price, reviews, amenities & many more data points using our dedicated API.
"properties": [
{
"type": "hotel",
"title": "Courtyard by Marriott Hong Kong Sha Tin",
"description": "Warm rooms & suites in an upscale lodging ...",
"link": "https://www.marriott.com/...",
"property_token": "ChkI9-mHmI_J8serARoML2cvMTF4OTg0anA5EAE",
"gps_coordinates": {
"latitude": 22.3907979,
"longitude": 114.2063027
},
"check_in_time": "2:00 PM",
"check_out_time": "11:00 AM",
"hotel_class": "4-star hotel",
"extracted_hotel_class": 4,
"overall_rating": 4.1,
"reviews": 3219,
"location_rating": 4.1,
"eco_certified": true
}
]"rate_per_night": {
"lowest": "$122",
"extracted_lowest": 122,
"before_taxes_fees": "$137",
"extracted_before_taxes_fees": 137
},
"total_rate": {
"lowest": "$122",
"extracted_lowest": 122,
"before_taxes_fees": "$137",
"extracted_before_taxes_fees": 137
}"amenities": [
"Free Wi-Fi",
"Pool",
"Air conditioning",
"Restaurant"
],
"images": [
{
"thumbnail": "https://lh5.googleusercontent.com/...",
"original_image": "https://lh5.googleusercontent.com/..."
}
],
"nearby_places": [
{
"name": "Sha Tin Station",
"transportations": [
{
"type": "Public transport",
"duration": "7 min"
}
]
}
],
"reviews_breakdown": [
{
"name": "Service",
"description": "Service",
"total_mentioned": 412,
"positive": 318,
"negative": 54,
"neutral": 40
}
]import requests
api_key = "5eaa61a6e562fc52fe763tr516e4653"
url = "https://api.scrapingdog.com/google_hotels"
params = {
"api_key": api_key,
"query": "hong kong",
"check_in_date": "2025-07-01",
"check_out_date": "2025-07-05",
"country": "us",
"currency": "USD"
}
response = requests.get(url, params=params)
if response.status_code == 200:
data = response.json()
print(data)
else:
print(f"Request failed with status code: {response.status_code}")import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
// Set the API key and request parameters
String apiKey = "5eaa61a6e562fc52fe763tr516e4653";
String query = "hong kong";
String checkInDate = "2025-07-01";
String checkOutDate = "2025-07-05";
String country = "us";
String currency = "USD";
// Construct the API endpoint URL
String apiUrl = "https://api.scrapingdog.com/google_hotels?api_key=" + apiKey
+ "&query=" + query
+ "&check_in_date=" + checkInDate
+ "&check_out_date=" + checkOutDate
+ "&country=" + country
+ "¤cy=" + currency;
URL url = new URL(apiUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();
if (responseCode == 200) {
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = reader.readLine()) != null) {
response.append(inputLine);
}
reader.close();
System.out.println(response.toString());
} else {
System.out.println("HTTP request failed with response code: " + responseCode);
}
connection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}<?php
// Set the API key and request parameters
$api_key = '5eaa61a6e562fc52fe763tr516e4653';
$query = 'hong kong';
$check_in_date = '2025-07-01';
$check_out_date = '2025-07-05';
$country = 'us';
$currency = 'USD';
// Set the API endpoint
$url = 'https://api.scrapingdog.com/google_hotels?api_key=' . $api_key . '&query=' . $query . '&check_in_date=' . $check_in_date . '&check_out_date=' . $check_out_date . '&country=' . $country . '¤cy=' . $currency;
// Initialize cURL session
$ch = curl_init($url);
// Set cURL options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Execute the cURL request
$response = curl_exec($ch);
// Check if the request was successful
if ($response === false) {
echo 'cURL error: ' . curl_error($ch);
} else {
echo $response;
}
// Close the cURL session
curl_close($ch);require 'net/http'
require 'uri'
# Set the API key and request parameters
api_key = '5eaa61a6e562fc52fe763tr516e4653'
query = 'hong kong'
check_in_date = '2025-07-01'
check_out_date = '2025-07-05'
country = 'us'
currency = 'USD'
# Construct the API endpoint URL
url = URI.parse("https://api.scrapingdog.com/google_hotels?api_key=#{api_key}&query=#{query}&check_in_date=#{check_in_date}&check_out_date=#{check_out_date}&country=#{country}¤cy=#{currency}")
# Create an HTTP GET request
request = Net::HTTP::Get.new(url)
# Create an HTTP client
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true # Enable SSL (https)
# Send the request and get the response
response = http.request(request)
# Check if the request was successful
if response.is_a?(Net::HTTPSuccess)
puts response.body
else
puts "HTTP request failed with code: #{response.code}, message: #{response.message}"
endconst axios = require('axios');
const api_key = '5eaa61a6e562fc52fe763tr516e4653';
const url = 'https://api.scrapingdog.com/google_hotels';
const params = {
api_key: api_key,
query: 'hong kong',
check_in_date: '2025-07-01',
check_out_date: '2025-07-05',
country: 'us',
currency: 'USD',
};
axios
.get(url, { params: params })
.then(function (response) {
if (response.status === 200) {
const data = response.data;
console.log(data);
} else {
console.log('Request failed with status code: ' + response.status);
}
})
.catch(function (error) {
console.error('Error making the request: ' + error.message);
});titledescriptiontypelinkproperty_tokenhotel_classeco_certifiedrate_per_nighttotal_ratelowestextracted_lowestbefore_taxes_feescurrencyoverall_ratingreviewslocation_ratingratingsreviews_breakdowngps_coordinateslatitudelongitudenearby_placestransportationsimagesthumbnailoriginal_imageamenitiescheck_in_timecheck_out_timecheck_in_datecheck_out_datecountrylanguagecurrencyproperty_tokenScraping Google Hotels by hand means replaying every check-in/check-out combination, decoding date-keyed pricing widgets, and reconciling rates across OTAs.
Rates only load after you submit a check-in/check-out pair, so each property needs a request per stay window and a headless browser.
Each listing splits its nightly rate, total rate, and before-taxes figure across booking sources you must normalize into one price.
Hotel class, eco-certification, and amenity filters live in stateful query params that silently reset and duplicate properties between pages.
Prices change with country, language, and currency, while results paginate behind tokens that are easy to mis-stitch by hand.
With Scrapingdog, one API call returns clean listings for your dates with prices, ratings, hotel class, amenities, and location.
Get clean listings for your check-in/check-out, with nightly and total rates, ratings, hotel class, amenities, and location.
Filter by price range, star class, brand, review score, amenities, free cancellation, special offers, and vacation-rental fields.
Choose country, language, and currency to match your market. Paginate big results and use property tokens for deeper details.
Handle millions of requests with stable performance, while built-in proxies and CAPTCHA handling keep it reliable.
Pass any check-in and check-out date to pull live nightly rates, total rates, and before-taxes pricing.
Hotel class, ratings, review counts, amenities, GPS coordinates, and check-in/out times arrive as ready-to-use keys.
Replicate the on-site filters: price range, hotel_class, brands, rating, amenities, free cancellation, and vacation rentals.
Set country, language, and currency so rates match your market, then page through large result sets.
A rotating residential proxy pool renders the price carousel and serves region-correct results, no IPs to manage.
Scrapingdog clears Google anti-bot challenges in the background, so high-volume rate checks keep flowing without blocks.
Count listings, map GPS data, and assess median rates and star distribution to size up a destination market.
Monitor selected hotels for changes in rate, availability, review scores, and policies over time.
Track price and availability around festivals, conferences, and sports venues to catch demand spikes.
Segment by chain/brand and hotel class to identify partnership gaps and white space in a market.
Compare amenity sets across nearby properties to spot what your listing is missing.
Monitor which OTAs appear in ads versus organic listings to benchmark booking-channel visibility.
Sign up and get free credits to start testing the Hotels API.
Access your unique API key from the dashboard and use it to scrape the data.
Call the API with a destination query plus check_in_date and check_out_date.
Get a properties array with rates, hotel_class, ratings, amenities, and coordinates.
Start your web scraping journey with 200 free credits. Test our service and upgrade to one of the plans below. Cancel anytime.

I got the free trial and in less than a minute I already integrated with their API to scrape Google, matter of fact they had all the plug-and-play codes ready for me, It was seamless. I am about to upgrade as I have used up my trial credits.
United States
I love how you can use it to scrape data from Google.
Oslo, Norway
Scrapingdog is an awesome service. I use it with my Local Leads Sniper system and thanks to it I have been able to land a few clients since it gave me all the info that my client's Google Business Profile was missing. Great service!
Mexico
Reliable, and simple to use! Itβs also inexpensive and has packaged solutions for every need (Google, LinkedIn). Highly recommend.
France
The Google Hotels API helps you to extract hotel data such as names, prices, reviews, ratings, and availability directly from Google Hotels results.
Scrapingdog offers several Google APIs, including Google Search API, Google Maps API, Google News API, Google Images API, and Google Lens API. Each helps extract real-time data efficiently for different use cases.
Yes, Scrapingdog offers a free plan so you can test the Google Hotels API before upgrading to a paid plan.
Each API request consumes a certain number of credits based on the dedicated API you're using. For example, the Google Search API costs 5 credits per request.
Get 200 free credits to spin the API. No credit card required!