Google Hotels Scraper API

Google Hotels Scraper API

Google Hotels Listings with Filters and Currencies

Search Google Hotels for any city and date range and get back structured property listings with ratings, hotel class, amenities, GPS coordinates, and images. Filter by price, brand, rating, eco-certification, and free cancellation.

START SCRAPING FOR FREE

Start scraping today with 1000 free credits. No Credit Card Required

Google Hotels Scraper API
Filters That Match the Google Hotels UI

Filters That Match the Google Hotels UI

First-class filter parameters: `min_price`/`max_price`, `rating` (3.5+ / 4.0+ / 4.5+), `hotel_class` (2–5 stars), `brands`, `amenities`, `property_types`, `free_cancellation`, `eco_certified`, `special_offers`. Every filter Google Hotels offers, available as a query parameter.

Sort modes: lowest price (`sort_by=3`), highest rating (`sort_by=8`), most reviewed (`sort_by=13`). Combine with filters for narrowly-targeted listing crawls.

Worldwide Currency and Language

Worldwide Currency and Language

240+ countries via `gl`, 150+ languages via `hl`, independent currency via `currency` (`USD`, `EUR`, `GBP`, `TRY`, `JPY`, …). Pricing comes back in the requested currency, with no FX conversion on your end.

Token-based pagination via `next_page_token`. Chain pages to crawl Google's full property index for any destination.

How It Works

1

Select a Target

Search Hotels screenshot
2

Send API Request

import requests
import json

token = "<SDO-token>"

url = f"https://api.scrape.do/plugin/google/hotels?token={token}&q=Bali+hotels&check_in_date=2026-05-01&check_out_date=2026-05-03"

response = requests.request("GET", url)

print(json.dumps(response.json(), indent=2))
3

Get Structured JSON

JSON
{
  "search_parameters": {
    "engine": "google_hotels",
    "q": "Bali hotels",
    "check_in_date": "2026-05-01",
    "check_out_date": "2026-05-03",
    "currency": "USD",
    "gl": "us",
    "hl": "en"
  },
  "search_information": {
    "total_results": 18
  },
  "properties": [
    {
      "type": "hotel",
      "name": "The Anvaya Beach Resort Bali",
      "description": "Sophisticated resort offering 8 pools, 2 restaurants & a spa, plus a private beach & a kids' club.",
      "gps_coordinates": {
        "latitude": -8.7322535,
        "longitude": 115.1659877
      },
      "hotel_class": "5-star hotel",
      "extracted_hotel_class": 5,
      "overall_rating": 4.7,
      "reviews": 14342,
      "amenities": [6, 29, 16, 22, 2, 8, 26, 5, 4, 23, 24, 14, 1, 31, 27, 7, 11],
      "images": [
        {
          "thumbnail": "https://lh3.googleusercontent.com/...",
          "original_image": "https://lh3.googleusercontent.com/..."
        }
      ],
      "property_token": "ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE",
      "property_details_link": "https://api.scrape.do/plugin/google/hotels/detail?property_token=ChkI0Nqb_63cnPoTGg0vZy8xMWJ4ZjNoMXloEAE&token=TOKEN&gl=us&hl=en&currency=USD"
    }
  ],
  "pagination": {
    "current_from": 1,
    "current_to": 18,
    "next_page_token": "CgsI..."
  }
}

Scrape.do has been a game-changer with powerful scraping tools, but what truly sets them apart is their excellent customer support.

user avatar
Rogerio C.

CTO

timertimer
capterra best customer support
< 5 min

Average Response Time

No tickets connect with expert engineers.

like changelike change
99.98%

Success rate

hierarchyhierarchy
110 Million

Proxies

trellotrello
+40%

Faster gateway than the closest competitor.

  • Trustpilot Reviews
  • G2 Reviews
  • Capterra Reviews
  • scrapedo capterra most recommended
  • scrapedo capterra best ease of use
  • scrapedo capterra best value
  • capterra best customer support
  • scrapedo capterra front runners

Reliable, Scalable,Unstoppable Web Scraping

START SCRAPING FOR FREE

Frequently Asked Questions

Google Hotels loads via async RPC calls behind the search UI, requires session-token management, and rotates internal parameters. Scraping it directly means a headless browser, request signing, and constant maintenance. This API queries the structured feed directly and returns parsed JSON with names, ratings, hotel class, amenities, coordinates, and images in a single call.

Use simple "<City> hotels" form: Paris hotels, Tokyo hotels, Edinburgh hotels. Google resolves the query text to a location internally; overly specific queries ("Paris luxury hotels near Eiffel Tower") often return empty results because Google can't pin them to a single location. Stay simple and use filter parameters for precision.

Yes. First-class filter parameters cover all the common cases: min_price/max_price, minimum rating (7 = 3.5+, 8 = 4.0+, 9 = 4.5+), hotel_class (comma-separated 2-5), free_cancellation, eco_certified, special_offers. They combine freely.

amenities accepts comma-separated integer codes: 22 = pool, 27 = free Wi-Fi, 8 = spa, 14 = beach access, etc. The same codes come back in properties[].amenities[] so they round-trip safely. The full code table is in the Filters & Amenities docs.

Yes. property_types=12 switches the listing to vacation rentals. Note: mode-switching depends on inventory at the destination. Some queries continue to return type: "hotel" even when vacation rentals are requested if Google has no vacation-rental inventory for that location.

All Google Hotels currencies (USD, EUR, GBP, TRY, JPY, CAD, AUD, INR, BRL, …) and all 150+ Google interface languages. Set currency, hl, and gl independently. Request EUR pricing in English from a Turkish IP, for example.

Read pagination.next_page_token from the response and pass it back as next_page_token on the next request. Continue until pagination is absent. That's the last page. Each page carries 18-20 properties.

The listing endpoint returns property-level metadata (rating, class, amenities) but not per-night pricing. Each property includes a property_token and a ready-to-call property_details_link pointing at /plugin/google/hotels/detail. That endpoint returns rate_per_night, total_rate, price breakdowns, check-in/check-out times, and review breakdowns.

Occupancy parameters are not currently supported. Results always reflect the default of 2 adults, 0 children. For occupancy-specific pricing, use the detail endpoint with the property_token returned in the listing response.

The Google Hotels API documentation covers the full parameter list, response schema, filter codes (including the amenity table), localization details, and all error responses.