# Google Hotels Scraper - Nightly Prices, Stars & Booking Sites (`tenfoldfleet/google-hotels-scraper`) Actor

List the hotels Google Hotels shows for any city or area, priced for your dates and guests: per-night rate, stay total with taxes, hotel class, guest score, reviews, amenities, deals, map position and photos, plus each booking site's rate on request. $4 per 1,000 hotels; failed pages are free.

- **URL**: https://apify.com/tenfoldfleet/google-hotels-scraper.md
- **Developed by:** [Tenfold Fleet](https://apify.com/tenfoldfleet) (community)
- **Categories:** Travel, Agents, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 hotels

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?

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

### What does Google Hotels Scraper do?

**Google Hotels Scraper** lists **every hotel in a destination** that **Google Hotels** shows for your **check-in date, check-out date and guests**, with the **nightly price**, **what the whole stay costs** (taxes and fees broken out), **star class**, **guest rating**, **review count**, **amenities**, **deal badges**, **coordinates**, **photos** and the hotel's **website**. Switch on one option and it also opens each hotel's rate list for the **price from each booking site** (Booking.com, Expedia, Agoda, Hotels.com, the direct rate on the hotel's website and others), plus the **cheapest seller**, the **street address** and the **phone**.

Type a city, region, neighborhood or landmark (`Lisbon`, `Austin, TX`, `Shinjuku, Tokyo`), pick your dates, and get a clean table to export, or use the Actor as a **Google Hotels API** in scripts, n8n, Make or Zapier workflows and AI agents. It reads Google's pages over plain HTTP, without a browser, so 100 hotels take seconds.

> Not affiliated with Google. Google Hotels is a Google LLC trademark, named here only to say where the data comes from.

**How it differs from our [Google Travel Hotel Rate Tracker](https://apify.com/tenfoldfleet/google-travel-hotel-rate-tracker):** this Actor starts from a **place** and finds the hotels there, one row per hotel with one price for one stay. The rate tracker starts from **hotels you already know** and follows each one's booking-site rates across many stay dates.

### Why use this Google Hotels scraper?

- 🏨 **Whole-destination coverage**: it walks through Google's result pages and drops the properties repeated between them, so 100 hotels per city take about 7 pages, and big cities reach several hundred.
- 📅 **Prices you can trust**: Google quietly switches to other dates (or another currency) when it cannot price yours. This Actor checks the dates, nights, currency, adults and child ages behind **every page** against your input. A mismatch is reported as a free error row and is never charged.
- 📈 **Rate monitoring**: schedule it daily with **Check-in days from today** (for example always 30 days ahead) and track how a market's prices move.
- 💼 **Revenue management**: compare your hotel with every competitor in the area by stars, rating and nightly rate for the same stay.
- 🧭 **Travel comparison and agency tools**: feed hotel lists, photos, amenities and booking-site prices into your own site or app.
- ✅ **Measured reliability**: in our cloud tests on 23-24 Oct 2026, **441 of 441 Google pages** (search pages and price lists for 66 destinations, up to 20 at a time) loaded on the first try from Apify servers, and every destination returned hotels. A blocked page is retried once through Apify's datacenter proxy; a page that still fails comes back as a free error row.
- 💸 **Pay only for real hotels**: filtered properties, repeats, blocked pages and unrecognised destinations cost nothing.

### What data can it extract?

| Field | Example |
|---|---|
| `name`, `propertyType` | `Czar Lisbon Hotel`, `hotel` (or `vacation rental`) |
| `position` | `2` (rank in Google's list for the destination) |
| `starClass`, `rating`, `reviewCount` | `4`, `4.1`, `1468` |
| `nightlyPrice`, `totalPrice` | `106.05`, `212.09` (for the whole stay) |
| `priceBeforeTaxes`, `taxesAndFees` | `183.17`, `28.92` |
| `currency`, `checkIn`, `checkOut`, `nights`, `adults`, `children`, `childAges` | `USD`, `2026-11-12`, `2026-11-14`, `2`, `2`, `0`, `[]` |
| `dealBadge`, `dealText` | `DEAL`, `19% less than usual` |
| `amenities` | `["Breakfast", "Free Wi-Fi", "Parking", "Air conditioning", "Bar", ...]` |
| `latitude`, `longitude`, `countryCode` | `38.7293`, `-9.1348`, `PT` |
| `website`, `hotelUrl`, `googleMapsUrl` | hotel site, Google Hotels page for your dates, Google Maps link |
| `description`, `checkInTime`, `checkOutTime`, `imageUrls` | short description, `3:00 PM`, `12:00 PM`, up to 10 photos |
| `entityId`, `googlePlaceId` | Google's hotel id and place id, stable for joins between runs |
| `otaOffers` (option) | `[{"provider": "Agoda", "nightlyPrice": 106.05, "totalPrice": 212.09, "isOfficialSite": false, ...}]` |
| `lowestPriceProvider`, `lowestOfferPrice`, `address`, `phone` (option) | `Agoda`, `106.05`, `Av. Alm. Reis 103, 1150-020 Lisboa, Portugal`, `+351 21 111 5200` |

### How to scrape Google Hotels prices

1. Open the Actor in Apify Console with **Try for free**.
2. In **Destinations**, add one or more places, e.g. `Lisbon`, `Austin, TX`.
3. Set the **check-in** and **check-out** dates (or **Nights**), the **adults**, and the **children** with their ages.
4. Choose the **currency**, **Max hotels per destination**, and any filters (minimum stars, hotels only, skip hotels without a price).
5. Optional: turn on **Add booking-site prices** for each site's rate.
6. Press **Start**. When the run ends, export the table as **JSON, CSV, Excel or HTML**, or fetch it through the Apify API.

### How much does it cost?

Pay-per-event pricing, the same on every Apify plan:

| Event | Price |
|---|---|
| Hotel (one property with its details and price for your stay) | **$4 per 1,000 hotels** ($0.004 per hotel) |
| Booking-site prices (only with that option on, per hotel whose price list was read) | **$5 per 1,000 hotels** ($0.005 each) |
| Run start | $0.00005 per run |

**Free of charge:** properties removed by your filters, repeats across result pages, blocked or failed pages, destinations Google does not recognise, and any page where Google priced other dates, guests or currency than you asked for. When a price list fails, or a sold-out hotel's list has no booking site in it, the hotel is charged as a hotel only.

Examples: 10 cities with 100 hotels each cost about **$4**. The same with booking-site prices cost about **$9**. On the Apify free plan, the $5 monthly credit covers about 1,200 hotels, or about 550 with booking-site prices. Put a cap in **Max cost per run**; the Actor ends cleanly once the cap is used up.

### Input

```json
{
    "destinations": ["Lisbon", "Austin, TX"],
    "checkIn": "2026-12-04",
    "checkOut": "2026-12-07",
    "adults": 2,
    "children": 1,
    "childAges": [8],
    "currency": "EUR",
    "country": "us",
    "maxHotelsPerDestination": 100,
    "minStars": 3,
    "excludeVacationRentals": true,
    "includeOtaPrices": true
}
```

For schedules, leave `checkIn` empty and set `"checkInDaysFromToday": 30` with `"nights": 2`.

### Output

One row per hotel. Export it as **JSON, CSV, Excel, XML or HTML**.

```json
{
    "destination": "Lisbon",
    "resolvedDestination": "Lisbon",
    "position": 2,
    "name": "Czar Lisbon Hotel",
    "propertyType": "hotel",
    "starClass": 4,
    "rating": 4.1,
    "reviewCount": 1468,
    "nightlyPrice": 106.05,
    "totalPrice": 212.09,
    "priceBeforeTaxes": 183.17,
    "taxesAndFees": 28.92,
    "currency": "USD",
    "checkIn": "2026-11-12",
    "checkOut": "2026-11-14",
    "nights": 2,
    "adults": 2,
    "children": 0,
    "childAges": [],
    "dealBadge": "DEAL",
    "dealText": "19% less than usual",
    "lowestPriceProvider": "Agoda",
    "lowestOfferPrice": 106.05,
    "otaOffers": [
        { "provider": "Agoda", "nightlyPrice": 106.05, "totalPrice": 212.09, "isOfficialSite": false, "isSponsored": false, "bookingLink": "https://www.google.com/travel/lodging/clk?..." },
        { "provider": "Booking.com", "nightlyPrice": 156.4, "totalPrice": 312.8, "isOfficialSite": false, "isSponsored": false, "bookingLink": "https://www.google.com/travel/lodging/clk?..." }
    ],
    "address": "Av. Alm. Reis 103, 1150-020 Lisboa, Portugal",
    "phone": "+351 21 111 5200",
    "latitude": 38.7293279,
    "longitude": -9.1348492,
    "countryCode": "PT",
    "website": "http://www.czarlisbonhotel.com/",
    "amenities": ["Breakfast", "Free Wi-Fi", "Parking", "Air conditioning", "Bar", "Restaurant", "Room service", "Airport shuttle", "Full-service laundry", "Accessible", "Business center", "Kid-friendly", "Smoke-free property"],
    "description": "Understated rooms in a polished lodging featuring an elegant restaurant, a bar & breakfast.",
    "checkInTime": "3:00 PM",
    "checkOutTime": "12:00 PM",
    "imageUrls": ["https://lh3.googleusercontent.com/..."],
    "hotelUrl": "https://www.google.com/travel/hotels/entity/ChcI0e_Z0vHt2vYxGgsvZy8xdGd0Z3MwdhAB?hl=en-US&gl=us&ts=...",
    "entityId": "ChcI0e_Z0vHt2vYxGgsvZy8xdGd0Z3MwdhAB",
    "googlePlaceId": "0xd193399ff4fa2a3:0x31ed6b6f1a5677d1",
    "googleMapsUrl": "https://maps.google.com/?cid=3597649802266310609",
    "scrapedAt": "2026-10-23T11:43:28.210Z"
}
```

A destination that is blocked, unknown or priced for other dates adds one free row with an `error` field, so you know what to run again.

### Tips

- **Name the place precisely**: `Springfield, IL`, `Shinjuku, Tokyo` or `Eiffel Tower` work best, and `resolvedDestination` shows what Google matched. When Google can't place the text, it answers with hotels from all over your search region; the Actor detects this and returns one free error row.
- **Children and bigger groups**: each child is priced by age, and some booking sites have no rate for three or more guests in one room, so expect fewer offers there.
- **Booking links** in `otaOffers` are Google's redirect links, copied as they appear. The Actor never follows them.
- **Sold out?** A listed property with no rate for your stay has an empty `nightlyPrice`. Turn on **Skip hotels without a price** to keep priced rows only.
- **Money and region**: `currency` is the money every price is shown in; if Google can't price in it you get a free `currency mismatch` row. `country` is the Google region you search from and mostly affects the booking partners listed.

### AI agents and MCP

Any assistant that speaks MCP can use this Actor via Apify's MCP server. Point the client at `https://mcp.apify.com?tools=tenfoldfleet/google-hotels-scraper`; it asks you to log in to Apify once. The agent then writes the input, starts the run and reads the hotels, at the same per-event price as any run.

### FAQ

#### Does Google block it?

Not in our tests: 441 of 441 pages loaded on the first try from Apify servers, at up to 20 destinations in parallel, with no proxy. If Google starts refusing pages, the Actor switches the rest of the run to Apify's datacenter proxy by itself, and you are never charged for a page that failed.

#### Does it need a Google login, API key or cookies?

No login, key or cookie is involved: the Actor loads the same public pages your browser shows when you are signed out.

#### How many hotels does one destination return?

As many as Google lists, up to 500. Each results page holds roughly 20 properties and neighbouring pages overlap; the Actor skips the repeats and stops when a page adds nothing new.

#### How do you make sure the price is for my dates?

Every Google page states the dates, nights, guests and currency it was priced for. The Actor compares them with your input on every page and every price list. If Google answered for something else (for example a date in the past), you get a free `date mismatch`, `occupancy mismatch` or `currency mismatch` row instead of wrong prices.

#### Does it include vacation rentals?

Yes: Google's hotel list also contains apartments and other rentals, and `propertyType` tells them apart. Turn on **Hotels only** to drop them, or set **Minimum hotel class**.

#### Can I scrape one hotel over many dates?

This Actor reads a whole destination for one stay. For one hotel across a date range, use our [Google Travel Hotel Rate Tracker](https://apify.com/tenfoldfleet/google-travel-hotel-rate-tracker).

#### Is it legal to scrape Google Hotels?

It reads only what Google Hotels shows to every visitor: business listings and their prices, no personal data. Whether your particular use is allowed depends on where you are and what you do with it, so get legal advice if in doubt.

### More tools from Tenfold Fleet

| Actor | Output |
|---|---|
| [ALDI Australia Scraper - AU Products, Unit Prices & Catalogue](https://apify.com/tenfoldfleet/aldi-australia-scraper) | product |
| [Alibaba Image Search - Reverse Lookup of Suppliers by Photo](https://apify.com/tenfoldfleet/alibaba-image-search) | matched product |
| [Alibaba Products Scraper: Wholesale Suppliers, MOQ, Price Tiers](https://apify.com/tenfoldfleet/alibaba-products-scraper) | product |
| [AliExpress Keyword Scraper - Exact Sold Counts by Search Term](https://apify.com/tenfoldfleet/aliexpress-search-scraper) | product |
| [Amazon Product Scraper - Details, Prices & Search by ASIN](https://apify.com/tenfoldfleet/amazon-product-scraper) | product |
| [Applicant Tracking Jobs Scraper - Greenhouse, Lever & 6 More](https://apify.com/tenfoldfleet/ats-jobs-scraper) | job posting |
| [Backlinks Checker - Referring Domains, Anchors & Domain Rank](https://apify.com/tenfoldfleet/backlinks-checker) | backlink |
| [Bilibili Scraper - Videos, Comments, Danmaku & Search](https://apify.com/tenfoldfleet/bilibili-scraper) | video or comment |
| [Businesses Without Websites - Local Leads with Phone & Rating](https://apify.com/tenfoldfleet/businesses-without-websites) | lead |
| [Contact Details Scraper - One Lead Record per Company Website](https://apify.com/tenfoldfleet/company-contact-finder) | website with contacts |
| [Facebook Ads Library Scraper for Marketers](https://apify.com/tenfoldfleet/facebook-ads-library-scraper) | ad |
| [Facebook Page Contact Finder - Business Leads from Page Links](https://apify.com/tenfoldfleet/facebook-page-contact-finder) | page with contact details |
| [Google Ads Transparency Center Scraper - Competitor Ads by Site](https://apify.com/tenfoldfleet/google-ads-transparency-scraper) | ad |
| [Google AI Overviews Checker - Citations & Domain Tracker](https://apify.com/tenfoldfleet/google-ai-overviews-checker) | keyword checked |
| [Google Flights Scraper - All Fares per Route & Date (API)](https://apify.com/tenfoldfleet/google-flights-scraper) | route search |
| [Google for Jobs Scraper - Openings by City, Pay & Job Board](https://apify.com/tenfoldfleet/google-jobs-scraper) | job listing |
| [Google Keyword Planner Alternative - Ideas, Bids & Volume](https://apify.com/tenfoldfleet/google-keyword-planner) | keyword idea |
| [Google Maps Extractor - Business Leads, Phones & Websites](https://apify.com/tenfoldfleet/google-maps-extractor) | place |
| [Google News Scraper - Articles, Real URLs & Full Text](https://apify.com/tenfoldfleet/google-news-scraper) | article |
| [Google Travel Hotel Rate Tracker - OTA Prices for Every Night](https://apify.com/tenfoldfleet/google-travel-hotel-rate-tracker) | offer |
| [Search Trends by Region & Time - Google Trends Data Scraper](https://apify.com/tenfoldfleet/google-trends-scraper) | keyword |
| [Instagram Reels Search - Keyword to Top Reels, Plays & Creators](https://apify.com/tenfoldfleet/instagram-reels-search) | reel |
| [Instagram Reels Transcript - Speech to Text for Public Reels](https://apify.com/tenfoldfleet/instagram-reels-transcript) | reel transcript |
| [Keyword Ideas & Related Keywords - Difficulty, Volume & CPC](https://apify.com/tenfoldfleet/keyword-ideas) | keyword idea |
| [Keyword Search Volume, CPC & Difficulty Checker (Bulk)](https://apify.com/tenfoldfleet/keyword-search-volume) | keyword with data |
| [Likee Scraper - Creators by Country, Video Views & Likes](https://apify.com/tenfoldfleet/likee-scraper) | video |
| [LinkedIn Ads Library Scraper - Competitor Ad Copy & Targeting](https://apify.com/tenfoldfleet/linkedin-ad-library-scraper) | ad |
| [Reddit Brand Monitoring - Keyword Alerts for Posts & Comments](https://apify.com/tenfoldfleet/reddit-brand-monitoring) | mention |
| [Remote Job Board Scraper - Remote Jobs Aggregator, 7 Sites](https://apify.com/tenfoldfleet/remote-jobs-aggregator) | unique remote job |
| [SEEK Jobs Scraper - Salaries & Hiring Across 8 APAC Job Boards](https://apify.com/tenfoldfleet/seek-job-scraper) | job listing |
| [SEO Agent - AI Keyword Research & Competitor Reports](https://apify.com/tenfoldfleet/seo-agent) | research report |
| [SEO Crawler - Technical SEO Audit Tool & On-Page Checker](https://apify.com/tenfoldfleet/seo-audit-tool) | page audit |
| [SEO Competitor Keywords - Domain Ranked Keywords & Keyword Gap](https://apify.com/tenfoldfleet/seo-competitor-keywords) | keyword |
| [Shopify Inventory Scraper - SKUs, Variants & In-Stock Status](https://apify.com/tenfoldfleet/shopify-products-scraper) | product |
| [Shopify App & Theme Detector - Store Analyzer & Contacts](https://apify.com/tenfoldfleet/shopify-store-analyzer) | shopify store |
| [Sitemap URL Extractor - All URLs from sitemap.xml & robots.txt](https://apify.com/tenfoldfleet/sitemap-url-extractor) | url |
| [Website Built With Checker - Find Any Site's CMS & Tech Stack](https://apify.com/tenfoldfleet/tech-stack-detector) | website |
| [Threads Search - Keyword & Profile Posts Scraper (No Login)](https://apify.com/tenfoldfleet/threads-search) | post |
| [TikTok Transcripts - Captions or Speech to Text for Any Video](https://apify.com/tenfoldfleet/tiktok-transcripts) | video transcript |
| [HTML to Text & URL to Markdown - LLM Ready Web Content](https://apify.com/tenfoldfleet/url-to-markdown) | page |
| [Website Traffic Checker - Bulk Domain Traffic Estimate](https://apify.com/tenfoldfleet/website-traffic-checker) | domain with traffic data |
| [WeChat Official Account Articles - Keyword Search to Markdown](https://apify.com/tenfoldfleet/wechat-official-account-articles) | article found |
| [Weibo Scraper - Comment Threads, Hot Search Ranks & User Stats](https://apify.com/tenfoldfleet/weibo-scraper) | comment |
| [Woolworths Product Scraper - AU Shelf Prices, Specials & GTINs](https://apify.com/tenfoldfleet/woolworths-product-scraper) | product |
| [Workday Jobs Scraper - myworkdayjobs.com API with Salary](https://apify.com/tenfoldfleet/workday-jobs-scraper) | job posting |
| [YouTube Channel Email Scraper - Creator Contact Extractor](https://apify.com/tenfoldfleet/youtube-channel-email-scraper) | channel with email |
| [YouTube Livestream & Channel Scraper - Videos, Likes & Stats](https://apify.com/tenfoldfleet/youtube-channel-scraper) | video |
| [YouTube Comments Scraper - Replies, Likes & Sort by Newest](https://apify.com/tenfoldfleet/youtube-comments-scraper) | comment |
| [YouTube Shorts Analytics Scraper - Views, Likes & Hashtags](https://apify.com/tenfoldfleet/youtube-shorts-scraper) | short |
| [YouTube Captions Downloader - Transcript & Subtitles Scraper](https://apify.com/tenfoldfleet/youtube-transcript-scraper) | transcript |

# Actor input Schema

## `destinations` (type: `array`):

Cities, regions, neighborhoods or landmarks, one per line, e.g. "Lisbon", "Austin, TX", "Shinjuku, Tokyo". Each is searched as "hotels in <destination>" (a line that already says hotels, resorts or hostels is searched as written).

## `checkIn` (type: `string`):

YYYY-MM-DD. Leave empty for tomorrow (or use "Check-in days from today" below for scheduled runs).

## `checkOut` (type: `string`):

YYYY-MM-DD, up to 30 nights after check-in. Leave empty to use "Nights".

## `nights` (type: `integer`):

Length of stay when no check-out date is given.

## `checkInDaysFromToday` (type: `integer`):

For schedules and rate monitoring: check in this many days after the run date (0 = today, 30 = in a month). Used only when "Check-in date" is empty.

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

Guests aged 18 or over, for one room.

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

Number of children. Give their ages below; a missing age counts as 8.

## `childAges` (type: `array`):

Age of each child (0-17), e.g. \[5, 10]. Google prices children by age.

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

ISO code of the money every price is shown in, e.g. USD, EUR, GBP, AUD, JPY. If Google can't price in it, that destination returns a free error row instead of hotels.

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

2-letter code of the Google region you search from, e.g. us, gb, de. It mostly affects the booking partners listed; the hotels stay the same.

## `maxHotelsPerDestination` (type: `integer`):

Stop after this many hotels per destination. A Google results page holds roughly 20 properties, so 100 hotels need about 7 pages; big cities reach several hundred. Each hotel is one charged result ($0.004). On the Apify free plan, the $5 monthly credit covers about 1,200 hotels, or about 550 with booking-site prices.

## `minStars` (type: `integer`):

Lowest hotel class to keep, 1-5. Properties without a class, such as most rentals, are dropped when this is set. Dropped rows are free.

## `excludeVacationRentals` (type: `boolean`):

Google's hotel list also contains apartments and other rentals. Turn on to keep hotels only. Skipped rentals are free.

## `skipHotelsWithoutPrice` (type: `boolean`):

Some listed properties have no rate for your stay, usually because they are full. They come back with an empty nightlyPrice unless you turn this on. Skipped rows are free.

## `includeOtaPrices` (type: `boolean`):

Opens each hotel's rate list as well and adds the per-site nightly and stay prices, the cheapest seller, the direct rate on the hotel's own website, the street address and the phone. One extra event per hotel ($0.005) and one more page per hotel, so a run takes longer. Lists that fail, and sold-out hotels with no seller, are not charged.

## `maxConcurrency` (type: `integer`):

How many destinations to read in parallel.

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

Optional. The Actor works without a proxy and retries a blocked page once through Apify datacenter proxy by itself.

## Actor input object example

```json
{
  "destinations": [
    "Lisbon",
    "Austin, TX"
  ],
  "nights": 1,
  "adults": 2,
  "children": 0,
  "currency": "USD",
  "country": "us",
  "maxHotelsPerDestination": 100,
  "excludeVacationRentals": false,
  "skipHotelsWithoutPrice": false,
  "includeOtaPrices": false,
  "maxConcurrency": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

No description

# 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 = {
    "destinations": [
        "Lisbon",
        "Austin, TX"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("tenfoldfleet/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 = { "destinations": [
        "Lisbon",
        "Austin, TX",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("tenfoldfleet/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 '{
  "destinations": [
    "Lisbon",
    "Austin, TX"
  ]
}' |
apify call tenfoldfleet/google-hotels-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,tenfoldfleet/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/Hn5mgoaATyjXzRxAI/builds/DrjAExv26R4W7RVPA/openapi.json
