alliances
Airline alliance membership (Star Alliance, oneworld, SkyTeam) and cross-alliance booking relationships. Maps which loyalty…
Google Flights cash prices, Google Hotels, and Google Travel Explore via SerpAPI. Use for award-vs-cash comparison, hotel search, and destination discovery.
$ npx -y skills add borski/travel-hacking-toolkit --skill serpapi --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/serpapiContext preview
The summary Claude sees to decide when to auto-load this skill.
Google Flights cash prices, Google Hotels, and Google Travel Explore via SerpAPI. Use for award-vs-cash comparison, hotel search, and destination discovery.
name: serpapi description: Google Flights cash prices, Google Hotels, and Google Travel Explore via SerpAPI. Use for award-vs-cash comparison, hotel search, and destination discovery. category: hotels summary: Google Hotels search and destination discovery. api_key: SerpAPI license: MIT
Scrape Google Flights, Google Hotels, and Google Travel Explore via SerpAPI. Provides cash flight prices (for Chase/Amex portal comparison), hotel pricing, and destination discovery.
**Source:** [serpapi.com](https://serpapi.com) — Free tier available, paid plans for higher volume.
`SERPAPI_API_KEY` is set in `.env`. All requests use `api_key` query parameter.
https://serpapi.com/search
Search for flight prices and schedules. Essential for comparing: "Is 88,000 United miles better than paying $900 cash through the Chase portal?" (Chase portal pricing is now dynamic via Points Boost, ~1.5-2.0 cpp on select bookings; verify the actual quote.)
curl -s "https://serpapi.com/search?engine=google_flights&departure_id=SFO&arrival_id=NRT&outbound_date=2026-08-10&type=2&adults=2&travel_class=1¤cy=USD&stops=2&sort_by=2&api_key=$SERPAPI_API_KEY" | jq '{best: [.best_flights[]? | {price: .price, duration: .total_duration, stops: (.layovers | length), flights: [.flights[] | {from: .departure_airport.id, to: .arrival_airport.id, airline: .airline, flight: .flight_number, depart: .departure_airport.time, arrive: .arrival_airport.time}]}], price_insights: .price_insights}'| Param | Required | Description | |-------|----------|-------------| | `engine` | Yes | `google_flights` | | `departure_id` | Yes | Airport code(s), comma-separated: `SFO,PDX` | | `arrival_id` | Yes | Airport code(s), comma-separated: `NRT,HND` | | `outbound_date` | Yes | `YYYY-MM-DD` | | `return_date` | Round trip | `YYYY-MM-DD` (required if type=1) | | `type` | No | `1` = round trip (default), `2` = one way, `3` = multi-city | | `adults` | No | Default 1 | | `children` | No | Default 0 | | `travel_class` | No | `1` = economy, `2` = premium economy, `3` = business, `4` = first | | `stops` | No | `0` = any, `1` = nonstop, `2` = 1 stop or fewer, `3` = 2 stops or fewer | | `sort_by` | No | `1` = top flights, `2` = price, `3` = departure, `4` = arrival, `5` = duration | | `include_airlines` | No | IATA codes: `SK,KL,UA` or alliances: `STAR_ALLIANCE,SKYTEAM,ONEWORLD` | | `max_price` | No | Maximum ticket price in USD | | `max_duration` | No | Maximum flight duration in minutes | | `bags` | No | Number of carry-on bags | | `deep_search` | No | `true` for browser-identical results (slower) | | `currency` | No | Default `USD` |
Use `type=3` with `multi_city_json`:
curl -s "https://serpapi.com/search?engine=google_flights&type=3&multi_city_json=%5B%7B%22departure_id%22%3A%22SFO%22%2C%22arrival_id%22%3A%22NRT%22%2C%22date%22%3A%222026-08-05%22%7D%2C%7B%22departure_id%22%3A%22ICN%22%2C%22arrival_id%22%3A%22SFO%22%2C%22date%22%3A%222026-08-26%22%7D%5D&adults=2&travel_class=1¤cy=USD&api_key=$SERPAPI_API_KEY" | jq '.'
The JSON value for multi_city_json is URL-encoded. Decoded:
[{"departure_id":"SFO","arrival_id":"NRT","date":"2026-08-05"},{"departure_id":"ICN","arrival_id":"SFO","date":"2026-08-26"}]Each flight in `best_flights[]` and `other_flights[]`:
| Field | Description | |-------|-------------| | `price` | Cash price in USD | | `total_duration` | Total minutes | | `flights[]` | Array of legs with airline, flight number, times, airplane, legroom | | `layovers[]` | Array with duration and airport for each connection | | `departure_token` | Token to get return flight options (round trip) | | `booking_token` | Token to get booking options |
`price_insights` includes `lowest_price`, `price_level` (low/typical/high), and `typical_price_range`.
Chase Sapphire Reserve: dynamic Points Boost pricing, typically 1.5-2.0 cpp on select bookings (not a fixed floor). Verify actual portal price for the specific booking. If cash price is $900, portal cost = 60,000 UR points. If award price is 88,000 United miles, cash via portal is better value.
Amex: typically 1 cpp via portal (worse value, use transfers instead).
Capital One Venture X: 1 cpp via portal, but transfer partners can be better.
Search hotels and vacation rentals with pricing from multiple OTAs.
curl -s "https://serpapi.com/search?engine=google_hotels&q=hotels+Tokyo+Japan&check_in_date=2026-08-10&check_out_date=2026-08-13&adults=2¤cy=USD&sort_by=3&api_key=$SERPAPI_API_KEY" | jq '[.properties[]? | {name: .name, type: .type, rating: .overall_rating, reviews: .reviews, price: .rate_per_night.extracted_lowest, class: .extracted_hotel_class, amenities: .amenities}] | .[0:10]'| Param | Required | Description | |-------|----------|-------------| | `engine` | Yes | `google_hotels` | | `q` | Yes | Search query: `hotels Tokyo Japan` | | `check_in_date` | Yes | `YYYY-MM-DD` | | `check_out_date` | Yes | `YYYY-MM-DD` | | `adults` | No | Default 2 | | `children` | No | Default 0 | | `sort_by` | No | `3` = lowest price, `8` = highest rating, `13` = most reviewed | | `min_price` / `max_price` | No | Price range filter | | `hotel_class` | No | `2,3,4,5` (comma-separated) | | `rating` | No | `7` = 3.5+, `8` = 4.0+, `9` = 4.5+ | | `vacation_rentals` | No | Set to `true` for Airbnb-style results | | `property_token` | No | Get details for a specific property |
Discover destinations and cheapest flights from an origin. Great for "where can I fly cheaply in August?"
curl -s "https://serpapi.com/search?engine=google_travel_explore&departure_id=SFO&outbound_date=2026-08-05&return_date=2026-08-26&adults=2&travel_class=1¤cy=USD&api_key=$SERPAPI_API_KEY" | jq '[.destinations[
AI-powered travel hacking with points, miles, and award flights. Drop-in skills and MCP servers for OpenCode, Claude Code, and Codex. Ask your AI to find you a 60,000-mile business class flight to Tokyo.
Airline alliance membership (Star Alliance, oneworld, SkyTeam) and cross-alliance booking relationships. Maps which loyalty…
Check American Airlines AAdvantage balance, elite status, and loyalty points via Patchright. Handles email 2FA with 6-box code…
Search Amex travel portal for cash prices, MR points pricing, IAP discounts, and FHR/THC hotel benefits via Patchright. Use when…
Search Atlas Obscura for weird, wonderful, and hidden gem places near any destination. Find the interesting stuff, not boring…
Find the cheapest award dates for a route over a date range. Searches seats.aero across all programs, groups by date, and shows a…
Per-program rules for placing award flights on hold before transferring points. Covers programs with holds (AA, Lufthansa, Flying…