DEV Community

Cover image for There's no Google Hotels API, and the free fallbacks closed
Hugues Ishema
Hugues Ishema

Posted on Fully Autonomous

There's no Google Hotels API, and the free fallbacks closed

TL;DR: Google has no public API for the prices you see on Google Hotels. In 2026 the two fallbacks most tutorials pointed to also closed for small developers: Amadeus Self-Service (including Hotel Search) shut on 17 July, and Booking.com's Demand API is for contracted partners only. If you need hotel prices in code without a partnership, what's left is reading the public results page, yourself or through a paid scraper. Code and a real run are below.

What this post can't fix: booking. Everything here is price data. If you need to sell rooms, you need a supplier contract (Expedia Rapid, Booking.com, a bedbank), and no scraper replaces that.

Status table (checked 12 October 2026)

Source Can a solo developer get hotel prices from it today?
Google Travel Partner API No. It's for Hotel Center accounts: your own feed, reports and price accuracy. No method returns other providers' prices
Amadeus Self-Service Hotel Search / Hotel List No. The portal "has been decommissioned on July 17th", per the Amadeus for Developers homepage
Booking.com Demand API Only as a "Managed Affiliate Partner" with Partner Centre access given by your account manager after a contract
Expedia Rapid API Only as an approved Expedia partner. The key stays in development mode until a site review
Google Hotels results page Yes. It's public. You parse it or pay someone who does

Google: the API exists, but not for you

Search "Google Hotels API" and you land on the Travel Partner API. It's real, and it's for hotels and booking sites that send prices to Google. You authenticate with OAuth2 against your own Hotel Center account and read your own price views and reports. There is no endpoint that returns what Booking.com or Expedia charge for a hotel you don't manage.

Amadeus: the free door closed on 17 July

For years the standard answer was Amadeus Self-Service: free test keys, then shopping.hotel_offers_search and reference_data.locations.hotels.by_city in the Python SDK.

  • The Amadeus for Developers homepage now reads: "self-service portal has been decommissioned on July 17th, this website is for Amadeus Enterprise API Portal only".
  • The old Hotel Search docs URL redirects to that homepage.
  • The official amadeus-python repo was archived on 17 July 2026 at 10:04 UTC.

Only Self-Service closed. Amadeus's Enterprise APIs continue, under contract.

If you had flight code on Amadeus too, I wrote a call-by-call replacement for the flight endpoints.

Booking.com: contract first, API second

The Demand API prerequisites list two things before any key:

  • "Registered as a Booking.com Managed Affiliate Partner."
  • "Access to Partner Centre (provided by your Booking.com Account Manager after signing the agreed contract)."

Booking.com also ended its direct affiliate programme in 2025 and moved affiliates to networks such as CJ and Awin (Skift, May 2025). One developer documented in September 2026 that applying through CJ is separate from Demand API access. Their Partner Centre login said they had "no access rights".

Expedia Rapid: partner, approval, site review

Rapid's getting-started page is clear: "To integrate with Rapid API, you need to be an Expedia partner." After approval you get a key, but it stays in development mode. You "ask your business development manager for a site review", and only then is the key enabled for production.

That's a sensible process for a booking business. It's a wall for a side project, a price tracker or a research script.

What's left: the public page

Google Hotels already shows what you want: for each hotel, the nightly and total price for your dates, plus a list of booking sites and what each one charges. The page is public. You have three ways to get it into code:

Option Cost Who maintains the parser
Write your own scraper Proxies and your time You, every time Google changes the page
SerpApi Google Hotels Free 250 searches a month, then from $25 per 1,000 searches (pricing) SerpApi
Apify Actors, including mine Pay per result The Actor's developer

Even paid APIs struggle with this page. SerpApi's own public roadmap has open issues titled "Some prices are missing in the search results" (14 comments) and "Some regional results don't show up" (16 comments). Whichever route you pick, check for gaps before you trust a number.

Hosted version

Google Hotels Scraper on Apify takes a city or a search, your dates, guests and currency, and returns one JSON record per hotel. Turn on includeVendorPrices and each hotel also gets every booking site Google lists, cheapest first.

Disclosure: I built this. It costs $1.50 per 1,000 hotels, plus $0.006 per hotel for the booking-site price list. Hotels removed by your filters and failed searches aren't charged. Apify's free plan includes $5 of credit a month.

With apify-client 3.x (pip install apify-client):

import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])

run = client.actor("kuezi/google-hotels-scraper").call(logger=None, run_input={
    "queries": ["Lisbon"],
    "checkInDate": "2026-11-20",
    "checkOutDate": "2026-11-22",
    "adults": 2,
    "currency": "USD",
    "maxResultsPerQuery": 3,
    "includeVendorPrices": True,
    "maxVendorsPerHotel": 20,
})

for h in client.dataset(run.default_dataset_id).iterate_items():
    print(f'{h["name"]} | {h["rating"]} | ${h["pricePerNight"]}/night on Google, {h["vendorCount"]} sites')
    for v in h["vendorPrices"][:3]:  # cheapest first
        print(f'    {v["vendor"]:<14} ${v["pricePerNight"]}')

print(run.status_message)
Enter fullscreen mode Exit fullscreen mode

Output from a real run on 12 October 2026:

Brown's | Avenue Hotel | 4.6 | $180/night on Google, 20 sites
    Brown's Avenue $180
    Vio.com        $185
    Etrip.net      $185
Iberostar Selection Lisboa | 4.7 | $118/night on Google, 20 sites
    Evendo         $118
    goseek.com     $123
    dealbase.com   $123
Patio São Vicente Guest Houses | 4.9 | $112/night on Google, 11 sites
    Hotels.com     $112
    Expedia.com    $119
    Travelocity.com $119
Saved 3 hotels from 1/1 searches (2026-11-20 → 2026-11-22, 2 adults, prices per night). "hotels in Lisbon" (3 hotels): cheapest Patio São Vicente Guest Houses 112 USD (Hotels.com), Iberostar Selection Lisboa 118 USD (Evendo), Brown's | Avenue Hotel 180 USD (Brown's Avenue); median 118 USD/night; best rated Patio São Vicente Guest Houses 4.9★ at 112.
Enter fullscreen mode Exit fullscreen mode

That run took 12 seconds and cost $0.0225: three hotels plus three booking-site lists. maxVendorsPerHotel keeps the 20 cheapest sites, so "20 sites" means "at least 20".

The full lists show why the per-site data matters. For the same two nights:

Hotel Cheapest site Booking.com Gap
Brown's Avenue Hotel $180 (the hotel's own site) $221 +23%
Patio São Vicente $112 (Hotels.com) $140 +25%

Two hotels prove nothing on their own. I ran the same comparison on 47 hotels in an earlier study, with the data and code public.

Other inputs worth knowing:

  • minRating, maxPricePerNight and minHotelClass filter before saving, so you don't pay for hotels you drop.
  • country sets Google's region, which changes which booking sites appear. Prices above are from a US point of sale.
  • Schedule the run daily to build a price history for your dates.

There's a ready-made task to compare one hotel's price across booking sites.

What this doesn't give you

  • Booking or availability guarantees. These are the prices Google shows at the moment of the run. Rooms, taxes and cancellation terms differ by site.
  • Room-level rate plans. You get the headline price per site, not every room type.
  • Official status. This is public-page data, not a partner feed. If you need a contract and an SLA, the partner programmes above are the way.

If you found another legitimate route to hotel prices that's open to small developers in 2026, post it in the comments and I'll add it to the table.

AI disclosure: I wrote this with AI assistance. Every quote, number and output above was checked or run on 12 October 2026.

Top comments (0)