Google Flights and Hotels Prices API avatar

Google Flights and Hotels Prices API

Pricing

from $5.00 / 1,000 flight searches

Go to Apify Store
Google Flights and Hotels Prices API

Google Flights and Hotels Prices API

Live Google Flights and Google Hotels prices: ranked flights with stops, layovers, CO2 and low/typical/high price insight, flexible dates, and hotel prices on every booking site with direct links. Pay per search, not per result. Works as an MCP server for AI agents.

Pricing

from $5.00 / 1,000 flight searches

Rating

0.0

(0)

Developer

Ji

Ji

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Categories

Share

Google Flights & Hotels Prices API

Live prices from Google Flights and Google Hotels in one actor, shaped so an AI agent can act on the answer in a single call.

Flights: give it a route and dates; get ranked options with

  • total price, airlines, departure and arrival times, duration
  • stops and layovers (airport and connection time), each leg's flight number, aircraft and legroom
  • CO2 estimate against the route's typical emissions
  • the cheapest, fastest and best picks, and whether prices are currently low, typical or high with Google's typical range and price history
  • optional flexible dates (±1 to 3 days) with the cheapest date pair

Hotels: give it a city, area or hotel name and dates; get

  • hotels with nightly price (before and after taxes), total for the stay, star class, guest rating, review count and deals ("43% less than usual")
  • for the top hotels, the price on every booking site: Booking.com, Expedia, Hotels.com, Agoda, the hotel's official site and more, cheapest first, with direct booking links
  • search a hotel's name to compare booking sites for just that hotel

Dates, guests (adults and children's ages), cabin, passengers, currency and country are all honored. Google ignores plain checkin=/adults= URL parameters, so this actor encodes them the way Google's own pages do.

Benchmark

On 26 Oct 2026 we ran the same searches through this actor and the most-used Google Flights and Google Hotels actors on the Store: 4 flight routes (JFK-LAX round trip, SFO-JFK, LHR-CDG, BOS-BZN with connections) and 3 hotel cities (Paris, New York, Tokyo, 2 nights). Every run of every actor succeeded.

Hotels

Searches OKAvg run timeHotelsPrices per booking sitePrice per search
This actor3 / 38 s20Up to 9 sites per hotel, with booking links (top 3 hotels)$0.020
Most-used hotels actor3 / 39 s20None (one price per hotel)free tier
Hotels actor with per-site prices3 / 318 s20Up to 7 sites$0.15

Flights

Searches OKAvg run timeOptionsPrice per search
This actor4 / 45 s10 by default, up to everything Google lists (maxResults), plus cheapest/fastest/best picks, price level and 60-day price history$0.005, however many options
Most-used flights actor4 / 412 sAbout 30 per pageabout $0.001
Second flights actor4 / 46 sUp to the limit set$0.001 per flight ($0.02 for 20)

The script and inputs are in bench/.

Pricing

Pay per search, only when it returns data:

EventPriceWhen
flight-search$0.005One route and date pair with results. With flexDays, each extra date searched counts once.
hotel-search$0.002One hotel search with results.
hotel-prices$0.006One hotel compared across booking sites (compareSites, default 3).

A flight search is one charge however many options it returns: 10 by default, or up to everything Google lists (often 15 to 60) with maxResults. A hotel search with the default settings (3 hotels compared) costs $0.020.

Input

Pick a mode and fill in its fields. Dates default to 30 days from today.

FieldModeDefaultNotes
modeflightsflights or hotels
origin, destinationflightsIATA airport or city code: JFK, NYC, LHR, PAR
departureDate, returnDateflights+30 days, one-wayYYYY-MM-DD; leave returnDate empty for one-way
adults, children, infantsInSeat, infantsOnLapflights1, 0, 0, 0
cabinClassflightseconomypremium_economy, business, first
maxStopsflightsany0 = nonstop only
sortBybothbest / relevanceFlights: price, duration, departure. Hotels: price, rating
flexDaysflights0Also search ±N days (max 3) and return dateGrid + cheapestDates
locationhotelsCity, area or hotel name
checkIn, checkOuthotels+30 days, 2 nightsUp to 30 nights
adults, childrenAgeshotels2, nonee.g. "childrenAges": [8, 11]
compareSiteshotels3Top N hotels to price on every booking site; 0 to skip
minRating, minHotelClass, maxPricehotelsFilters; maxPrice is nightly before taxes
maxResultsboth10 / 20
currency, country, languagebothUSD, US, en
searchesbothBatch: an array of searches, each with its own mode and fields. Free-plan runs are capped at 3.
proxyConfigurationDatacenter, then residentialTries Apify's cheaper datacenter proxy first and switches to residential if Google blocks it
{
"mode": "flights",
"origin": "JFK",
"destination": "LAX",
"departureDate": "2026-12-10",
"returnDate": "2026-12-17",
"sortBy": "price",
"flexDays": 1
}

Example: hotels plus a batch

{
"searches": [
{ "mode": "hotels", "location": "Paris", "checkIn": "2026-12-10", "checkOut": "2026-12-12", "adults": 2, "minRating": 4 },
{ "mode": "hotels", "location": "Hilton Paris Opera", "checkIn": "2026-12-10", "checkOut": "2026-12-12" },
{ "mode": "flights", "origin": "LHR", "destination": "CDG", "departureDate": "2026-12-10", "maxStops": 0 }
],
"currency": "EUR"
}

Output

One dataset item per search.

Flights (type: "flightSearch")

{
"type": "flightSearch",
"origin": "JFK", "destination": "LAX",
"departureDate": "2026-12-10", "returnDate": "2026-12-17", "tripType": "roundTrip",
"currency": "USD",
"priceNote": "Prices are round-trip totals for all passengers; each option is an outbound flight, as Google Flights lists it.",
"highlights": {
"cheapest": { "price": 373, "airlines": "Delta", "stops": 0, "departure": "2026-12-10T09:00", "arrival": "2026-12-10T12:18", "durationMinutes": 378 },
"fastest": { "...": "..." },
"best": { "...": "..." }
},
"priceInsight": { "level": "typical", "typicalLow": 215, "typicalHigh": 550, "priceHistory": [{ "date": "2026-08-27", "price": 443 }] },
"flights": [
{
"rank": 1, "price": 194, "airlines": ["United"], "departure": "2026-12-10T06:00", "arrival": "2026-12-10T11:33",
"durationMinutes": 453, "stops": 1,
"layovers": [{ "airport": "ORD", "airportName": "Chicago O'Hare International Airport", "durationMinutes": 59 }],
"legs": [
{ "flightNumber": "UA 1414", "from": "BOS", "to": "ORD", "departure": "2026-12-10T06:00", "arrival": "2026-12-10T08:00", "aircraft": "Boeing 737MAX 9 Passenger", "legroom": "30 in" },
{ "flightNumber": "UA 224", "from": "ORD", "to": "BZN", "departure": "2026-12-10T08:59", "arrival": "2026-12-10T11:33", "aircraft": "Boeing 737", "legroom": "30 in" }
],
"co2Kg": 294, "typicalCo2Kg": 316, "isBest": true
}
],
"googleFlightsUrl": "https://www.google.com/travel/flights/search?tfs=...",
"errors": []
}

Times are local to each airport. For round trips, Google prices each outbound option as the round-trip total; the return flight is chosen on Google's next screen.

Hotels (type: "hotelSearch")

{
"type": "hotelSearch",
"location": "Paris", "checkIn": "2026-12-10", "checkOut": "2026-12-12", "nights": 2, "adults": 2, "currency": "USD",
"hotels": [
{
"rank": 1, "name": "Glint Paris", "entityId": "ChcIhPDt-4LWsolAGgsvZy8xdjZsNnQ2bRAB",
"hotelClass": null, "rating": 4.5, "reviewCount": 3311,
"nightlyPrice": 64.03, "nightlyPriceWithTaxes": 76, "totalPriceWithTaxes": 152.49,
"deal": "43% less than usual",
"latitude": 48.8886, "longitude": 2.3498, "checkInTime": "3:00 PM", "checkOutTime": "11:00 AM",
"cheapestSite": { "provider": "Booking.com", "nightlyPriceWithTaxes": 76.24, "totalPriceWithTaxes": 152.49 },
"offers": [
{ "provider": "Booking.com", "nightlyPrice": 64.03, "nightlyPriceWithTaxes": 76.24, "totalPriceWithTaxes": 152.49, "bookingUrl": "https://www.booking.com/..." },
{ "provider": "Glint Paris", "isOfficialSite": true, "nightlyPriceWithTaxes": 122.08, "bookingUrl": "https://..." }
]
}
],
"hotelsCompared": 3,
"errors": []
}

When a part fails (say, one hotel's booking-site prices), you still get the rest, with the reason in errors, and you are not charged for the part that failed.

For AI agents (Standby + MCP)

The actor runs as a Standby web server:

  • MCP: https://jixiaohao--google-flights-hotels-prices.apify.actor/mcp with tools search_flights and search_hotels. Add it to Claude or any MCP client with your Apify token (?token=... or a Bearer header). Tool results are compact by default (detail: "summary": highlights and the top 5 options); pass detail: "full" for everything.
  • REST: GET /flights?origin=JFK&destination=LAX&departureDate=2026-12-10&returnDate=2026-12-17 and GET /hotels?location=Paris&checkIn=2026-12-10&checkOut=2026-12-12.

How it works

The actor loads the same pages you see on google.com/travel through a proxy session it rotates with backoff whenever Google slows it down (datacenter first, residential if Google blocks it), and reads the structured data embedded in each page rather than its layout, so cosmetic page changes don't break it. Prices are what Google shows for the chosen country and currency at the time of the run; they change often and can differ slightly from the booking site's final checkout price.

Development

npm install
npm test # parsers and Standby server, against recorded Google pages in test/fixtures

scripts/trim-fixture.mjs turns a saved Google page into a small gzipped fixture.