Google Flights Scraper avatar

Google Flights Scraper

Pricing

from $0.60 / 1,000 flight result scrapeds

Go to Apify Store
Google Flights Scraper

Google Flights Scraper

Extract public Google Flights prices, schedules, airlines, stops, and booking links for route/date fare monitoring.

Pricing

from $0.60 / 1,000 flight result scrapeds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Extract public Google Flights fare options, airline names, schedules, durations, stops, prices, and booking-page links for route and date searches.

What does Google Flights Scraper do?

Google Flights Scraper turns a public Google Flights route search into structured dataset rows.

It accepts an origin, destination, departure date, currency, cabin class, passenger count, and result limit.

It builds a Google Flights route search and saves available flight option rows with price and schedule details.

Use it to monitor fares, compare routes, collect travel market data, or feed flight options into dashboards and workflows.

Who is it for?

Travel agencies use it to check public fare availability for common customer routes.

Deal newsletter teams use it to collect candidate flight prices for editorial review.

Corporate travel teams use it to benchmark route costs before policy or budget planning.

Fare-monitoring tools use it to record snapshots over time.

Data analysts use it to compare routes, travel dates, airlines, and stop patterns.

Developers use it when they need structured Google Flights rows without manually copying browser results.

Why use this scraper?

  • ✈️ Search by airport code or city.
  • 💵 Capture numeric prices plus the original price text.
  • 🕒 Save departure time, arrival time, duration, and stops.
  • 🧳 Include query metadata on every row for clean exports.
  • 🌍 Choose currency for international comparisons.
  • 🧩 Export to JSON, CSV, Excel, XML, API, webhook, or integrations.
  • 🛡️ Uses Apify Residential Proxy by default for the supported Google Flights path.

What Google Flights data can you extract?

FieldDescription
queryOriginOrigin entered for the search.
queryDestinationDestination entered for the search.
queryDepartureDateDeparture date in YYYY-MM-DD format.
queryReturnDateOptional return date from the input.
tripTypeOne-way or round-trip input mode.
cabinClassRequested cabin class.
adults, children, infantsInSeat, infantsOnLapPassenger counts used for the search.
currencyRequested currency code.
resultRankRank in the saved result list.
legTypeoutbound for one-way or itinerary for combined round-trip offers.
airline / airlineCodePrimary airline name and code for the flight option.
isBestWhether Google marked the offer as a best flight.
fareBrandBest-effort fare tier such as Economy, Economy+, or Economy Flex when present.
flightSummaryNormalized summary built from airline, times, duration, stops, and price.
departureTime / arrivalTimeDeparture and arrival time.
departureDate / arrivalDateFlight dates for the option.
duration / durationMinutesHuman-readable and numeric duration.
stops / stopsCountStop count or nonstop label.
price / priceTextNumeric price and formatted price text.
carryOnIncluded / checkedBagsIncludedAmenity flags when available for the fare.
segmentsDetailed flight segments with flight number, airports, airline, aircraft, and segment times.
bookingLinkGoogle Flights page URL for the completed search.
scrapedAtISO timestamp for the scrape.

How much does it cost to scrape Google Flights?

This actor uses pay-per-event pricing.

There is a small run start event.

Each saved flight result is charged as a result event.

The exact price is shown on the Apify actor page before you run it.

Keep the first run small, for example 5 to 10 results, while you confirm the route/date/currency settings.

How to use Google Flights Scraper

  1. Open the actor on Apify.

  2. Enter an origin airport or city.

  3. Enter a destination airport or city.

  4. Choose a departure date.

  5. Optionally add a return date.

  6. Choose the cabin class, currency, passengers, sort order, and optional stop/basic-economy filters.

  7. Keep maxResults low for the first test.

  8. Keep the default Residential Proxy settings unless you have a specific region or proxy policy requirement.

  9. Start the actor.

  10. Download the dataset or consume it through the Apify API.

Input example

{
"origin": "JFK",
"destination": "LAX",
"departureDate": "2026-08-10",
"tripType": "one-way",
"currency": "USD",
"maxResults": 10,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Output example

{
"queryOrigin": "JFK",
"queryDestination": "LAX",
"queryDepartureDate": "2026-08-10",
"tripType": "one-way",
"cabinClass": "economy",
"adults": 1,
"currency": "USD",
"resultRank": 1,
"legType": "outbound",
"airline": "JetBlue",
"flightSummary": "JetBlue | 5 hr 48 min | JFK–LAX | Nonstop | $286 | 6:00 AM | – | 8:59 AM",
"departureTime": "6:00 AM",
"arrivalTime": "8:59 AM",
"duration": "5 hr 48 min",
"stops": "Nonstop",
"price": 286,
"priceText": "$286",
"bookingLink": "https://www.google.com/travel/flights/search?...",
"scrapedAt": "2026-06-27T17:02:08.244Z"
}

Route input tips

Airport codes are the most reliable input format.

Use JFK, LAX, SFO, ORD, MIA, LHR, CDG, or another airport code when possible.

City names can work, but Google may choose a nearby airport or a city-level destination.

If precision matters, prefer IATA airport codes.

Date and currency tips

Use dates in YYYY-MM-DD format.

Choose a future date with normal public availability.

Use common currency codes such as USD, EUR, or GBP.

Prices can change frequently, so treat every run as a snapshot.

Proxy and reliability tips

Google properties may rate-limit automated traffic.

Use the default Apify Residential Proxy settings for the supported and QA-validated path.

If you see a consent, CAPTCHA, or unusual-traffic page, keep Residential Proxy enabled, try a different proxy country, and lower the result count.

Avoid large bursts of route/date searches.

For recurring monitoring, schedule smaller runs rather than one large run.

Integrations

Send results to Google Sheets for manual fare review.

Push dataset rows into a BI warehouse for route trend dashboards.

Trigger a webhook when prices are collected.

Use Apify integrations to connect the dataset to Make, Zapier, Slack, or custom applications.

Combine output with your own route list to build internal fare-monitoring reports.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/google-flights-scraper').call({
origin: 'JFK',
destination: 'LAX',
departureDate: '2026-08-10',
currency: 'USD',
maxResults: 10
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/google-flights-scraper').call(run_input={
'origin': 'JFK',
'destination': 'LAX',
'departureDate': '2026-08-10',
'currency': 'USD',
'maxResults': 10,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~google-flights-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"origin":"JFK","destination":"LAX","departureDate":"2026-08-10","currency":"USD","maxResults":10}'

MCP usage

You can use this actor through Apify MCP from Claude Desktop, Claude Code, or other MCP-compatible clients.

Configure the Apify MCP server with a tools URL that includes this actor.

Example MCP URL:

https://mcp.apify.com/?tools=fetch_cat/google-flights-scraper

Claude CLI setup example:

$claude mcp add apify-google-flights "https://mcp.apify.com/?tools=fetch_cat/google-flights-scraper"

Claude Desktop JSON config example:

{
"mcpServers": {
"apify-google-flights": {
"url": "https://mcp.apify.com/?tools=fetch_cat/google-flights-scraper"
}
}
}

Example prompts:

  • "Run Google Flights Scraper for JFK to LAX next August and summarize the cheapest options."
  • "Collect flight prices for SFO to NRT and export the dataset rows."
  • "Compare nonstop and one-stop options for my route search."

Common workflows

Fare snapshot workflow:

  1. Prepare a route and date.
  2. Run the actor with a low result limit.
  3. Export the dataset to CSV.
  4. Store the snapshot with a timestamp.
  5. Repeat on a schedule.

Travel content workflow:

  1. Search a route relevant to your article.
  2. Review available airlines and prices.
  3. Use the dataset as research input.
  4. Re-run before publishing because fares change quickly.

Limitations

Google Flights can change its interface without notice.

Some fields are only saved when Google Flights provides them for the selected route/date result.

Prices and availability are public snapshots, not booking guarantees.

Google may show different availability by location, currency, language, device, or time.

Very high-volume runs may require proxy settings and conservative scheduling.

Responsible use and legality

This actor extracts public information from Google Flights route searches.

You are responsible for using the data in a lawful way and respecting applicable terms, privacy rules, and platform restrictions.

Do not use scraped data for misleading pricing claims.

Always verify fares with the booking provider before purchase or publication.

Troubleshooting

Why did I get no results?

The route/date may have no available flights, Google may have returned an unexpected response, or the run may have been rate-limited.

Try a common airport-code route such as JFK to LAX, lower maxResults, and keep the default Residential Proxy enabled.

Why are some fields null?

Google does not always provide every detail for every fare option.

When a detail cannot be parsed reliably, the actor leaves that field null and keeps the full flightSummary for review.

Why do prices differ from my browser?

Google Flights can vary by location, currency, language, time, and personalization context.

Treat each dataset as a snapshot from the actor run environment.

FAQ

Can I scrape round-trip Google Flights?

Yes. When you provide a return date, the actor saves outbound leg options and return leg options as separate rows with legType set to outbound or return. Verify outputs with a small test before using them at scale.

Can I choose business class?

Yes. Use the cabinClass input and choose business, first, premium_economy, or economy.

Can I run many routes at once?

The first version is designed for one route/date per run. For many routes, schedule multiple small runs or call the actor from your own queue.

Is this an official Google API?

No. This is an Apify actor that extracts public Google Flights page results. It is not affiliated with Google.

Can I track prices over time?

Yes. Schedule recurring runs and compare exported datasets by queryOrigin, queryDestination, queryDepartureDate, and scrapedAt.

Related actors in the same catalog may help with travel, search, and app-market research:

Support

If a run fails, open the run log and check for consent, CAPTCHA, no-results, or layout-change messages.

When reporting an issue, include the route, dates, input JSON, run ID, and a short description of what you expected.

Changelog

Initial version focuses on route/date Google Flights result extraction with normalized price and schedule fields.