# Google Hotels & Vacation Rentals Scraper: Stays & Rates (`dev00/google-hotels-vacation-rentals-scraper`) Actor

Extract real-time Google Hotels & Vacation Rentals: live room rates, total stay prices, star ratings, amenities, photo galleries, and direct booking links.

- **URL**: https://apify.com/dev00/google-hotels-vacation-rentals-scraper.md
- **Developed by:** [dev00](https://apify.com/dev00) (community)
- **Categories:** Travel, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 property lead extracteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🏨 Google Hotels & Vacation Rentals Scraper: Stays & Rates

> 🚀 **The #1 Most Complete, Real-Time Google Hotels, Vacation Rentals, Apartments & Lodging Intelligence Scraper on Apify.**

Looking for reliable, low-latency live hotel pricing, vacation rental availability (Airbnbs, apartments, villas), guest review ratings, transparent amenity breakdowns, and multi-provider booking links without maintaining expensive browser automation?

The **Google Hotels & Vacation Rentals Scraper** extracts real-time accommodation shopping results, star classes (1-star to 5-star luxury), nightly and total stay pricing, vacation rental specifications (bedrooms, bathrooms, beds), high-resolution photo galleries, and direct booking links to Booking.com, Expedia, Agoda, and official hotel websites directly from Google Hotels.

***

### 🌟 Why This Actor Outperforms Competitors

| Capability | Generic Hotel Scrapers | Official OTA APIs | 🏨 Google Hotels Scraper |
| :--- | :---: | :---: | :---: |
| **Real-Time Live Room Rates** | ⚠️ Cached / Stale Data | ⚠️ Strict Partner Approval | ✅ **Live Real-Time Extraction (~56ms)** |
| **Vacation Rentals & Apartments** | ❌ Hotels Only | ⚠️ Separate API Required | ✅ **Hotels + Apartments + Villas + Chalets** |
| **Bedrooms & Bathroom Specs** | ❌ No | ⚠️ Complex Schema | ✅ **Full Specs: Sleeps, Bedrooms, Baths, Beds** |
| **Direct Multi-Provider Booking Links**| ❌ Single OTA Only | ⚠️ Locked to Provider | ✅ **Booking.com + Expedia + Agoda + Direct Website** |
| **Granular Amenity Filtering** | ⚠️ Basic | ⚠️ Limited | ✅ **Pool, Wi-Fi, Breakfast, Parking, Pets, Spa** |
| **High-Resolution Photo Galleries**| ⚠️ Low Quality | ⚠️ Throttled | ✅ **Direct High-Res CDN Photos** |
| **Pricing Model** | 💸 High Monthly Subscriptions | 💸 Custom Enterprise Contracts | ⚡ **Pay-Per-Event ($0.005 / property lead)** |

***

### ⚡ Comprehensive Feature Breakdown

#### 1. 🔍 Comprehensive Accommodations Search

Search real-time lodging options across global destinations. Filter by:

- **Stay Dates**: Exact check-in and check-out dates (`YYYY-MM-DD`).
- **Guests & Rooms**: Adults, children, and number of rooms requested.
- **Property Types**: Filter by `all`, `hotel`, `vacation_rental`, `apartment`, `villa`, or `resort`.
- **Budgets & Ratings**: Price floor/ceiling (`minPrice`, `maxPrice`), star class (`3`, `4`, `5`), and user review scores (`minRating="4.5"`).
- **Amenities**: Free Wi-Fi, swimming pools, complimentary breakfast, free parking, pet-friendly, air conditioning, and free cancellation.
- **Sorting**: Order properties by `best`, `cheapest`, `highest_rated`, or `most_reviewed`.

#### 2. 🏡 Dedicated Vacation Rentals & Homestays

Explore short-term vacation rentals, serviced apartments, beach villas, and alpine chalets with detailed guest capacities, number of bedrooms, bathrooms, and bed configurations.

#### 3. 🎫 Multi-Provider Booking Portals

Every property record includes direct booking URLs to official hotel portals as well as major online travel agencies (Booking.com, Expedia, Agoda) and Google Hotels shareable links.

***

### 📥 Input Configuration Parameters

| Parameter | Type | Default | Description |
| :--- | :---: | :---: | :--- |
| `query` | `string` | `"Paris"` | Destination city, landmark, or specific hotel name. |
| `checkInDate` | `string` | `"2026-09-01"` | Check-in date in `YYYY-MM-DD` format. |
| `checkOutDate` | `string` | `"2026-09-05"` | Check-out date in `YYYY-MM-DD` format. |
| `adults` | `integer` | `2` | Number of adult guests. |
| `children` | `integer` | `0` | Number of child guests. |
| `rooms` | `integer` | `1` | Number of rooms required. |
| `propertyType` | `string` | `"all"` | Accommodation type: `all`, `hotel`, `vacation_rental`, `apartment`, `villa`, `resort`. |
| `minPrice` | `integer` | `null` | Minimum price per night. |
| `maxPrice` | `integer` | `null` | Maximum budget per night. |
| `minRating` | `string` | `"any"` | Minimum review score (`any`, `4.0`, `4.5`, `4.8`). |
| `starClass` | `string` | `"any"` | Hotel star rating (`any`, `3`, `4`, `5`). |
| `freeCancellation`| `boolean`| `false` | Filter only properties with free cancellation. |
| `amenities` | `string` | `null` | Comma-separated amenities (e.g. `wifi, pool, free_breakfast, parking`). |
| `sortBy` | `string` | `"best"` | Sorting: `best`, `cheapest`, `highest_rated`, `most_reviewed`. |
| `currency` | `string` | `"USD"` | Currency code (`USD`, `EUR`, `GBP`, `MAD`, `CAD`, etc.). |
| `maxProperties` | `integer` | `20` | Maximum number of accommodation records to return. |

***

### 📤 Output Dataset Example

```json
{
  "property_id": "prop_paris_pullman",
  "name": "Pullman Paris Tour Eiffel",
  "property_type": "HOTEL",
  "star_class": 4,
  "star_rating_display": "4-star hotel",
  "user_rating": {
    "score": 4.5,
    "review_count": 3234,
    "rating_text": "Superb"
  },
  "location": {
    "city": "Paris",
    "country": "France",
    "neighborhood": "15th arr. (Tour Eiffel)",
    "address": "18 Avenue De Suffren, 75015 Paris",
    "coordinates": { "latitude": 48.8556, "longitude": 2.2936 }
  },
  "pricing": {
    "price_per_night": {
      "amount": 320,
      "formatted": "$320",
      "currency": "USD",
      "currency_symbol": "$"
    },
    "total_stay_price": {
      "amount": 1280,
      "formatted": "$1,280",
      "nights": 4,
      "rooms": 1
    },
    "is_great_deal": false,
    "deal_badge": null
  },
  "free_cancellation": true,
  "breakfast_included": false,
  "featured_amenities": ["Free Wi-Fi", "Swimming Pool", "Fitness center", "Restaurant", "Eiffel Tower view", "Pet-friendly"],
  "primary_photo": "https://images.unsplash.com/photo-1566073771259-6a8506099945?w=800",
  "booking_providers": [
    {
      "provider_name": "Booking.com",
      "price_per_night": "$320",
      "total_price": "$1,280",
      "booking_url": "https://www.booking.com/searchresults.html?ss=Pullman+Paris+Tour+Eiffel"
    },
    {
      "provider_name": "Expedia",
      "price_per_night": "$324",
      "total_price": "$1,296",
      "booking_url": "https://www.expedia.com/Hotel-Search?destination=Pullman+Paris+Tour+Eiffel"
    }
  ],
  "google_hotels_url": "https://www.google.com/travel/hotels?q=Pullman+Paris+Tour+Eiffel+Paris"
}
```

***

### 💻 Integration Code Snippets

#### Python (`apify-client`):

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "query": "Paris",
    "checkInDate": "2026-09-01",
    "checkOutDate": "2026-09-05",
    "adults": 2,
    "rooms": 1,
    "propertyType": "all",
    "minRating": "4.5",
    "currency": "USD",
    "maxProperties": 20
}

run = client.actor("dev00/google-hotels-vacation-rentals-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"Property: {item['name']} | Nightly: {item['pricing']['price_per_night']['formatted']} | Rating: {item['user_rating']['score']}★")
```

#### Node.js (`apify-client`):

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

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

const input = {
  query: 'London',
  checkInDate: '2026-09-01',
  checkOutDate: '2026-09-05',
  propertyType: 'vacation_rental',
  adults: 4,
  currency: 'USD'
};

const run = await client.actor('dev00/google-hotels-vacation-rentals-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();

console.log(`Extracted ${items.length} vacation rentals!`);
console.log(items[0]);
```

***

### 💰 Pay-Per-Event (PPR) Pricing Model

This Actor operates under the transparent **Pay-Per-Event** monetization model:

- **Price**: **$0.005 per accommodation lead** ($5.00 per 1,000 extracted properties).
- **No Monthly Minimums**: Only pay for the exact volume of property leads you extract.

***

### 🔍 Search Keywords & SEO Tags

`google hotels api`, `google hotels scraper`, `hotel search api`, `vacation rentals api`, `vacation rentals scraper`, `airbnb alternative api`, `booking.com api alternative`, `vrbo scraper api`, `hotel price tracker`, `lodging api`, `hotel rates api`, `cheap hotels scraper`, `luxury villas rental api`, `serviced apartments api`, `hotel deals scraper`, `hotel amenities api`, `hotel review scores api`, `tripadvisor alternative api`, `agoda hotel scraper`, `expedia hotel search api`, `hotel booking links api`, `motel search api`, `hostels api`, `bed and breakfast api`, `boutique hotels scraper`, `resorts scraper api`, `pet friendly hotels api`, `hotels with pool api`, `free breakfast hotels api`, `hotel price history insights`, `hotel calendar matrix api`, `destination autocomplete api`, `travel bot accommodation api`, `ai travel agent hotel scraper`, `travel metasearch api`, `tourism data api`, `hotel room availability api`, `hotel occupancy rates api`, `extended stay lodging api`, `city hotels scraper`

# Actor input Schema

## `query` (type: `string`):

City name, landmark, or specific hotel name (e.g. Paris, London, Rome, New York, Dubai, Marrakech).

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

Check-in date in YYYY-MM-DD format (e.g. 2026-09-01).

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

Check-out date in YYYY-MM-DD format (e.g. 2026-09-05).

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

Number of adult guests.

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

Number of child guests.

## `rooms` (type: `integer`):

Number of rooms required.

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

Filter by type of accommodation.

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

Minimum price per night.

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

Maximum budget per night.

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

Minimum review score (e.g. 4.0+, 4.5+).

## `starClass` (type: `string`):

Filter by hotel star classification.

## `freeCancellation` (type: `boolean`):

Filter only properties offering free cancellation.

## `amenities` (type: `string`):

Comma-separated amenities (e.g. wifi, pool, free\_breakfast, parking, pet\_friendly).

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

Order results by criteria.

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

Currency for room rates (e.g. USD, EUR, GBP, MAD, CAD).

## `maxProperties` (type: `integer`):

Maximum number of accommodation records to return.

## Actor input object example

```json
{
  "query": "Paris",
  "checkInDate": "2026-09-01",
  "checkOutDate": "2026-09-05",
  "adults": 2,
  "children": 0,
  "rooms": 1,
  "propertyType": "all",
  "minRating": "any",
  "starClass": "any",
  "freeCancellation": false,
  "sortBy": "best",
  "currency": "USD",
  "maxProperties": 20
}
```

# Actor output Schema

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

Direct link to the dataset items containing extracted hotel and rental records

## `keyValueStoreResult` (type: `string`):

Direct link to the key-value store output record

# 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 = {
    "query": "Paris",
    "checkInDate": "2026-09-01",
    "checkOutDate": "2026-09-05"
};

// Run the Actor and wait for it to finish
const run = await client.actor("dev00/google-hotels-vacation-rentals-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 = {
    "query": "Paris",
    "checkInDate": "2026-09-01",
    "checkOutDate": "2026-09-05",
}

# Run the Actor and wait for it to finish
run = client.actor("dev00/google-hotels-vacation-rentals-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 '{
  "query": "Paris",
  "checkInDate": "2026-09-01",
  "checkOutDate": "2026-09-05"
}' |
apify call dev00/google-hotels-vacation-rentals-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dev00/google-hotels-vacation-rentals-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/vuw40K2PMXv43ElfQ/builds/lOEgYU6OFkvaf8WEB/openapi.json
