For agent builders
Travel data, built for AI agents
Live Google Flights and Booking.com prices as flat JSON, with the fields that turn a number into a decision.
- 3 hosted MCP servers, 8 open-source skills, an n8n node, and plain REST: one key authenticates all of it
- Every fare carries Google's price band, a low | typical | high verdict, and a working buy_link
- Hotels price per market via proxy_country: rate-parity checks from a single API
Free tier: 10 requests/month. No card to try.
{
"price": "$177",
"price_insights_low": 140,
"price_insights_high": 180,
"price_range_in_relation_to_other_periods":
"typical",
"airline": "American",
"stops": 0,
"buy_link": "https://www.google.com/travel/flights?tfs=..."
}
// "$177 is typical for JFK→CUN on these dates:
// The usual range is $140 to $180."A real captured response, trimmed to the fields an agent branches on. The comment is the sentence those fields let it say.
The loop
How agents use FlightPowers
One key, four steps, and every surface points at the same live data.
1
Get one RapidAPI key
The free tier needs no card and verifies your key works. That single key authenticates REST, both MCP servers, and the skills.
2
Pick the surface your stack speaks
An MCP URL for Claude, Cursor, and ChatGPT; skills for Claude Code and OpenClaw; a community node for n8n; plain REST for everything else.
3
Let the agent call the tools
Flat JSON per result: price, band, verdict, booking link for flights; price, availability, review score, link for hotels. Small enough to drop straight into a tool result.
4
Branch on the judgment fields
Verdict flips to “low”: alert. Fare under the band: recommend booking. REST reports degraded: retry, and never tell the user “no flights”.
Recipes
Six things you can build this week
Each card names the exact tool chain. The per-agent pages below turn every one into a copy-paste setup.
A fare-alert cron on the verdict flip
search_oneway_flightsprice_range_in_relation_to_other_periodsbuy_linkPoll a route on a schedule and fire only when Google’s verdict flips to “low”: no home-grown price-history database, because Google’s band is the history. Send the buy_link in the alert so the user can book from the notification.
A cheapest-week scanner
search_oneway_flightsdeparture_date_from / departure_date_topriceThe MCP tool takes a date range and expands it server-side: one call, not thirty. The agent gets a fare per day and answers with the cheapest date and what picking it saves. Over REST, the same scan is a parallel burst; the rate limits are sized for it.
A rate-parity watcher
find_hotel_by_nameproxy_countrypriceOne call per market, identical except proxy_country, then compare the quotes. In a captured run on 2026-08-26, the US market was quoted $1,771 for the same room Germany and Israel saw at US$1,966.
A trip-planning agent that answers with booking links
search_roundtrip_flightssearch_hotelsbuy_linkRound-trip returns paired itineraries with a combined total; the hotel search returns ranked properties with live rates. Every flight carries a buy_link and every property a booking link, so the plan the agent hands back is actionable, not a description.
A hotel comp-set tracker
find_hotel_by_nameavailableprice_stringRun the by-name lookup across a competitive set on a schedule. Sold-out comes back as the same shape with available: false, so the tracker never branches on error formats: it just logs price and availability per property, per night.
A “should I book it now” advisor
search_oneway_flightsprice_insights_low / price_insights_highThe user brings a quoted fare; the agent compares it against Google’s own band for the route and dates. Below the low end: take it. Above the high end: wait. The recommendation cites a source instead of a hunch.
Setup per agent
The decision
Why not just scrape?
Five ways to get flight and hotel prices into an agent, compared on the three things that end up mattering.
| Approach | Time to first result | Ongoing burden | Price judgment |
|---|---|---|---|
| Headless-browser DIY (Puppeteer / Playwright) | Days: selectors, proxies, consent walls | Breaks on markup changes, and the fixes are yours | None, and an empty page and a failed scrape return the same empty list |
| Official GDS APIs | Weeks: contracting and certification before the first call | An enterprise integration to maintain | Built for ticketing workflows; consumer price context is not the product |
| Generic scraper marketplaces | Hours: pick a scraper, wire up runs | Per-search economics: cost scales linearly with volume | Raw prices with no reference band to judge them against |
| FlightPowers REST | Minutes: one POST with your key | Managed: automatic retries, X-Search-Status on every response | Google’s band and a low | typical | high verdict on every fare |
| FlightPowers MCP | 30 seconds: paste a URL into your client | Hosted; nothing of yours to run | The same verdict fields, delivered as a first-class tool result |
The competitor rows describe categories, not any single vendor. Evaluate the specific tool you are considering against them. The FlightPowers rows are checkable on this site: the verdict field on the Price Insights page, the config on the MCP page.
For AI agents
Your agent already knows how to use this
3 hosted MCP servers, 8 open-source skills, and a plain REST API. All first-party, all maintained, all pointing at the same live data.
MCP: no install, just a URL
{
"mcpServers": {
"flights": {
"url": "https://flights.flightpowers.com/mcp",
"headers": { "x-rapidapi-key": "YOUR_KEY" }
}
}
}Skills: for Claude Code & OpenClaw
npx skills add mtnrabi/travel-agent-skills
# then just ask:
# "find me the cheapest week to fly
# JFK to Lisbon this winter"REST: one POST, flat JSON
curl -X POST "https://google-flights-live-api\
.p.rapidapi.com/api/google_flights/oneway/v1" \
-H "x-rapidapi-key: $RAPIDAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"from_airport":"JFK","to_airport":"CUN",
"departure_date":"2027-01-01"}'Questions, answered plainly
- What is the fastest way to connect an agent?
- The MCP URL. Paste the mcpServers config (or the connector URL with your key) into Claude, Cursor, or ChatGPT, restart, and the four tools appear. No SDK, no install. The /mcp page has the exact block to copy.
- Does one key really cover MCP, the skills, and REST?
- Yes. All three surfaces authenticate with the same RapidAPI key and meter against the same plan. You subscribe once on RapidAPI; the MCP servers forward your key, the skills read it from your environment, and REST takes it as the x-rapidapi-key header.
- Can an agent tell “no flights” from “the search failed”?
- Over the REST API, yes: the X-Search-Status header separates a genuine empty (Google really has nothing) from degraded (the search did not complete; retry, and do not tell the user “no flights”). An opt-in strict mode turns a degraded search into an HTTP 503 instead of a misleading empty array.
- How do the rate limits map to agent workloads?
- Flights: 150 requests/minute on Pro, 250 on Ultra, 500 on Mega, sized so a month-long flexible-date scan over REST finishes in one burst. Hotels: 25/minute on Pro and Ultra, 50 on Mega. A daily fare-watch across several routes fits comfortably in the $10 Pro tier’s 2,500 requests.
- What does the agent actually get back?
- Flat JSON per result. Flights: price as string and number, airline, duration, stops with layover details, Google’s price_insights_low/high band, the low | typical | high verdict, and a working buy_link. Hotels: price, review score and count, room type, availability, and a booking link.
- Is there a way to demo without a key?
- The free ad-supported MCP server runs the flight tools with no key: results carry sponsored content and it has a capped daily budget, so it is for trying, not production. The free tools on this site also run live requests on our own key.
Give your agent a travel budget it can defend
Live fares with Google's own price band and verdict attached, so the agent recommends with a source, not a hunch. One key covers MCP, skills, and REST.
Free tier: 10 requests/month. No card to try.