Google Flights prices by route (JFK-LHR), dates, cabin, passengers. One row per itinerary: price, airline, times, duration, stops, layovers, CO2. One-way, round trip, nonstop, business class fares, up to 9 passengers. Date sweep = price calendar; daily flight price tracking and price history.
Fetching: a results page Google sends back without server-rendered itineraries (the 'Loading results' shell) is asked again on up to two fresh IPs before the search is reported as no_results. On 2026-10-18 one IP got that shell for Lisbon-London and the run reported no flights. Same inputs, rows and prices.
2026-10-16 — Keyword Planner and locale documentation
Validated search terminology against Google Ads Keyword Planner and Store shelves. Added localized usage guidance and bounded examples; retained existing English phrases. Clarified locale limitations where measured. No runtime, output fields, defaults, or pricing changed.
1.0 — listing and input form reworded, 2026-10-11
No behaviour, output or price changed; the same inputs return the same rows.
Title and description rewritten for AI agents and Store search: the description opens with "Google Flights prices by route", names one row per itinerary with its fields, then the modes (one-way, round trip, nonstop, business class fares, up to 9 passengers) and the sweep as a price calendar. "Airfare Prices" and "Price Tracking" stay in the title (they hold Store ranks today); "Fares" was added. seoDescription carries the synonyms (API, airline ticket prices, cheap flights) and native nouns (Flugpreise, precios de vuelos, prix des vols, passagens aéreas, 航空券).
The input form is reordered: routes, dates, the sweep and maxResultsPerSearch (the cost cap) first, then cabin, stops and passengers, then currency and market; proxy and pacing last. Nothing was renamed, removed or re-defaulted.
Every input now says what to pass, with an example, its default and what it costs.maxResultsPerSearch says it is 0 by default = every itinerary (usually 10 to 35 rows at $0.005 each) and that N is Google's own order, not strictly the cheapest; market says it is the searcher's country, not the destination; sweepDays gives the arithmetic and points one-row-per-day requests to the tracker.
The pricing text states the per-1,000 price in words, the measured rows per search, what is never charged (empty or failed searches, duplicates, status rows, refused inputs), that there is no start fee, and that the run stops at the maximum cost you set.
README: a section mapping common requests to the exact input, with the row fields and the empty-result contract. Corrected the status row field list (it carries searches, flights, duplicates, cheapest, status, error; it never carried origin_query or children) and removed a page field from the output example that no row has.
2026-08-30
Reliability: a run that cannot act on its input — a URL from the wrong site, a name nothing resolves to, an empty target list, a number outside the documented range — now ends cleanly with the reason on the run card instead of as a failed run. Nothing is charged in either case; a blocked or throttled source still fails loudly.
Store listing: moved into the categories buyers actually browse (the old Business category has no Store page).
1.0 — 2026-08-26
First release.
Flight prices from Google Flights for any route, date, cabin and passenger mix: one row per itinerary with price, airline, times, duration, stops, every layover and Google's CO2 estimate.
One-way and round trip (round-trip rows price both legs, flagged with round_trip_total).
sweepDays prices the same trip departing on each of the next N days — a cheapest-day calendar in one run.
Relative dates ("30 days", "6 weeks", tomorrow) so scheduled runs never go stale; past dates are rejected rather than silently priced for another day.
Routes accept airport or Google city codes, written LIS-LHR, lis > lhr or JFK to LAX.
Billing: pay per delivered itinerary row; empty searches, failed searches and status rows are free, and the same itinerary is billed once per run even when overlapping searches return it. maxResultsPerSearch caps rows per search.
Reliability: fails the run rather than billing rows priced in a currency other than the one requested; reports per-search failures as status rows; runs under limited permissions.