Google Hotels Search
Search for hotels by location with comprehensive filtering options. Supports price range, star rating, free cancellation, and sorting options.
Endpoint
/api/google-hotels.search
Generate Code with AI
Copy a ready-made prompt with all the endpoint details, parameters, and example responses. Paste it into ChatGPT, Claude, or any AI assistant to instantly generate working code.
Parameters
string
Required
Location query for hotel search (e.g., "Paris, France", "Near Eiffel Tower")
string
Required
Check-in date in YYYY-MM-DD format (must be today or future date)
string
Required
Check-out date in YYYY-MM-DD format (must be after check-in date)
integer
Optional
Number of adult guests (1-10)
integer
Optional
Number of children (0-6)
string
Optional
3-letter currency code for prices (e.g., USD, EUR, GBP)
string
Optional
2-letter country code for localization (e.g., us, gb, de, fr)
string
Optional
2-letter language code for results (e.g., en, es, fr, de)
integer
Optional
Sort order: 3 (price lowest first), 8 (rating highest first), 13 (most reviewed first)
integer
Optional
Minimum price per night filter
integer
Optional
Maximum price per night filter (must be greater than min_price)
array
Optional
Filter by hotel star rating IDs (comma-separated): 2, 3, 4, or 5
integer
Optional
Minimum guest rating filter: 7 (3.5+), 8 (4.0+), 9 (4.5+)
array
Optional
Filter by amenity IDs (SerpAPI list, comma-separated). Example: 35 (Free Wi-Fi), 9 (Free breakfast), 15 (Bar)
boolean
Optional
Filter for hotels with free cancellation (true/false)
array
Optional
Comma-separated children ages (1-17 years old). Count must match children.
boolean
Optional
Filter for vacation rental properties only (Airbnb-style properties) instead of hotels
boolean
Optional
Filter for eco-certified/sustainable hotels only
boolean
Optional
Filter for hotels with special offers/deals
array
Optional
Filter by property type IDs (SerpAPI list, comma-separated). Example: 12 (Beach hotels), 1 (Apartments)
array
Optional
Filter by brand IDs (use brands[].id from response)
integer
Optional
Minimum number of bedrooms (1-20, vacation rentals only)
integer
Optional
Minimum number of bathrooms (1-20, vacation rentals only)
string
Optional
Pagination token from previous response
string
Optional
Property token for a specific hotel (from search results)
Request Examples
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://scrappa.co/api/google-hotels.search?q=Paris%2C+France&check_in_date=2025-08-15&check_out_date=2025-08-18¤cy=EUR&gl=fr');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'x-api-key: YOUR_API_KEY_HERE',
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
<?php
use Illuminate\Support\Facades\Http;
$response = Http::withHeaders([
'x-api-key' => 'YOUR_API_KEY_HERE',
])->get('https://scrappa.co/api/google-hotels.search?q=Paris%2C+France&check_in_date=2025-08-15&check_out_date=2025-08-18¤cy=EUR&gl=fr');
return $response->json();
fetch('https://scrappa.co/api/google-hotels.search?q=Paris%2C+France&check_in_date=2025-08-15&check_out_date=2025-08-18¤cy=EUR&gl=fr', {
headers: {
'x-api-key': 'YOUR_API_KEY_HERE'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
const axios = require('axios');
axios.get('https://scrappa.co/api/google-hotels.search?q=Paris%2C+France&check_in_date=2025-08-15&check_out_date=2025-08-18¤cy=EUR&gl=fr', {
headers: {
'x-api-key': 'YOUR_API_KEY_HERE'
}
})
.then(response => console.log(response.data))
.catch(error => console.error('Error:', error));
import requests
headers = {
'x-api-key': 'YOUR_API_KEY_HERE'
}
response = requests.get('https://scrappa.co/api/google-hotels.search?q=Paris%2C+France&check_in_date=2025-08-15&check_out_date=2025-08-18¤cy=EUR&gl=fr', headers=headers)
print(response.json())
require 'net/http'
require 'uri'
require 'json'
uri = URI.parse('https://scrappa.co/api/google-hotels.search?q=Paris%2C+France&check_in_date=2025-08-15&check_out_date=2025-08-18¤cy=EUR&gl=fr')
request = Net::HTTP::Get.new(uri)
request['x-api-key'] = 'YOUR_API_KEY_HERE'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
http.request(request)
end
puts JSON.parse(response.body)
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
client := &http.Client{}
req, _ := http.NewRequest("GET", "https://scrappa.co/api/google-hotels.search?q=Paris%2C+France&check_in_date=2025-08-15&check_out_date=2025-08-18¤cy=EUR&gl=fr", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY_HERE")
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
curl -X GET 'https://scrappa.co/api/google-hotels.search?q=Paris%2C+France&check_in_date=2025-08-15&check_out_date=2025-08-18¤cy=EUR&gl=fr' \
-H 'x-api-key: YOUR_API_KEY_HERE'
Response Schema
{
"hotels": []
}