Use case
Metasearch with a bookable result on every row
Live fares in, ranked results out, and a working Google Flights link on each one.
A comparison site lives or dies on two things: whether the price shown matches the price on click-through, and whether the result actually leads somewhere bookable. Stale caches break the first; scraped results with no booking path break the second. And when a route genuinely has nothing, most data sources hand you the same empty array they produce when their scrape failed, so your “no results” page can't be trusted either.
How FlightPowers helps
The three properties a results page needs
buy_link closes the loop
Every itinerary ships with a deep link into Google Flights for that exact flight combination. Click-through lands on the fare you displayed: no URL reconstruction, no affiliate-feed drift.
Filters match the search UI
Stops, airline include/exclude, time-of-day windows per leg, cabin, passenger mix, max price, currency. Your filter panel translates to request parameters, so filtered searches return full result sets.
X-Search-Status backs the empty page
“No flights found” renders only when the header says empty. A degraded search shows a retry state instead: your results page never presents a failure as an answer.
Key workflows
The request-to-results pipeline
- Translate the search form. Route, dates, and every user-facing filter map onto the one-way or round-trip request body directly.
- Sort locally on price_as_number. Google's own ordering is not a strict price sort (the listing says so), so exact price order is one local sort on the numeric field.
- Show the verdict as a badge. Google's low | typical | high call per fare gives your ranking a value signal competitors' bare price lists don't carry.
- Render round-trips as itineraries. The round-trip endpoint returns paired legs with a combined total: one result card per itinerary, no leg-matching logic.
- Hand off through buy_link. The book button is the link the API already gave you.
Questions, answered plainly
- How do users book a flight my site found?
- Every result carries buy_link, a deep link straight into Google Flights for that exact itinerary. You never reconstruct a booking URL or maintain airline-site integrations; the handoff is a link click, and the fare the user lands on is the fare you showed.
- Are the prices cached or live?
- Live. Every query is scanned against Google Flights at request time (nothing is served from a cache on the API side), so the price you display is the price the traveller will see on click-through. The trade-off is honest: response time tracks route complexity, because a real scan is happening.
- Can I offer the same filters Google Flights has?
- The main ones, yes: max stops, airline include/exclude lists, departure and arrival time-of-day windows, cabin class, passenger mix, max price, and currency (on round-trips, controllable per leg). Your filter UI maps to request parameters instead of post-filtering a too-small result set.
Show a price a click-through will confirm
Live scans at request time, a booking link on every row, and a verdict badge your competitors’ lists don’t have.
Free tier: 10 requests/month. No card to try.