# Google Hotels Scraper & API ($2.50/1k) 🏨 (`unitbytes/google-hotels-scraper`) Actor

⚡ Fast & Cheap ($2.50/1k): Scrape Google Hotels & vacation rentals, OTA prices (Booking.com, Expedia, Hotels.com), ratings, GPS, amenities & HD photos across any city or landmark. CSV/Excel or JSON.

- **URL**: https://apify.com/unitbytes/google-hotels-scraper.md
- **Developed by:** [UnitBytes | Enterprise Web Data](https://apify.com/unitbytes) (community)
- **Categories:** Travel, Lead generation, E-commerce
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 hotel scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🏨 Google Hotels Scraper & OTA Rate Parity API: Nightly Prices, Booking/Expedia Offers, Reviews & GPS

<div align="center">

[![Available on Apify](https://img.shields.io/badge/Available_on-Apify-28B52A?style=for-the-badge\&logo=apify\&logoColor=white)](https://apify.com/unitbytes/google-hotels-scraper?fpr=939u3w\&fp_sid=gh_ghotels)
[![Speed](https://img.shields.io/badge/Speed-Multi--Page_Hotels_in_Seconds-brightgreen?style=for-the-badge)](#)
[![OTA Parity](https://img.shields.io/badge/Rate_Parity-Booking_%7C_Expedia_%7C_Direct-purple?style=for-the-badge)](#)
[![Pricing](https://img.shields.io/badge/Price-From_$2.50_%2F_1%2C000_Hotels-orange?style=for-the-badge)](#)
[![Rentals & Hotels](https://img.shields.io/badge/Inventory-Hotels_%26_Vacation_Rentals-blue?style=for-the-badge)](#)
[![Zero Login](https://img.shields.io/badge/Account_Required-None-blue?style=for-the-badge)](#)

**The fastest and most affordable Google Hotels & Vacation Rentals scraper for hospitality revenue managers, OTA rate parity platforms, travel agencies, B2B hospitality lead generation, and AI travel concierges. Extract live nightly and total stay prices, multi-provider OTA comparison rates (`Booking.com`, `Expedia`, `Hotels.com`, `Agoda`, `Trip.com`, and official hotel websites), star classes, guest review counts, full addresses, GPS coordinates, check-in/out times, verified amenities, and `1200x800` HD photos in seconds.**

[**🚀 Try it Live on Apify**](https://apify.com/unitbytes/google-hotels-scraper?fpr=939u3w\&fp_sid=gh_ghotels) • [**💰 From $2.50 / 1,000 Properties**](#-transparent-pay-per-event-pricing-from-250--1000-properties) • [**🔗 Multi-OTA Rate Parity (`otaOffers`)**](#-key-capabilities) • [**💬 Support**](https://apify.com/unitbytes/google-hotels-scraper/issues)

</div>

***

<p align="center">
  <a href="https://apify.com/unitbytes/google-hotels-scraper?fpr=939u3w&fp_sid=gh_ghotels">
    <img src="https://img.shields.io/badge/Try_It_Free_on_Apify-~990_Hotels_Free%2FMo-28B52A?style=for-the-badge&logo=apify&logoColor=white" height="42" alt="Try it for Free on Apify">
  </a>
  <br>
  <sub>⚡ <b>1-Click Free Trial:</b> Extract up to ~990 Google Hotels &amp; rental properties every month free with Apify's $5 monthly credit (up to ~1,990 per $5 on volume plans) • No credit card required</sub>
</p>

***

### 📖 Overview

**Google Hotels** is the global benchmark for real-time accommodation pricing, indexing live nightly rates, taxes/totals, room availability, and competing OTA offers across **Booking.com**, **Expedia**, **Hotels.com**, **Agoda**, **Trip.com**, **Priceline**, **Vrbo**, and **direct hotel brand websites** worldwide.

Traditional approaches to scraping Google Hotels suffer from major cost and data gaps:

- Heavy headless browser scrapers consume `1–4 GB RAM`, stall on map scrolling, and cost `$15–$40` per 1,000 properties.
- Standard SERP APIs charge per 20-property page (`$15–$25 / 1K requests`) and require separate paid property-detail calls to retrieve competing OTA rate offers.
- Missing contact & location metadata (`phone`, official `website`, `latitude`, `longitude`, `checkInTime`, `checkOutTime`, and `1200x800` photos).

**Google Hotels Scraper by UnitBytes** delivers complete property records — **including multi-provider `otaOffers` out of the box with zero extra detail surcharge** — on a lightweight **`256 MB` container**, starting **from `$2.50` per 1,000 properties (`$0.0025/hotel` on Gold+, and `$0.00` on empty searches or duplicates)**.

<table>
  <tr>
    <td colspan="3" style="padding:10px 14px;background:#0284C7;color:#FFFFFF;font-size:13px;font-weight:700;border-radius:6px 6px 0 0">
      ⚡ UnitBytes · Google Travel, Hospitality, Maps, Trends, Shopping &amp; Search Ecosystem
    </td>
  </tr>
  <tr>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FFF4ED;vertical-align:top;width:33.3%">
      <span style="white-space:nowrap">🏨 <b><a href="https://apify.com/unitbytes/google-hotels-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#C2410C;text-decoration:none;font-size:13px">Google Hotels Scraper</a></b></span><br><span style="color:#EA580C;font-size:11px;font-weight:700">📍 You are here (From $2.50/1K)</span><br>
      <span style="color:#64748B;font-size:11px">Nightly/total rates, Booking/Expedia OTA parity, GPS &amp; HD photos</span>
    </td>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FAFAFA;vertical-align:top;width:33.3%">
      <span style="white-space:nowrap">✈️ <b><a href="https://apify.com/unitbytes/google-flights-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#0F172A;text-decoration:none;font-size:13px">Google Flights Scraper</a></b></span><br><span style="color:#2563EB;font-size:11px;font-weight:600">From $2.50/1K • Airfares &amp; CO2</span><br>
      <span style="color:#64748B;font-size:11px">One-way &amp; round-trip fares, carriers, layovers, legroom &amp; CO2</span>
    </td>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FAFAFA;vertical-align:top;width:33.3%">
      <span style="white-space:nowrap">⭐ <b><a href="https://apify.com/unitbytes/google-maps-reviews-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#0F172A;text-decoration:none;font-size:13px">Google Maps Guest Reviews</a></b></span><br><span style="color:#2563EB;font-size:11px;font-weight:600">From $0.25/1K • Hotel ORM</span><br>
      <span style="color:#64748B;font-size:11px"><a href="https://apify.com/unitbytes/google-maps-reviews-scraper?fpr=939u3w&fp_sid=ecosystem">10K Hotel Reviews</a>, <a href="https://apify.com/unitbytes/google-maps-reviews-tracker?fpr=939u3w&fp_sid=ecosystem">Review Tracker</a> &amp; <a href="https://apify.com/unitbytes/google-maps-leads-scraper?fpr=939u3w&fp_sid=ecosystem">B2B Emails</a></span>
    </td>
  </tr>
  <tr>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FAFAFA;vertical-align:top;width:33.3%">
      <span style="white-space:nowrap">🛍️ <b><a href="https://apify.com/unitbytes/google-shopping-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#0F172A;text-decoration:none;font-size:13px">Google Shopping Scraper</a></b></span><br><span style="color:#2563EB;font-size:11px;font-weight:600">From $2/1K • Retail Prices</span><br>
      <span style="color:#64748B;font-size:11px">Live product prices, deals, seller offers &amp; store checkout URLs</span>
    </td>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FAFAFA;vertical-align:top;width:33.3%">
      <span style="white-space:nowrap">💼 <b><a href="https://apify.com/unitbytes/google-jobs-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#0F172A;text-decoration:none;font-size:13px">Google Jobs Scraper</a></b></span><br><span style="color:#2563EB;font-size:11px;font-weight:600">From $4/1K • Hospitality Hiring</span><br>
      <span style="color:#64748B;font-size:11px">Multi-board jobs, parsed salaries, logos &amp; direct ATS links</span>
    </td>
    <td style="padding:10px 12px;border:1px solid #E2E8F0;background:#FAFAFA;vertical-align:top;width:33.3%">
      <span style="white-space:nowrap">📰 <b><a href="https://apify.com/unitbytes/google-news-scraper?fpr=939u3w&fp_sid=ecosystem" style="color:#0F172A;text-decoration:none;font-size:13px">Google News &amp; Trends</a></b></span><br><span style="color:#2563EB;font-size:11px;font-weight:600">From $0.30–$1/1K • Tourism Pulse</span><br>
      <span style="color:#64748B;font-size:11px"><a href="https://apify.com/unitbytes/google-news-scraper?fpr=939u3w&fp_sid=ecosystem">Travel News</a> &amp; <a href="https://apify.com/unitbytes/google-trends-scraper?fpr=939u3w&fp_sid=ecosystem">Google Trends</a> destination spikes</span>
    </td>
  </tr>
</table>

***

### 🌟 Why Hospitality Revenue, OTA & B2B Teams Choose UnitBytes

| Capability / Metric | **UnitBytes Google Hotels Scraper** | **Traditional SERP / Travel APIs** | **Browser-Based Scrapers** |
| :--- | :---: | :---: | :---: |
| **⚡ Extraction Speed (40 Hotels)** | **~4–7 Seconds (Multi-Page)** | ⚠️ Paginated calls + per-hotel detail calls | ❌ Slow (60–180s map scrolling) |
| **💰 Price per 1,000 Properties** | **From $2.50 ($0.0025 / property)** | $15.00 – $30.00 per 1K + detail surcharges | $15.00 – $45.00 per 1K + heavy RAM costs |
| **🔗 Multi-OTA Rate Parity (`otaOffers`)** | **✅ Included (`Booking.com`, `Expedia`, `Hotels.com`, Direct)** | ⚠️ Requires paid secondary Property API call | ⚠️ Often captures headline price only |
| **🏡 Hotels + Vacation Rentals** | **✅ Native `hotels` & `vacation_rentals` switch** | ✅ Supported | ⚠️ Often breaks on rental layouts |
| **📞 Direct Property Contact & GPS** | **✅ `website`, `phone`, `address`, `latitude`, `longitude`** | ⚠️ Partial | ⚠️ Partial |
| **🖼️ Upgraded High-Res Photos** | **✅ `1200x800` property images (`images`)** | ⚠️ Tiny thumbnails | ⚠️ Lazy-loaded placeholders |
| **🛡️ Empty Search & Duplicate Item Fee** | **✅ $0.00 item fee (Zero `hotel-scraped` charge on 0 results or duplicates)** | ❌ Charged per API call on 0 results | ❌ Charged for browser runtime |

***

### 💰 Transparent Pay-Per-Event Pricing (From `$2.50 / 1,000 Properties`)

This Actor uses **Pay-Per-Event (PPE)** billing with automatic plan-based volume discounts so you pay strictly for unique hotels or vacation rentals delivered to your dataset — with **`otaOffers` included at zero extra surcharge**.

| Apify Plan Tier | Event Name | Price per Property | Price per 1,000 Properties | Volume Discount |
| :--- | :--- | :--- | :--- | :--- |
| **Free Plan** (`FREE`) | `hotel-scraped` | `$0.0050` | **`$5.00 / 1,000 properties`** | Base rate (**up to ~990 properties/mo free** with `$5` credit) |
| **Starter Plan** (`BRONZE`) | `hotel-scraped` | `$0.0035` | **`$3.50 / 1,000 properties`** | **30% OFF** |
| **Scale Plan** (`SILVER`) | `hotel-scraped` | `$0.0030` | **`$3.00 / 1,000 properties`** | **40% OFF** |
| **Business & Enterprise** (`GOLD`+) | `hotel-scraped` | `$0.0025` | **`$2.50 / 1,000 properties`** | **50% OFF** |
| **Actor Run Start** | `apify-actor-start` | `$0.0050` | `$5.00 / 1,000 runs` | One-time startup event per GB RAM (min. 1 event) |
| **Empty Searches / Duplicates** | — | **`$0.00 / item`** | **`$0.00 item fee`** | Zero `hotel-scraped` charge on 0 results or deduplicated properties |

> 🎁 **Up to ~990 Hotels / Month Free on Apify's Free Tier:**
> Every Apify account receives **$5.00 in free monthly platform credits**, covering **up to ~990 unique hotel or vacation rental properties every month at $0.00 cost** on the Free Plan (or up to **~1,420–1,990 properties** per `$5` on paid plans). Apify's **Maximum cost per run** cap is honored to the exact property.

***

### ✨ Key Capabilities

- **🔗 Multi-Provider OTA Rate Parity (`otaOffers`)**: Every property listing includes competing partner rates (`provider`, `price`, `totalPrice`, and direct partner booking `url`) across major OTAs and official hotel brand sites.
- **🏙️ Cities, Neighborhoods & Exact Landmark Properties**: Query broad markets (`"New York"`, `"London"`, `"Tokyo"`, `"Dubai"`) with multi-page pagination (`20` properties per page, `0` duplicate overlap) OR query exact hotel names (`"New York Marriott Marquis"`) for daily compset rate parity tracking.
- **🏡 Hotels & Vacation Rentals**: Switch upstream between traditional hotels/resorts (`propertyType: "hotels"`) and apartments/villas/condos (`propertyType: "vacation_rentals"`).
- **🎯 100% Server-Side Filtering & Sorting**: Filter directly on Google Hotels by star class (`hotelStars: [4, 5]`), minimum guest score (`minRating: "3.5" | "4.0" | "4.5"`), nightly price range (`minPrice`, `maxPrice`), and ranking order (`relevance`, `lowest_price`, `highest_rating`).
- **📍 Complete Hospitality & Lead Metadata**: Extracts `address`, `neighborhood`, `phone`, official `website`, `latitude`, `longitude`, `checkInTime`, `checkOutTime`, human-readable `amenities`, `dealBadge` (e.g. `"25% less than usual"`), and upgraded `1200x800` `images`.

***

### 🚨 24/7 Hotel Compset & OTA Rate Parity Watchdog

| Objective | Frequency / Cron | Target Input | Automated Action / Destination |
| :--- | :--- | :--- | :--- |
| **🛡️ Daily Direct-vs-OTA Undercut Audit** | Every 6 hours<br>`0 */6 * * *` | `locations: ["Your Hotel Name", "Compset Hotel B"]` across upcoming weekend dates | Alerts revenue managers in **Slack / Email** whenever an OTA undercuts direct brand `price`. |
| **📊 City Compset ADR Benchmarking** | Daily at 06:00 UTC<br>`0 6 * * *` | `locations: ["Miami Beach", "Orlando"]`, `hotelStars: [4, 5]`, `maxHotels: 100` | Appends daily Average Daily Rate (ADR) & `dealBadge` trends into **Google Sheets / Snowflake**. |
| **🎯 B2B Hospitality Vendor Lead Gen** | Weekly<br>`0 8 * * 1` | Boutique hotel markets + [**Google Maps Leads Scraper**](https://apify.com/unitbytes/google-maps-leads-scraper?fpr=939u3w\&fp_sid=gh_ghotels) | Enriches hotel `website` domains with verified GM/marketing emails in **Clay / HubSpot**. |

***

### 🛠️ How to Use via API (Python, Node.js & cURL)

#### 🐍 Python Example

```bash
pip install apify-client
```

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_API_TOKEN")

run_input = {
    "locations": ["New York"],
    "checkInDate": "2026-12-10",
    "checkOutDate": "2026-12-13",
    "adults": 2,
    "propertyType": "hotels",
    "hotelStars": [4, 5],
    "minRating": "4.0",
    "maxPrice": 450,
    "sortBy": "lowest_price",
    "currency": "USD",
    "country": "us",
    "language": "en",
    "maxHotels": 40,
}

run = client.actor("unitbytes/google-hotels-scraper").call(run_input=run_input)
items = client.dataset(run["defaultDatasetId"]).list_items().items

for h in items[:5]:
    ota_summary = ", ".join(f"{o['provider']}: ${o['price']}" for o in (h.get("otaOffers") or [])[:3])
    print(f"{h['name']} ({h.get('hotelClass')}★, {h.get('rating')}/5): ${h.get('pricePerNight')}/night | OTAs: {ota_summary}")
```

***

#### 🟨 JavaScript / Node.js Example

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_API_TOKEN' });

const run = await client.actor('unitbytes/google-hotels-scraper').call({
    locations: ['London'],
    checkInDate: '2026-12-18',
    checkOutDate: '2026-12-21',
    adults: 2,
    hotelStars: [4, 5],
    currency: 'GBP',
    country: 'gb',
    maxHotels: 30,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted ${items.length} properties`, items.slice(0, 3));
```

***

#### 🌐 cURL Example

```bash
curl -X POST "https://api.apify.com/v2/acts/unitbytes~google-hotels-scraper/runs?token=YOUR_APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "locations": ["Tokyo"],
    "checkInDate": "2026-12-10",
    "checkOutDate": "2026-12-14",
    "adults": 2,
    "currency": "USD",
    "maxHotels": 20
  }'
```

***

### 📤 Example Output Record

```json
{
  "name": "Grand Midtown Plaza Hotel",
  "propertyId": "ChUIksaK9_ij5_kYGgkvbS8wNjJ3YzIQAQ",
  "propertyType": "Hotel",
  "hotelClass": 5,
  "rating": 4.4,
  "reviewsCount": 16419,
  "pricePerNight": 394,
  "totalPrice": 1182,
  "currency": "USD",
  "dealBadge": "18% less than usual",
  "otaOffers": [
    {
      "provider": "Official Site",
      "price": 394,
      "totalPrice": 1182,
      "url": "https://grand-midtown-hotel-example.com/booking"
    },
    {
      "provider": "Booking.com",
      "price": 412,
      "totalPrice": 1236,
      "url": "https://www.booking.com/hotel/us/example-property.html"
    }
  ],
  "address": "1500 Broadway, New York, NY 10036, United States",
  "neighborhood": "Midtown Manhattan",
  "phone": "+1 212-555-0199",
  "latitude": 40.7586927,
  "longitude": -73.9861993,
  "checkInDate": "2026-12-10",
  "checkOutDate": "2026-12-13",
  "checkInTime": "4:00 PM",
  "checkOutTime": "11:00 AM",
  "amenities": [
    "Free Wi-Fi",
    "Air conditioning",
    "Fitness center",
    "Restaurant",
    "Bar",
    "Smoke-free property"
  ],
  "images": [
    "https://lh3.googleusercontent.com/p/AF1QipSampleHotelPhoto=w1200-h800-n-k-no"
  ],
  "description": "Contemporary Midtown hotel featuring skyline views, fitness center, and on-site dining.",
  "website": "https://grand-midtown-hotel-example.com",
  "googleHotelsUrl": "https://www.google.com/travel/hotels/entity/ChUIksaK9_ij5_kYGgkvbS8wNjJ3YzIQAQ?curr=USD&hl=en&gl=us&ts=2026-12-10_2026-12-13"
}
```

***

### ⚙️ Input Parameters Reference

| Field | Type | Default | Description |
| :--- | :--- | :--- | :--- |
| `locations` (`queries`) | `string[]` | `["New York"]` | Cities, regions, or exact hotel names to scrape. |
| `urls` | `string[]` | `[]` | Optional Google Travel Hotels URLs (`/travel/hotels/entity/...` or `?q=...`) to scrape directly. |
| `checkInDate` | `string` | `+14 days` | Check-in date (`YYYY-MM-DD`). Defaults to 14 days from current UTC date if omitted. |
| `checkOutDate` | `string` | `+17 days` | Check-out date (`YYYY-MM-DD`). Defaults to 3 nights after `checkInDate` if omitted. |
| `adults` | `integer` | `2` | Adult guests (`1–16`). |
| `children` | `integer` | `0` | Child guests (`0–8`). |
| `propertyType` | `string` | `"hotels"` | `"hotels"` or `"vacation_rentals"`. |
| `minRating` | `string` | `"any"` | `"any"`, `"3.5"`, `"4.0"`, or `"4.5"`. |
| `hotelStars` | `integer[]` | `[]` | Official hotel star classes (`2`, `3`, `4`, `5`), e.g. `[4, 5]`. |
| `minPrice` | `integer` | `null` | Optional minimum nightly price in `currency`. |
| `maxPrice` | `integer` | `null` | Optional maximum nightly price cap in `currency`. |
| `sortBy` | `string` | `"relevance"` | `"relevance"`, `"lowest_price"`, or `"highest_rating"`. |
| `currency` | `string` | `"USD"` | 3-letter ISO 4217 currency code (`"USD"`, `"EUR"`, `"GBP"`, `"JPY"`). |
| `country` | `string` | `"us"` | 2-letter ISO 3166-1 market code (`"us"`, `"gb"`, `"de"`, `"jp"`). |
| `language` | `string` | `"en"` | Interface language tag (`"en"`, `"de"`, `"fr"`, `"es"`, `"ja"`). |
| `maxHotels` | `integer` | `20` | Maximum unique properties to return (`1–500`). |

***

#### 📋 Copy-and-Paste Directive for AI Coding Assistants (Cursor, Windsurf & Claude Code)

> *"Use the `unitbytes/google-hotels-scraper` Actor on Apify to extract live Google Hotels & vacation rental nightly prices, multi-OTA rate comparisons (`otaOffers`), star ratings, guest review counts, GPS coordinates, and HD photos. Pair it with `unitbytes/google-flights-scraper` for airfare data and `unitbytes/google-maps-reviews-scraper` for deep guest review analysis. Example call: `client.actor('unitbytes/google-hotels-scraper').call(run_input={'locations': ['New York'], 'checkInDate': '2026-12-10', 'checkOutDate': '2026-12-13', 'hotelStars': [4, 5], 'maxHotels': 30})`"*

***

#### 🔌 MCP Server Setup: Claude Code, Cursor & AI Agents

```json
{
  "mcpServers": {
    "apify": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=actors,docs,unitbytes/google-hotels-scraper,unitbytes/google-flights-scraper"
    }
  }
}
```

***

### 🌐 Complete UnitBytes Google & Hospitality Intelligence Ecosystem

| Actor | Best For | Pricing |
| :--- | :--- | :--- |
| [**Google Hotels Scraper**](https://apify.com/unitbytes/google-hotels-scraper?fpr=939u3w\&fp_sid=ecosystem) *(📍 You are here)* | Nightly & total hotel/rental rates, multi-OTA price parity (`Booking.com`, `Expedia`), ratings, GPS & HD photos | From $2.50 / 1K |
| [**Google Flights Scraper**](https://apify.com/unitbytes/google-flights-scraper?fpr=939u3w\&fp_sid=ecosystem) | Real-time airfares, carriers, flight numbers, stops, layovers, cabin/legroom & CO2 emissions | From $2.50 / 1K |
| [**Google Maps Reviews Scraper**](https://apify.com/unitbytes/google-maps-reviews-scraper?fpr=939u3w\&fp_sid=ecosystem) | Bulk extraction of up to 10,000 guest reviews per hotel or resort with keyword & rating filters | From $0.25 / 1K |
| [**Google Maps Reviews Tracker**](https://apify.com/unitbytes/google-maps-reviews-tracker?fpr=939u3w\&fp_sid=ecosystem) | Hotel reputation monitoring: detect new, removed, edited, or unanswered guest reviews across runs | Pay-Per-Event |
| [**Google Maps Email & Leads Scraper**](https://apify.com/unitbytes/google-maps-leads-scraper?fpr=939u3w\&fp_sid=ecosystem) | Verified hospitality B2B emails, phones, social links & website tech stack | From $0.50 / 1K |
| [**Google Maps Photos Scraper**](https://apify.com/unitbytes/google-maps-photos-scraper?fpr=939u3w\&fp_sid=ecosystem) | Full-resolution (`=s0`) property, room, dining & Local Guide photos | From $0.20 / 1K |
| [**Google Trends Scraper**](https://apify.com/unitbytes/google-trends-scraper?fpr=939u3w\&fp_sid=ecosystem) | Destination travel demand, seasonal booking spikes & regional market interest | From $0.30 / 1K |
| [**Google News Scraper**](https://apify.com/unitbytes/google-news-scraper?fpr=939u3w\&fp_sid=ecosystem) | Hospitality, tourism & event news with direct publisher URLs and clean full-article text | From $1.00 / 1K |
| [**Google Shopping Scraper**](https://apify.com/unitbytes/google-shopping-scraper?fpr=939u3w\&fp_sid=ecosystem) | Live retail product prices, discounts, multi-seller offers & direct checkout URLs | From $2.00 / 1K |
| [**Google Jobs Scraper**](https://apify.com/unitbytes/google-jobs-scraper?fpr=939u3w\&fp_sid=ecosystem) | Hospitality & corporate hiring signals, parsed salaries, logos & direct ATS links | From $4.00 / 1K |

***

### 📊 Data Honesty & Known Upstream Scope

- **Sold-Out Dates**: Properties that are sold out for the requested `checkInDate`–`checkOutDate` window may return `pricePerNight: null` and an empty `otaOffers` array while still returning full address, rating, GPS, and contact metadata.
- **Vacation Rentals**: Vacation rental listings (`propertyType: "vacation_rentals"`) typically do not carry official hotel star classes (`hotelClass: null`) or external brand `website` URLs, as bookings route through rental platforms.
- **Stay Length**: Google Hotels supports stay windows up to 30 consecutive nights per query.

***

### ⚖️ Compliance & Privacy

This Actor extracts **strictly publicly available accommodation rates and business listings** published on Google Hotels. All output examples use synthetic contact numbers. Read Apify's guide on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/) to ensure compliance with applicable laws.

#### Disclaimer

This Actor is an independent software tool and is not affiliated with, endorsed by, or sponsored by Google LLC or any listed hotel brands or online travel agencies.

***

### 💬 Support & Feedback

Need custom hospitality rate-parity workflows or found an edge-case destination?

- 💬 **Apify Issues**: Open a ticket on the [Actor Issues Tab](https://apify.com/unitbytes/google-hotels-scraper/issues)
- 🚀 **Apify Store**: [Google Hotels Scraper](https://apify.com/unitbytes/google-hotels-scraper?fpr=939u3w\&fp_sid=gh_ghotels)

# Actor input Schema

## `locations` (type: `array`):

Cities, regions, neighborhoods, or exact hotel names to scrape (e.g. 'New York', 'London', 'Tokyo', 'Dubai', 'New York Marriott Marquis'). Supports multi-location batching with automatic deduplication.

## `queries` (type: `array`):

Optional alias for 'locations'. Leave empty when 'locations' is provided.

## `urls` (type: `array`):

Optional list of Google Travel Hotels URLs (e.g. 'https://www.google.com/travel/hotels/entity/...' or 'https://www.google.com/travel/search?q=Hotels+in+Paris') to hydrate and scrape directly.

## `checkInDate` (type: `string`):

Check-in date in YYYY-MM-DD format. If left blank, automatically defaults to 14 days from today (UTC).

## `checkOutDate` (type: `string`):

Check-out date in YYYY-MM-DD format. If left blank, automatically defaults to 3 nights after checkInDate (+17 days from today).

## `adults` (type: `integer`):

Number of adult guests per room/stay (1 to 16).

## `children` (type: `integer`):

Number of child guests (0 to 8).

## `propertyType` (type: `string`):

Server-side filter between hotels/resorts and vacation rentals (apartments, condos, villas).

## `minRating` (type: `string`):

Server-side Google Hotels minimum guest review score filter.

## `hotelStars` (type: `array`):

Optional list of official hotel star classes to filter server-side (e.g. \[4, 5] for 4- and 5-star luxury hotels). Leave empty for all star classes.

## `minPrice` (type: `integer`):

Optional minimum nightly price filter in the selected currency.

## `maxPrice` (type: `integer`):

Optional maximum nightly price cap in the selected currency.

## `sortBy` (type: `string`):

Server-side Google Hotels ranking order.

## `currency` (type: `string`):

Three-letter ISO 4217 currency code for hotel & OTA pricing (e.g. 'USD', 'EUR', 'GBP', 'JPY', 'AED', 'CAD').

## `country` (type: `string`):

Two-letter country code for point-of-sale market localization (e.g. 'us', 'gb', 'de', 'fr', 'jp', 'ae').

## `language` (type: `string`):

BCP-47 language code for property descriptions and amenities (e.g. 'en', 'de', 'fr', 'es', 'ja').

## `maxHotels` (type: `integer`):

Maximum number of unique hotel or vacation rental listings to collect across all locations.

## `proxyConfiguration` (type: `object`):

Optional Apify Proxy or custom proxy configuration. Defaults to Apify Residential Proxy on Cloud.

## Actor input object example

```json
{
  "locations": [
    "New York"
  ],
  "checkInDate": "",
  "checkOutDate": "",
  "adults": 2,
  "children": 0,
  "propertyType": "hotels",
  "minRating": "any",
  "hotelStars": [],
  "sortBy": "relevance",
  "currency": "USD",
  "country": "us",
  "language": "en",
  "maxHotels": 20
}
```

# Actor output Schema

## `results` (type: `string`):

Extracted Google Hotels & vacation rentals with nightly/total rates, OTA offers, ratings, GPS coordinates, amenities, and HD photos

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "locations": [
        "New York"
    ],
    "checkInDate": "",
    "checkOutDate": "",
    "hotelStars": [],
    "currency": "USD",
    "country": "us",
    "language": "en"
};

// Run the Actor and wait for it to finish
const run = await client.actor("unitbytes/google-hotels-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "locations": ["New York"],
    "checkInDate": "",
    "checkOutDate": "",
    "hotelStars": [],
    "currency": "USD",
    "country": "us",
    "language": "en",
}

# Run the Actor and wait for it to finish
run = client.actor("unitbytes/google-hotels-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "locations": [
    "New York"
  ],
  "checkInDate": "",
  "checkOutDate": "",
  "hotelStars": [],
  "currency": "USD",
  "country": "us",
  "language": "en"
}' |
apify call unitbytes/google-hotels-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,unitbytes/google-hotels-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/4EBwHbvLLC1pCkPtf/builds/G3105E9egT4aHFlMT/openapi.json
