Google Hotels Scraper for Hotel Prices and Nightly Rates
Pricing
from $1.56 / 1,000 hotel results
Google Hotels Scraper for Hotel Prices and Nightly Rates
Export Google Travel hotel prices from Google Hotels: nightly and total prices plus organic booking offers for your dates, adults and currency. Search destinations or use hotel links for hotel price monitoring. $1.95/1,000 hotels plus $0.001/start at default memory. Maintained by CleanScrape.
Pricing
from $1.56 / 1,000 hotel results
Rating
0.0
(0)
Developer
CleanScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Collect hotel prices for a specific stay, together with the organic booking offers available through Google Hotels, part of Google Travel. Each result identifies the property, dates, guest count and currency, so you can use it in a spreadsheet or your own price-monitoring workflow.
Maintained by CleanScrape. Questions or unexpected results: contact.cleanscrape@gmail.com. Include your run ID and a brief description; never send API tokens.
The main form shows the destination, stay preset, nights, adults, currency and Maximum hotels. Open Specific hotels or dates (optional) for property links or exact check-in and check-out dates. Filters and scan limits are below that; connection controls are in Advanced connection settings.
Watch a real run
Let's use a Christmas market weekend in Vienna as an example: two adults and exact dates. This short walkthrough shows the stay controls, hotel prices, every booking-site offer and the spreadsheet export using a real Actor run.
Open the London example, then change the destination and stay to suit your search. The video uses recorded prices, not current booking quotes. Place or hotel searches cover the first source results page, not every hotel in a city.
For a provider spreadsheet, choose Export, select Booking-site offers in the dialog, and then choose Excel or CSV. Provider offers are included in each hotel result rather than billed as additional results. Check room and cancellation terms before comparing quotes.
Try a small example
Suppose you are comparing accommodation in London for a two-night trip next month.
The form opens with this search, so you can start it as it is. The London example has the same settings. Both use relative dates, so they work again for a later trip.
- Keep
hotels in Londonunder Place or hotel searches, or enter your own destination. - Keep In 30 days, 2 nights, 2 adults and British pound, or change them.
- Leave Maximum hotels at 5 and start the run.
- Open the Hotel prices table for headline nightly and stay totals. Switch to Booking-site offers to compare collected booking-provider quotes in separate display rows.
- Read the Run report alongside the results. It explains source errors, filtering and coverage limits.
For exact properties, clear the prefilled Place or hotel searches entry and paste Google Hotels URLs under Hotel links. You can also keep both inputs to combine discovery with specific properties. The Actor checks that the returned property ID matches. Place or hotel searches are discovery, not exact hotel-name matching. If Google substitutes an unrelated place for an explicit search such as hotels in London, that search is skipped with an explanation rather than exporting the substituted hotels. Words such as "four-star" or a neighborhood name are search hints, not verified filters or geographic boundaries.
{"queries": ["hotels in London"],"datePreset": "in_30_days","nights": 2,"currency": "GBP","adults": 2,"maxResults": 5}
Compare hotel prices for the same stay
Open a property in Google Hotels and copy its full property-page URL. Paste one link per entry under Hotel links (optional), then clear Place or hotel searches if you do not want additional discovery results. Set the dates, adults and currency in this form; values embedded in a pasted link do not replace those settings.
For a reusable example, this link to The Waldorf Hilton, London requests a new stay in 30 days:
{"queries": [],"hotelUrls": ["https://www.google.com/travel/hotels/entity/ChUI3_-FnbCxhLlLGgkvbS8wNmNna3EQAQ/prices"],"datePreset": "in_30_days","nights": 2,"adults": 2,"currency": "GBP","maxResults": 1}
Availability and quotes can change. Use your own property link for your comparison. To switch back to a place search, remove the property links and enter a destination. To switch from exact dates to a preset, clear both date fields as well.
Dates without manual formatting
Use tomorrow, next Friday, in seven days or in thirty days. Presets are calculated from the run's UTC date and work with schedules. Dates are saved when a run starts and stay fixed if that same run restarts. A new scheduled run calculates a new stay. If saved dates have become past, start a new run instead. For a fixed trip, select Choose exact dates under When is the stay?, then open Specific hotels or dates (optional) and select a check-in date. Add a check-out date, or leave it empty to stay Number of nights. Explicit check-in and check-out values take precedence over a preset.
The Actor supports one requested room and 1-6 adults. Children, multiple rooms and date grids are not supported yet. It does not silently ignore unsupported input fields.
What you receive
One dataset row represents one property and stay, including the collected organic provider offers. Dates, currency, adult count and property identity must pass source checks before a row is delivered.
| Field | Meaning |
|---|---|
name, hotelId, googleHotelsUrl | Property identity and a link with the requested stay |
checkIn, checkOut, nights, adults, currency | Source-verified stay context |
nightlyPrice, totalPrice | Google's displayed headline amounts, preserved separately |
offers | Supported organic provider quotes, amounts, source terms and Google booking redirects |
offerCount, offersStatus, warnings | Collected coverage and relevant limitations |
rating, reviewCount, address | Property information when the supported source supplies it |
verification, fetchedAt, recordKey | Quality checks, collection time and stable property/stay key |
The stay total is not calculated by multiplying a rounded nightly price. Provider quotes can differ from Google's headline offer. A missing field means it was not available in a supported source structure, not that the property lacks that feature.
Export to a spreadsheet or use the API
Use the Output tab's export option for CSV or Excel, selecting Hotel prices for one row per hotel or Booking-site offers for individual quotes. For integrations, use JSON to keep each hotel's nested offers array. Expanding the provider view does not create extra hotel results or hotel-result charges. A hotel without supported offers may have an empty provider cell; its headline price remains in the Hotel prices view.
The provider table leaves out long booking URLs and internal provider IDs to keep comparisons readable. They remain available in All fields and the full JSON export. Numeric provider prices preserve the source precision; the corresponding nightlyPriceText and totalPriceText fields retain Google's rounded display strings.
In the export dialog, select the view again before downloading; it may not match the table currently open. Apify's CSV and Excel exports can retain empty columns for fields hidden by a view. These do not mean that hotel prices are missing. Use the JSON export when preserving the complete nested records is important.
You can schedule the same input for repeat collection. Use explicit dates to track one particular trip, or a relative preset for a rolling stay. A fresh run collects a fresh snapshot; this Actor does not calculate historical price changes or send alerts.
Comparing prices responsibly
A cheaper offer may be a dorm bed rather than a private room, or have different cancellation and meal terms. Room equivalence is not verified by this Actor. The lowest observed provider is not a rate-parity finding or a guarantee of the cheapest equivalent booking.
Google can map hostel occupancy to multiple beds or bookable units. requestedRooms: 1 describes the request, not independent confirmation that every provider is selling one ordinary hotel room. taxesIncludedInHeadline is currently null: the parser cannot reliably attribute tax wording to the headline quote. Do not assume taxes or local charges are included.
Booking links can expire, and checkout prices can change. The Actor does not open booking destinations, make reservations or verify checkout availability. It does not return paid advertising placements as organic offers.
Coverage and limits
- The Actor discovers up to 20 properties from the first source results page per place search. It is not a complete city export.
- Maximum results is a run-wide upper limit, not a promise of that many available prices.
- Rating filtering happens after lookup, so a restrictive filter can produce fewer results.
- Provider counts vary by property and stay. Offers are bounded by Booking-site offers per hotel.
- Source blocks stop the workflow. No CAPTCHA bypass or automatic residential fallback is included.
- Direct requests and Apify datacenter proxy are the supported connection modes. Custom proxy URLs, residential groups and country-targeted proxy settings are rejected rather than silently ignored.
- A failed lookup or absent quote does not mean a hotel is sold out. Diagnostics belong in the run report, not fabricated price rows.
- Interrupted runs retain completed rows. An ambiguous charging/storage interruption stops safely for investigation rather than risking duplicate charges.
Pricing
The base price is $1.95 per 1,000 delivered hotel/stay results, plus $0.001 per Actor start at the default 512 MB of memory. Collected organic provider offers and platform usage are included. Expanding or exporting provider offers does not create another billable hotel result.
| Delivered hotel results | Base cost, including one start at default memory |
|---|---|
| 1 | $0.00295 |
| 5 | $0.01075 |
| 20 | $0.04000 |
| 50 | $0.09850 |
Bronze subscribers receive 10% off base event prices, Silver 15%, and Gold 20%. The same 20% reduction applies to Platinum and Diamond. Apify applies the subscription-tier price automatically; see the Pricing tab for your applicable rate.
The start event is charged automatically by Apify: one event for up to 1 GB of allocated memory, then one for each additional GB. Keep the default memory unless your workload requires more. A start can be charged even when no quote is returned. Failed lookups, rejected source contexts and filtered-out properties are not hotel-result events.
Restart costs: Apify can charge another start event when a finished or interrupted run is resurrected. The cost examples above assume one start, not repeated restarts. The Actor cannot prevent this platform-managed event before its code starts. Check the run's accumulated charges before resurrecting it with an already exhausted budget.
Set a positive maximum run cost to control spending. When there is not enough budget for another result, the Actor stops delivery and reports charge_limit. A maximum result count is also a cap, not a prepaid package or a guaranteed number of quotes. Resuming an interrupted run does not intentionally re-export or re-charge already saved hotel rows.
If a run returns fewer results than expected
- Check Run report for the effective dates, currency and adult count. A maximum is a cap, not a guaranteed result count.
- A source-layout or context-mismatch error means the Actor could not safely verify that response. It does not substitute a price for a different stay.
- For a source block, wait before trying a small run again. Increasing concurrency or repeatedly restarting is not a reliable fix.
- If a broad place search is not specific enough, open the property in Google Hotels and paste its full
/travel/hotels/entity/URL. Short Maps links are not supported. A Booking.com or Hotels.com link is turned into a search for the hotel's name, and the run says so. If a hotel has no price for your dates, or the search does not seem to match the place you typed, the run's final message names it. - For API use, submit arrays of search strings or property URLs. No Google account, hotel ID lookup or additional source API key is needed when you use place searches.
Ready-to-run examples
Each example opens with its input filled in. Change the input and run it.
| Example | What it does |
|---|---|
| Compare Paris hotel prices for next weekend | Prices for 2 adults and 2 nights from next Friday, for up to 20 Paris hotels in euros. |
| Check one hotel's price on each booking site | The Savoy in London for 2 nights a month from now, with each booking site's offer. |
| Compare Las Vegas prices for a two-night hotel stay | Compare Las Vegas hotel prices in USD for two adults and two nights, starting in 30 days. |
| Compare New York hotel prices across booking sites | Compare available booking-site offers for up to 10 New York hotels, for two adults and a two-night stay in 30 days. |
Use it from an AI agent
This Actor works as a tool in Claude, Cursor and other AI assistants that support MCP, through Apify's MCP server. Add this server and sign in with your Apify account when asked:
https://mcp.apify.com?tools=cleanscrape/google-hotels-scraper
Then ask in plain words, for example: "Find hotel prices in Lisbon for two nights next month on Google Hotels and list the five cheapest." The assistant runs the Actor in your Apify account and reads the results. The price per result is the same as in Console.
Common questions
Is there a Google Hotels API?
Google's hotel APIs are for hotel and travel partners. This Actor reads the public Google Hotels results for your dates and guests and returns them as rows.
Can I check prices for a hotel I found on Booking.com?
Yes. Paste the Booking.com or Hotels.com link. The Actor uses the hotel name to find it on Google Hotels.
Can I compare prices from different booking sites?
Yes. The Booking-site offers view lists each booking site's offer for the same stay.
How much does it cost?
$1.95 per 1,000 hotel results, plus $0.001 per run at the default memory. 20 hotels cost about $0.04. See Pricing above.
Support and independence
We welcome specific bug reports and examples of missing coverage. Maintenance is ongoing, but source changes can cause interruptions; there is no uptime guarantee or promise that every property always has a quote.
If the Actor was useful, an honest review on its Store page helps other people find it.
This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Google or the booking providers shown in its results. All trademarks belong to their respective owners.
More tools from CleanScrape
- Casino Bonus Checker: the casino bonus each affiliate and review site shows, with promo codes, 18+ notices and affiliate IDs
- Kick Sponsor Tracker: which brands Kick streamers promote, with promo codes, affiliate links and broadcast hours
- Google Jobs Scraper: job listings with salaries, descriptions and apply links from Google Jobs
- App Store Reviews & Google Play Reviews Scraper: reviews from both app stores in one table
- Google Trends Scraper API: search interest over time, by region, related queries and trending searches
- Map Your Show Exhibitor List Scraper: trade show exhibitor lists and booth changes
- Shopify Product Reviews Scraper API: Judge.me and Okendo reviews from Shopify product links
- Google News Scraper and RSS Feed Reader: headlines from Google News and publisher feeds
- Pinterest Scraper API: keyword search, public pin links and board previews; search results may lack a pin link
- TikTok Shop Product Scraper: US TikTok Shop prices, sellers and ratings
- Whatnot Seller Tracker: top Whatnot sellers per category, items sold, sales per day and followers over time
- Whatnot Scraper: Whatnot listings with prices and live shows by keyword or category
- Meta Threads Scraper: public Threads posts from accounts or post links
- Likee Scraper API: Likee videos and comments
- Flashscore Tennis Scraper: tennis results, statistics, point-by-point and head-to-head
- Bilibili Scraper: Bilibili videos, danmaku, top comments and creators, no login
- ATP and WTA Tennis Rankings Scraper: current ATP and WTA singles, doubles and race rankings with points and movement
- Career Page Jobs Scraper for Greenhouse, Lever and Ashby: open jobs from company career pages, with salaries and new or closed jobs per company
- Video Frame Extractor for Scene Changes and Thumbnails: still images from video files at scene changes, intervals or timestamps, with contact sheets