关于 serpapi
serpapi 是一项 SerpAPI 技能,用于查询 Google Flights、Google Hotels 和 Google Travel Explore 数据,适合旅行规划及比较现金票价与奖励兑换。可筛选航班、住宿和目的地,并查看价格信息。
主要功能
- 01搜索单程、往返及多城市航班
- 02按舱位、价格和经停筛选航班
- 03查询酒店与度假租赁价格
- 04探索目的地及低价航班
- 05查看价格洞察和历史趋势
适用场景
- 01比较机票现金价与里程兑换
- 02查找符合日期和预算的酒店
- 03从出发地探索低价旅行目的地
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ borski/ travel-hacking-toolkit --skill serpapi安装后在 Claude Code 中输入/serpapi确认已加载。
详细介绍
SerpAPI 技能
通过 SerpAPI 抓取 Google Flights、Google Hotels 和 Google Travel Explore。提供现金机票价格(用于与 Chase/Amex 门户网站进行比较)、酒店价格和目的地发现功能。
来源:serpapi.com — 提供免费套餐,高用量可选付费套餐。
身份验证
.env 中已设置 SERPAPI_API_KEY。所有请求均使用 api_key 查询参数。
API 基础地址
https://serpapi.com/search
Google Flights(现金价格)
搜索机票价格和航班时刻表。对于比较以下问题至关重要:“通过 Chase 门户网站支付 900 美元现金,是否比使用 88,000 United 里程更划算?”(Chase 门户网站的价格现通过 Points Boost 动态调整,部分预订通常为 1.5–2.0 cpp;请核实实际报价。)
单程搜索
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}'
参数
| 参数 | 必填 | 说明 |
|---|---|---|
engine | 是 | google_flights |
departure_id | 是 | 机场代码,多个代码以逗号分隔:SFO,PDX |
arrival_id | 是 | 机场代码,多个代码以逗号分隔:NRT,HND |
outbound_date | 是 | YYYY-MM-DD |
return_date | 往返行程 | YYYY-MM-DD(若 type=1 则必填) |
type | 否 | 1 = 往返(默认),2 = 单程,3 = 多城市 |
adults | 否 | 默认值为 1 |
children | 否 | 默认值为 0 |
travel_class | 否 | 1 = 经济舱,2 = 超级经济舱,3 = 商务舱,4 = 头等舱 |
stops | 否 | 0 = 任意,1 = 直飞,2 = 不超过 1 次中转,3 = 不超过 2 次中转 |
sort_by | 否 | 1 = 推荐航班,2 = 价格,3 = 出发时间,4 = 到达时间,5 = 时长 |
include_airlines | 否 | IATA 代码:SK,KL,UA,或联盟:STAR_ALLIANCE,SKYTEAM,ONEWORLD |
max_price | 否 | 最高机票价格,单位为 USD |
max_duration | 否 | 最长飞行时长,单位为分钟 |
bags | 否 | 随身行李数量 |
deep_search | 否 | 设为 true 可获得与浏览器一致的结果(速度较慢) |
currency | 否 | 默认值为 USD |
多城市(开口行程)
使用 type=3 和 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 '.'
multi_city_json 的 JSON 值经过 URL 编码。解码后:
[{"departure_id":"SFO","arrival_id":"NRT","date":"2026-08-05"},{"departure_id":"ICN","arrival_id":"SFO","date":"2026-08-26"}]
响应字段
best_flights[] 和 other_flights[] 中的每个航班:
| 字段 | 说明 |
|---|---|
price | 现金价格,单位为 USD |
total_duration | 总时长,单位为分钟 |
flights[] | 航段数组,包含航空公司、航班号、时间、飞机和座椅间距 |
layovers[] | 中转信息数组,包含每次中转的时长和机场 |
departure_token | 获取返程航班选项的令牌(往返行程) |
booking_token | 获取预订选项的令牌 |
price_insights 包含 lowest_price、price_level(低/通常/高)和 typical_price_range。
门户网站比较计算
Chase Sapphire Reserve:Points Boost 采用动态定价,部分预订通常为 1.5–2.0 cpp(并非固定兑换底线)。请核实具体预订在门户网站上的实际价格。
如果现金价格为 900 美元,通过门户网站预订需支付 60,000 UR 积分。
如果奖励机票需 88,000 United 里程,通过门户网站支付现金更划算。
Amex:通过门户网站通常为 1 cpp(价值较低,建议使用转点)。
Capital One Venture X:通过门户网站为 1 cpp,但转点合作伙伴可能更划算。
Google Hotels
搜索酒店和度假租赁房源,并获取多个 OTA 的价格。
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]'
参数
| 参数 | 必填 | 说明 |
|---|---|---|
engine | 是 | google_hotels |
q | 是 | 搜索查询:hotels Tokyo Japan |
check_in_date | 是 | YYYY-MM-DD |
check_out_date | 是 | YYYY-MM-DD |
adults | 否 | 默认值为 2 |
children | 否 | 默认值为 0 |
sort_by | 否 | 3 = 价格最低,8 = 评分最高,13 = 评论数最多 |
min_price / max_price | 否 | 价格范围筛选 |
hotel_class | 否 | 2,3,4,5(以逗号分隔) |
rating | 否 | 7 = 3.5+,8 = 4.0+,9 = 4.5+ |
vacation_rentals | 否 | 设为 true 可获取 Airbnb 风格的结果 |
property_token | 否 | 获取特定房源的详细信息 |
Google Travel 探索
发现目的地以及从出发地出发的最低价航班。适合查询“8 月可以便宜地飞去哪里?”
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[]? | {name: .name, country: .country, airport: .destination_airport.code, price: .flight_price, duration: .flight_duration, stops: .number_of_stops, airline: .airline}] | .[0:15]'
参数
| 参数 | 必填 | 描述 |
|---|---|---|
engine | 是 | google_travel_explore |
departure_id | 是 | 机场代码或 kgmid |
arrival_id | 否 | 特定目的地 |
arrival_area_id | 否 | 区域 kgmid(例如,欧洲为 /m/02j9z) |
outbound_date | 否 | YYYY-MM-DD |
return_date | 否 | YYYY-MM-DD |
month | 否 | 灵活日期的 1-12 |
travel_duration | 否 | 1 = 周末,2 = 1 周,3 = 2 周 |
interest | 否 | /g/11bc58l13w = 户外,/m/0b3yr = 海滩 |
include_airlines | 否 | 按航空公司或航空联盟筛选 |
max_price | 否 | 最高价格 |
stops | 否 | 与 Google Flights 相同 |
工作流:比较奖励票与现金价格
- 通过 SerpAPI 在 Google Flights 上查询现金价格
- 估算门户网站的费用。Chase 采用动态“Points Boost”定价(部分预订约为 1.5-2.0cpp,并非固定费率)。Amex/Capital One 约为 1.0cpp。粗略估算时,请将门户网站的实际报价与现金价格进行比较;不要假设 Chase 的 cpp 是固定的。
- 与 Seats.aero 的奖励票价格进行比较
- 选择较低的价格(同时考虑你对每种积分的估值)
说明
- 缓存结果免费(缓存 1 小时)。设置
no_cache=true可强制获取最新结果。 deep_search=true会返回与浏览器一致的结果,但速度较慢。- 结果包含带有历史价格数据和趋势的
price_insights。 - 多城市行程原生支持开口行程。
- 酒店支持度假租赁模式,可获取类似 Airbnb 的结果。