Skip to content
Business
Skill

/serpapi

Google Flights cash prices, Google Hotels, and Google Travel Explore via SerpAPI. Use for award-vs-cash comparison, hotel search, and destination discovery.

BOOST
From plugin
travel-hacker
69748 skills1 agent6 MCP
Install
$ npx -y skills add borski/travel-hacking-toolkit --skill serpapi --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/serpapi

Context 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.

SKILL.md

serpapi.SKILL.md
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

SerpAPI Skill

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.

Authentication

`SERPAPI_API_KEY` is set in `.env`. All requests use `api_key` query parameter.

API Base

https://serpapi.com/search

Google Flights (Cash Prices)

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.)

One-Way Search

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&currency=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}'

Parameters

| 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` |

Multi-City (Open Jaw)

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&currency=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"}]

Response Fields

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`.

Portal Comparison Math

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.

Google Hotels

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&currency=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]'

Parameters

| 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 |

Google Travel Explore

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&currency=USD&api_key=$SERPAPI_API_KEY" | jq '[.destinations[
Read more
Ships withtravel-hacker

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.

Get the whole plugin

Other skills on travel-hacker.