Google Hotels Scraper & API - Hotel Prices & Price Calendar avatar

Google Hotels Scraper & API - Hotel Prices & Price Calendar

Pricing

from $1.28 / 1,000 hotels

Go to Apify Store
Google Hotels Scraper & API - Hotel Prices & Price Calendar

Google Hotels Scraper & API - Hotel Prices & Price Calendar

[Limited Launch Offer $1.50/1K] Scrape Google Hotels prices and hotel rates for any city and dates: price per night and total, stars, rating, reviews, location, website, photos. Many locations and check-in dates in one run.

Pricing

from $1.28 / 1,000 hotels

Rating

0.0

(0)

Developer

Scrape With Me

Scrape With Me

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Google Hotels Scraper - Prices, Ratings, Price Calendar

Scrape Google Hotels for any city, area or landmark and any dates: price per night and total price for your stay, star class, guest rating and number of reviews, rating breakdown, coordinates, hotel website, photos, description, check-in/out times, nearby places and the Google Hotels / Google Maps links. No browser, no API key.

Search many locations and many check-in dates in one run - every row carries its search (location, check-in, check-out, nights, adults, currency), so a run with several dates is a ready-made price calendar.

Why this one

  • It works. Plain, fast HTTPS requests to Google Hotels (about 20 hotels per request, paginated), not a slow headless browser. If Google throttles, the request is retried on a proxy automatically.
  • Price calendar. Add several check-in dates to compare prices across dates in one dataset.
  • Pay only for what you keep. Filters for minimum rating, maximum price per night and star class are applied before saving - only matching hotels are charged.
  • Any currency and language. Prices in USD, EUR, BRL, JPY...; names and descriptions in your language.
  • Approximate places welcome. "Times Square, New York" or "near the Eiffel Tower" work; the place Google used is returned in resolvedLocation.

Input example

{
"locations": ["Paris", "Rio de Janeiro"],
"checkIn": "2026-11-12",
"checkInDates": ["2026-12-10"],
"nights": 3,
"adults": 2,
"currency": "EUR",
"maxHotelsPerSearch": 100,
"minRating": "4",
"hotelClass": ["4", "5"]
}

Output example (shortened)

{
"name": "Ritz Copacabana Hotel",
"hotelClass": 4,
"pricePerNight": 154,
"priceTotal": 463,
"currency": "EUR",
"rating": 4.5,
"reviewCount": 917,
"latitude": -22.97,
"longitude": -43.19,
"website": "https://...",
"photos": ["https://lh3.googleusercontent.com/..."],
"googleHotelsUrl": "https://www.google.com/travel/hotels/entity/...",
"googleMapsUrl": "https://maps.google.com/?cid=...",
"resolvedLocation": "Rio de Janeiro",
"searchLocation": "Rio de Janeiro",
"checkIn": "2026-11-12",
"checkOut": "2026-11-15",
"nights": 3,
"adults": 2,
"position": 1,
"scrapedAt": "2026-10-04T20:10:00Z"
}

The OUTPUT record summarises every search: hotels found, matching filters and saved, the place Google resolved, and any error.

Run it on a schedule and connect it to your tools

Schedule: in Apify Console open Schedules → Create, pick this actor and your input, and set it to run every Monday at 07:00 (your time zone) for a fresh dataset on a fixed day. Each run returns the full, current result set as a new dataset.

Integrations (Actor → Integrations tab, no code):

  • Google Sheets — append every run's rows to a sheet.
  • Make, Zapier, n8n — start the actor from a scenario/zap/workflow and use the rows in the next steps.
  • Webhook — get a POST to your endpoint when a run succeeds, then download the dataset.
  • Slack / email — notify your team when a scheduled run finishes.

AI agents (MCP) — Claude, ChatGPT, Cursor, VS Code or any MCP client can run it as a tool: add the Apify MCP server https://mcp.apify.com?actors=kalilfagundes.w/google-hotels-scraper (sign in with your Apify account) and ask for the data in plain language. The agent fills the input from the input schema and reads the dataset back.

API — call it from your code (pip install apify-client / npm i apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("kalilfagundes.w/google-hotels-scraper").call(run_input={
"locations": [
"Paris",
"Rio de Janeiro"
],
"checkIn": "2026-11-12",
"checkInDates": [
"2026-12-10"
],
"nights": 3,
"currency": "EUR",
"maxHotelsPerSearch": 25,
"maxItems": 100
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('kalilfagundes.w/google-hotels-scraper').call({
"locations": [
"Paris",
"Rio de Janeiro"
],
"checkIn": "2026-11-12",
"checkInDates": [
"2026-12-10"
],
"nights": 3,
"currency": "EUR",
"maxHotelsPerSearch": 25,
"maxItems": 100
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Pricing

Pay per event, platform usage included: one hotel event per saved hotel row (see the Pricing tab). Hotels removed by your filters are not charged.

Tips & limitations

  • Prices are what Google Hotels shows for the dates, guests and currency you choose (usually the lowest offer).
  • Google shows up to ~20 hotels per page; maxHotelsPerSearch controls how many pages are read.
  • For daily price tracking, save the input as a task and schedule it.

Feedback

If this actor saves you time, a quick rating on its Store page helps other people find it. Something not working? Open an issue in the Issues tab and it gets fixed fast.