Google Hotels Scraper - Prices & Booking Offers avatar

Google Hotels Scraper - Prices & Booking Offers

Pricing

from $0.50 / 1,000 hotels

Go to Apify Store
Google Hotels Scraper - Prices & Booking Offers

Google Hotels Scraper - Prices & Booking Offers

Search Google Hotels for any place and dates. Each hotel becomes one row with its lowest price per night and per stay, rating, reviews, star class, coordinates and every booking site's offer (Booking.com, Agoda, Trip.com, the hotel's own site...). Failures are reported, not charged.

Pricing

from $0.50 / 1,000 hotels

Rating

0.0

(0)

Developer

Philip Kirkbride

Philip Kirkbride

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Get Google Hotels prices for any place and any dates. Type a city, neighborhood or search such as "hotels near Times Square", pick check-in and check-out dates and the number of guests, and every hotel Google lists becomes one row: the lowest price per night and for the whole stay (taxes and fees included), star class, guest rating and review count, coordinates, check-in and check-out times and the hotel's website.

Leave Add every booking site's offer on to add, for each hotel, the price from every booking site Google compares (Booking.com, Agoda, Trip.com, Hotels.com, Hostelworld, Super.com, the hotel's own site and more), cheapest first with a link to each offer, plus the street address, phone number and the range the hotel typically costs for your dates. Prices come in the currency you choose. No Google account is needed.

Use cases

  • Rate shopping: compare your hotel's price with the competition for the same dates, every day.
  • Booking-site parity: see which site sells each hotel cheapest and how far the others are from it.
  • Travel deals: find hotels priced below what they typically cost for your dates.
  • Market research: collect star class, ratings and prices for every hotel in a city.
  • Trip planning: shortlist hotels by price, rating and location for a group's exact dates.

Quick Start

{
"queries": [
"Lisbon"
],
"checkInDate": "2026-12-10",
"checkOutDate": "2026-12-13",
"adults": 2,
"maxItems": 20,
"includeOffers": true
}

More examples:

  • A family weekend in GBP: {"queries": ["Edinburgh"], "checkInDate": "2026-11-27", "checkOutDate": "2026-11-29", "adults": 2, "childrenAges": [6, 10], "currency": "GBP", "country": "GB"}
  • Several cities, prices only (faster): {"queries": ["Paris", "Rome", "Barcelona"], "checkInDate": "+30 days", "checkOutDate": "+32 days", "includeOffers": false, "maxItems": 100}
  • Hotels only, no apartments: {"queries": ["hotels near Times Square"], "hotelsOnly": true}

Input

InputTypeDefaultMeaning
queriesarray—Places or searches as you would type them on Google Hotels: Lisbon, Austin, TX, hotels near Times Square, resorts in Cancun. A bare place is searched as "hotels in
checkInDatestring7 days from todayArrival date (YYYY-MM-DD) or days from today (+14 days, +2 weeks). Up to 330 days ahead.
checkOutDatestringone night after check-inDeparture date, same formats. At most 30 nights.
adultsinteger2Adults staying (1 to 6).
childrenAgesarray—One age (0 to 17) per child. Adults and children together: at most 6.
includeOffersbooleantrueAdd every booking site's offer, the cheapest site, address, phone and the typical price range. Turn off for faster, cheaper price lists.
hotelsOnlybooleanfalseLeave out the vacation rentals (apartments and homes) Google mixes into results.
maxItemsinteger20Cap on rows for each place or search (up to 1,000).
currencystringUSDCurrency for every price: USD, EUR, GBP, JPY, …
countrystringUSCountry whose Google Hotels results you want (US, GB, DE, …).
languagestringenLanguage of names and labels (en, es, de, pt-BR, …).

Places run in the order given. A hotel that appears in more than one search is returned once.

What it returns

The dataset contains one row per hotel or vacation rental:

FieldMeaning
searchQuery, searchedQuery, matchedPlace, positionYour query, what was searched for it (a "near" search that finds nothing is retried with "in"), the place Google matched it to and the hotel's position in Google's results (1 = first).
name, entityId, urlHotel name, Google Hotels property id and its Google Hotels page.
propertyTypehotel or vacationRental.
hotelClass, hotelClassTextStar class (1 to 5) and Google's label, for example 4-star hotel.
rating, reviewCount, ratingBreakdownAverage guest rating out of 5, number of reviews, and the share and count of reviews per star.
descriptionGoogle's short description of the property.
address, phoneStreet address and phone number (with offers).
latitude, longitude, countryCodeMap coordinates and the property's country.
website, googleMapsIdThe hotel's own website and its Google Maps id.
checkInTime, checkOutTimeThe hotel's check-in and check-out times.
checkInDate, checkOutDate, nights, adults, childrenAgesThe stay that was priced.
currencyCurrency of every price in the row.
pricePerNight, pricePerNightTextLowest nightly price with taxes and fees, as a number and as shown.
totalPrice, totalPriceText, taxesAndFeesLowest price for the whole stay with taxes and fees, and the taxes and fees inside it.
lowestPriceSite, lowestPriceUrlSite selling the stay cheapest and the link to that offer (with offers).
dealTextGoogle's deal label, for example 23% less than usual.
typicalPriceLow, typicalPriceHighThe range the hotel typically costs per night for these dates (with offers, when Google shows it).
offerCount, offersEvery booking site's offer, cheapest first: site, isOfficialSite, pricePerNight, totalPrice (number and as shown) and url (with offers).
imageUrlsUp to 10 photo links.
detailLeveloffers when the hotel's booking-site prices were read (offerCount 0 when it is sold out), search otherwise.
scrapedAtCollection time (UTC, ISO 8601).

Fields Google does not show are null, never guessed. Hotels that are sold out for your dates come back with null prices.

The run summary (OUTPUT) reports the stay searched, results, resultsWithOffers, one entry per search in searches (the place Google matched, its total count, pages read and rows delivered), errors with the list at searchErrors, and offerErrors for hotels whose booking-site offers could not be read.

Example queries

  • Weekend rates in a city: {"queries": ["Chicago"], "checkInDate": "2026-12-04", "checkOutDate": "2026-12-06"}, then sort by pricePerNight.
  • Cheapest site per hotel: keep includeOffers on and compare lowestPriceSite with the offers list.
  • Deals: keep rows whose pricePerNight is below typicalPriceLow, or with a dealText.
  • Daily rate tracking: schedule the same search every morning and watch pricePerNight move.
  • Group trips: set adults and childrenAges to see prices for the whole party.

Output example

{
"searchQuery": "Lisbon",
"searchedQuery": "hotels in Lisbon",
"matchedPlace": "Lisbon",
"position": 2,
"name": "The Central House Lisbon Baixa",
"entityId": "ChkIg-b2ismUj7M1Gg0vZy8xMWg3MThreGg1EAE",
"url": "https://www.google.com/travel/hotels/entity/ChkIg-b2ismUj7M1Gg0vZy8xMWg3MThreGg1EAE",
"propertyType": "hotel",
"hotelClass": 2,
"hotelClassText": "2-star hotel",
"rating": 4.3,
"reviewCount": 754,
"ratingBreakdown": [
{"stars": 5, "percent": 68, "count": 499},
{"stars": 4, "percent": 16, "count": 126},
{"stars": 3, "percent": 6, "count": 51},
{"stars": 2, "percent": 3, "count": 25},
{"stars": 1, "percent": 7, "count": 53}
],
"description": "Straightforward dorms & private rooms in a casual hostel featuring a colorful cafe/bar.",
"address": "R. dos Fanqueiros 300, 1100-233 Lisboa, Portugal",
"phone": "+351 21 887 3552",
"latitude": 38.7131037,
"longitude": -9.1368004,
"countryCode": "PT",
"website": "https://www.thecentralhousegroup.com/",
"googleMapsId": "0xd1934787bad6065:0x35663ca4915db303",
"checkInTime": "2:00 PM",
"checkOutTime": "11:00 AM",
"checkInDate": "2026-11-12",
"checkOutDate": "2026-11-14",
"nights": 2,
"adults": 2,
"childrenAges": [],
"currency": "USD",
"pricePerNight": 59.7,
"pricePerNightText": "$60",
"totalPrice": 119.39,
"totalPriceText": "$119",
"taxesAndFees": 23.72,
"lowestPriceSite": "The Central House Lisbon Baixa Hostel",
"lowestPriceUrl": "https://reservation.mirai.com/Forwarder/googleFrontDispatcher.htm",
"dealText": "23% less than usual",
"typicalPriceLow": "$69",
"typicalPriceHigh": "$86",
"offerCount": 16,
"offers": [
{
"site": "The Central House Lisbon Baixa Hostel",
"isOfficialSite": true,
"pricePerNight": 59.7,
"pricePerNightText": "$60",
"totalPrice": 119.39,
"totalPriceText": "$119",
"url": "https://reservation.mirai.com/Forwarder/googleFrontDispatcher.htm"
},
{
"site": "Hostelworld",
"isOfficialSite": false,
"pricePerNight": 65.23,
"pricePerNightText": "$65",
"totalPrice": 130.45,
"totalPriceText": "$130",
"url": "https://www.hostelworld.com/pwa/hosteldetails.php/296255"
},
{
"site": "Booking.com",
"isOfficialSite": false,
"pricePerNight": 65.99,
"pricePerNightText": "$66",
"totalPrice": 131.98,
"totalPriceText": "$132",
"url": "https://www.booking.com/"
}
],
"imageUrls": [
"https://lh3.googleusercontent.com/grass-cs/AABkmLc9Crdaf45yQ7xb5_N2s15-NsaXQLzcetxCBIBXbn9cwGOQT5W714kRplSjMio8JBh4CvgwT892rSAEvxt3iVdgxSmQceIpydTx_z-LT9ZZ_GdnDCQhmazoZKyzcAlbwsrKNJvz=s287-w287-h192-n-k-no-v1"
],
"detailLevel": "offers",
"scrapedAt": "2026-10-20T18:43:10Z"
}

(Offer links are shortened here; the dataset carries the full link for your dates and guests.)

Failed searches and offers

A search that could not be read is reported in the run summary at OUTPUT.searchErrors with its query, code and message. When a hotel's booking-site offers cannot be read, the hotel is still delivered with its lowest price and detailLevel search, and it is listed in OUTPUT.offerErrors. Failures are never dataset rows and are not charged.

Every price is checked against your dates: a hotel Google priced for other dates, or without saying for which dates, is left out and not charged, and the run summary counts it at OUTPUT.stayChecks. A search whose prices are all for other dates is reported with the code DATES_IGNORED, and one whose prices carry no dates with DATES_UNVERIFIED. If no hotel at all could be collected, the run ends with an error instead of finishing green with an empty dataset.

Limits and caveats

  • Prices are what Google Hotels shows at the moment of the run for your dates, guests and currency; they change often, and booking sites may show a different final price.
  • Google mixes vacation rentals into hotel results; use hotelsOnly to leave them out. Rentals have no star class or address.
  • Google lists up to a few hundred properties for most places. For more, split a large city into neighborhoods; duplicates across searches are removed.
  • At most 6 guests, 30 nights and 330 days ahead per search, as on Google Hotels.
  • With offers on, each hotel takes about a second; without offers, results come back about 18 at a time.
  • Automated access is subject to Google's terms; use this actor only where you have the necessary permissions and a lawful basis.

FAQ

Do I need a Google account? No. Only public hotel and price information is collected.

Which booking sites are covered? Every site Google Hotels compares for that hotel and stay, typically 5 to 20: Booking.com, Agoda, Trip.com, Hotels.com, Hostelworld, Super.com, trivago, the hotel's own website and many more.

Are prices per night or per stay? Both: pricePerNight and totalPrice, each with taxes and fees included.

Can I use relative dates for a scheduled run? Yes. "checkInDate": "+14 days" always searches two weeks ahead of the run date.

Price

$0.0005 per hotel, $0.00125 per hotel with booking-site offers ($0.0005 hotel + $0.00075 offers add-on), plus $0.005 per run start. The offers add-on is charged only when at least one booking-site offer comes back: a hotel that is sold out for your dates, or whose offers could not be read, is charged as a hotel. The run-start event is charged per GB of memory; the default 512 MB run is one start event. The start is charged even if the run saves no results. Failed searches are not charged. When your maximum charge for the run is reached, the run stops and keeps the rows already saved. Platform usage is included in these prices.