Ticket Price Compare
by @amurtiger01
Compare real-time flight and train ticket prices across major platforms with direct booking links, real-time train availability, and discount condition details.
clawhub install ticket-price-compareπ About This Skill
name: ticket-price-compare version: 1.2.6 description: This skill should be used when the user wants to compare and search for flight or train ticket prices across multiple platforms. It supports both domestic (China) and international routes, fetches real-time train availability via 12306, uses Firecrawl to render Ctrip JS pages for detailed flight data (flight numbers, times, aircraft types, prices), generates direct search links for all major booking platforms and airline official websites, provides WeChat mini program quick links for mobile search, and highlights discount conditions. Trigger scenarios include: searching for cheap flights, comparing train ticket prices, finding international flight deals, looking for the best ticket booking platform, or asking about ticket discount conditions. environment_variables: - name: FIRECRAWL_API_KEY required: false description: "Firecrawl API key for JS rendering of Ctrip flight pages. Register at firecrawl.dev. Free tier available (500 credits/month)." - name: TEQUILA_API_KEY required: false description: "Kiwi.com Tequila API key for international flight data. Self-service registration is closed." - name: AMADEUS_CLIENT_ID required: false description: "Amadeus API client ID. Self-service registration is closed." - name: AMADEUS_CLIENT_SECRET required: false description: "Amadeus API client secret. Self-service registration is closed." network_access: - domain: kyfw.12306.cn purpose: "12306 train schedule & fare queries (public API, no auth)" - domain: flights.ctrip.com purpose: "Ctrip PC flight search page (scraping / Firecrawl JS rendering)" - domain: m.ctrip.com purpose: "Ctrip mobile H5 flight page (Firecrawl fallback for price calendar)" - domain: flight.qunar.com purpose: "Qunar flight search page (link generation)" - domain: api.firecrawl.dev purpose: "Firecrawl /v2/scrape API for JS rendering (optional, requires FIRECRAWL_API_KEY)" - domain: api.tequila.kiwi.com purpose: "Kiwi.com Tequila flight search API (optional, requires TEQUILA_API_KEY)" - domain: api.amadeus.com purpose: "Amadeus production API (optional, requires AMADEUS credentials)" - domain: test.api.amadeus.com purpose: "Amadeus test API (optional, for development)"
Ticket Price Compare - Multi-Platform Ticket Price Comparison
Overview
This skill enables real-time comparison of flight and train ticket prices. It fetches real-time train availability via 12306 (no API key needed), and uses Firecrawl to render Ctrip JS pages for detailed flight data when FIRECRAWL_API_KEY is set. It also generates direct search links for all major booking platforms and WeChat mini program quick links for convenient mobile search. Tequila/Amadeus APIs are available as optional fallbacks for users who already have keys. Discount conditions and restrictions are clearly listed separately.
Data Sources
Firecrawl + Ctrip (Primary for Flight Data, Optional API Key)
/v2/scrape API to render Ctrip's JavaScript-heavy flight search pagesFIRECRAWL_API_KEY environment variable. Register at firecrawl.devCtrip Direct Scraping (No API Key Needed)
12306 (Train Tickets, No API Key Needed)
leftTicket/queryZ endpoint for real-time train availabilityqueryTicketPrice endpoint for actual fares per seat typeOptional APIs (For Existing Key Holders Only)
TEQUILA_API_KEY is set (registration may no longer be available)AMADEUS_CLIENT_ID + AMADEUS_CLIENT_SECRET are set (registration is closed)Core Capabilities
1. Flight Ticket Search
python scripts/ticket_search.py "" "" "" flight
python scripts/ticket_search.py "Beijing" "Shanghai" "2026-05-01" flightpython scripts/ticket_search.py "Shanghai" "Tokyo" "2026-06-15" flightData sources (in order of priority):
1. Firecrawl + Ctrip PC page (if FIRECRAWL_API_KEY set) - Best quality: individual flights, times, aircraft, prices
2. Firecrawl + Ctrip Mobile H5 (fallback) - Price calendar with daily lowest prices
3. Ctrip Direct Scraping (no API key, limited data)
4. Tequila API (if API key configured)
5. Amadeus API (if API keys configured)
Covered domestic platforms: Ctrip, Qunar, Fliggy, Tongcheng, Tuniu
Covered international platforms: Skyscanner, Google Flights, Kayak, Momondo, Expedia, Booking.com
Covered airline official sites: 10 Chinese + 13 international airlines
2. Train Ticket Search with Real-Time Availability
python scripts/ticket_search.py "" "" "" train
Real-time data from 12306: Returns actual train schedules with:
3. Combined Search (Flight + Train)
python scripts/ticket_search.py "" "" "" all
Train results are automatically excluded for international routes.
Output Sections
The script generates structured output with these sections (in order):
1. Route Summary - Departure, arrival, date, route type 2. Data Source Status - Whether Firecrawl/scraping/APIs returned live data 3. Real-Time Flight Prices - Table of flight offers with prices (if available) 4. Transfer Details - Multi-segment flight details (if any transfers) 5. Flight Discount Conditions - Refund/change rules, baggage limits, cabin restrictions 6. Real-Time Train Info - Table of actual trains with seat availability and fares (if domestic) 7. Train Discount Conditions - Student tickets, child tickets, change rules 8. Platform Links - Direct search URLs for all booking platforms 9. Airline Official Sites - Direct links to airline websites 10. WeChat Mini Program Quick Links - Mobile H5 links + WeChat mini program search tips for Ctrip/Fliggy/Tongcheng/Qunar and major airlines 11. Search Tips - Route-specific advice
Discount Conditions
Always include the dedicated "Discount Conditions / Restrictions" section. Reference references/platforms_guide.md for detailed per-platform discount conditions. Load this file when:
Workflow
1. Collect query parameters: Get departure city, arrival city, and travel date. If date not specified, ask. Default ticket type to "all".
2. Execute search: Run scripts/ticket_search.py with the parameters.
3. Present results: Show the complete output from the script. IMPORTANT: Do NOT summarize or omit train ticket price information. Always include:
- Train ticket prices - The "η₯¨δ»·οΌδ½η₯¨οΌ" column contains actual fares like δΊηεΊ§Β₯305(ζ) / δΈηεΊ§Β₯488(12). This is real-time pricing data from 12306 and MUST be shown to the user.
- Flight prices (if available from Firecrawl, scraping, or API)
- All platform links for comparison
- Discount conditions section
- Search tips
4. If no flight prices returned: Inform the user that real-time flight prices could not be fetched automatically, and recommend clicking the platform links to compare prices manually. Always mention that 12306 train data with real-time prices is available for domestic routes.
5. When user asks for "all" or combined search: Present train results and flight results side by side. Do NOT skip or truncate the train price table even when flight data is extensive.
Date Flexibility
If a user asks for "cheapest dates" or "price trends":
Important Notes
proxy: "basic" for optimal reliability with Chinese booking sites