{"version":1,"resources":["https://stabletravel.dev/api/flightaware/disruption-counts/entity_type","https://stabletravel.dev/api/flightaware/airports/id/weather/observations","https://stabletravel.dev/api/flights/availability","https://stabletravel.dev/api/flights/book","https://stabletravel.dev/api/flights/checkin-links","https://stabletravel.dev/api/flights/orders","https://stabletravel.dev/api/flights/orders/cancel","https://stabletravel.dev/api/flights/price","https://stabletravel.dev/api/flights/search","https://stabletravel.dev/api/flights/seatmap","https://stabletravel.dev/api/flights/status","https://stabletravel.dev/api/flights/upsell","https://stabletravel.dev/api/hotels/autocomplete","https://stabletravel.dev/api/hotels/book","https://stabletravel.dev/api/hotels/list","https://stabletravel.dev/api/hotels/list/by-geocode","https://stabletravel.dev/api/hotels/offer","https://stabletravel.dev/api/hotels/ratings","https://stabletravel.dev/api/hotels/search","https://stabletravel.dev/api/hotels/search/by-hotel","https://stabletravel.dev/api/activities/by-square","https://stabletravel.dev/api/activities/details","https://stabletravel.dev/api/activities/search","https://stabletravel.dev/api/transfers/book","https://stabletravel.dev/api/transfers/cancel","https://stabletravel.dev/api/transfers/search","https://stabletravel.dev/api/reference/airline-routes","https://stabletravel.dev/api/reference/airlines","https://stabletravel.dev/api/reference/airport-routes","https://stabletravel.dev/api/reference/airports","https://stabletravel.dev/api/reference/cities","https://stabletravel.dev/api/reference/locations","https://stabletravel.dev/api/reference/recommendations","https://stabletravel.dev/api/flightaware/flights/id","https://stabletravel.dev/api/flightaware/flights/id/canonical","https://stabletravel.dev/api/flightaware/flights/id/intents","https://stabletravel.dev/api/flightaware/flights/id/map","https://stabletravel.dev/api/flightaware/flights/id/position","https://stabletravel.dev/api/flightaware/flights/id/route-info","https://stabletravel.dev/api/flightaware/flights/id/track","https://stabletravel.dev/api/flightaware/flights/search","https://stabletravel.dev/api/flightaware/flights/search/advanced","https://stabletravel.dev/api/flightaware/flights/search/count","https://stabletravel.dev/api/flightaware/flights/search/positions","https://stabletravel.dev/api/flightaware/airports","https://stabletravel.dev/api/flightaware/airports/delays","https://stabletravel.dev/api/flightaware/airports/nearby","https://stabletravel.dev/api/flightaware/airports/id","https://stabletravel.dev/api/flightaware/airports/id/canonical","https://stabletravel.dev/api/flightaware/airports/id/delays","https://stabletravel.dev/api/flightaware/airports/id/flights","https://stabletravel.dev/api/flightaware/airports/id/flights/arrivals","https://stabletravel.dev/api/flightaware/airports/id/flights/counts","https://stabletravel.dev/api/flightaware/airports/id/flights/departures","https://stabletravel.dev/api/flightaware/airports/id/flights/scheduled-arrivals","https://stabletravel.dev/api/flightaware/airports/id/flights/scheduled-departures","https://stabletravel.dev/api/flightaware/airports/id/flights/to/dest_id","https://stabletravel.dev/api/flightaware/airports/id/nearby","https://stabletravel.dev/api/flightaware/airports/id/routes/dest_id","https://stabletravel.dev/api/flightaware/airports/id/weather/forecast","https://stabletravel.dev/api/flightaware/history/aircraft/registration/last-flight","https://stabletravel.dev/api/flightaware/history/airports/id/flights/arrivals","https://stabletravel.dev/api/flightaware/history/airports/id/flights/departures","https://stabletravel.dev/api/flightaware/history/airports/id/flights/to/dest_id","https://stabletravel.dev/api/flightaware/history/flights/id","https://stabletravel.dev/api/flightaware/history/flights/id/map","https://stabletravel.dev/api/flightaware/history/flights/id/route-info","https://stabletravel.dev/api/flightaware/history/flights/id/track","https://stabletravel.dev/api/flightaware/history/operators/id/flights","https://stabletravel.dev/api/flightaware/disruption-counts/entity_type/id","https://stabletravel.dev/api/google-flights/search","https://stabletravel.dev/api/google-flights/booking"],"mppResources":["https://stabletravel.dev/api/flightaware/disruption-counts/entity_type","https://stabletravel.dev/api/flightaware/airports/id/weather/observations","https://stabletravel.dev/api/flights/availability","https://stabletravel.dev/api/flights/book","https://stabletravel.dev/api/flights/checkin-links","https://stabletravel.dev/api/flights/orders","https://stabletravel.dev/api/flights/orders/cancel","https://stabletravel.dev/api/flights/price","https://stabletravel.dev/api/flights/search","https://stabletravel.dev/api/flights/seatmap","https://stabletravel.dev/api/flights/status","https://stabletravel.dev/api/flights/upsell","https://stabletravel.dev/api/hotels/autocomplete","https://stabletravel.dev/api/hotels/book","https://stabletravel.dev/api/hotels/list","https://stabletravel.dev/api/hotels/list/by-geocode","https://stabletravel.dev/api/hotels/offer","https://stabletravel.dev/api/hotels/ratings","https://stabletravel.dev/api/hotels/search","https://stabletravel.dev/api/hotels/search/by-hotel","https://stabletravel.dev/api/activities/by-square","https://stabletravel.dev/api/activities/details","https://stabletravel.dev/api/activities/search","https://stabletravel.dev/api/transfers/book","https://stabletravel.dev/api/transfers/cancel","https://stabletravel.dev/api/transfers/search","https://stabletravel.dev/api/reference/airline-routes","https://stabletravel.dev/api/reference/airlines","https://stabletravel.dev/api/reference/airport-routes","https://stabletravel.dev/api/reference/airports","https://stabletravel.dev/api/reference/cities","https://stabletravel.dev/api/reference/locations","https://stabletravel.dev/api/reference/recommendations","https://stabletravel.dev/api/flightaware/flights/id","https://stabletravel.dev/api/flightaware/flights/id/canonical","https://stabletravel.dev/api/flightaware/flights/id/intents","https://stabletravel.dev/api/flightaware/flights/id/map","https://stabletravel.dev/api/flightaware/flights/id/position","https://stabletravel.dev/api/flightaware/flights/id/route-info","https://stabletravel.dev/api/flightaware/flights/id/track","https://stabletravel.dev/api/flightaware/flights/search","https://stabletravel.dev/api/flightaware/flights/search/advanced","https://stabletravel.dev/api/flightaware/flights/search/count","https://stabletravel.dev/api/flightaware/flights/search/positions","https://stabletravel.dev/api/flightaware/airports","https://stabletravel.dev/api/flightaware/airports/delays","https://stabletravel.dev/api/flightaware/airports/nearby","https://stabletravel.dev/api/flightaware/airports/id","https://stabletravel.dev/api/flightaware/airports/id/canonical","https://stabletravel.dev/api/flightaware/airports/id/delays","https://stabletravel.dev/api/flightaware/airports/id/flights","https://stabletravel.dev/api/flightaware/airports/id/flights/arrivals","https://stabletravel.dev/api/flightaware/airports/id/flights/counts","https://stabletravel.dev/api/flightaware/airports/id/flights/departures","https://stabletravel.dev/api/flightaware/airports/id/flights/scheduled-arrivals","https://stabletravel.dev/api/flightaware/airports/id/flights/scheduled-departures","https://stabletravel.dev/api/flightaware/airports/id/flights/to/dest_id","https://stabletravel.dev/api/flightaware/airports/id/nearby","https://stabletravel.dev/api/flightaware/airports/id/routes/dest_id","https://stabletravel.dev/api/flightaware/airports/id/weather/forecast","https://stabletravel.dev/api/flightaware/history/aircraft/registration/last-flight","https://stabletravel.dev/api/flightaware/history/airports/id/flights/arrivals","https://stabletravel.dev/api/flightaware/history/airports/id/flights/departures","https://stabletravel.dev/api/flightaware/history/airports/id/flights/to/dest_id","https://stabletravel.dev/api/flightaware/history/flights/id","https://stabletravel.dev/api/flightaware/history/flights/id/map","https://stabletravel.dev/api/flightaware/history/flights/id/route-info","https://stabletravel.dev/api/flightaware/history/flights/id/track","https://stabletravel.dev/api/flightaware/history/operators/id/flights","https://stabletravel.dev/api/flightaware/disruption-counts/entity_type/id","https://stabletravel.dev/api/google-flights/search","https://stabletravel.dev/api/google-flights/booking"],"description":"Pay-per-request access to flights, hotels, activities, transfers (Amadeus), and real-time flight tracking, airport info, and predictions (FlightAware AeroAPI). No auth, no subscriptions.","instructions":"# StableTravel API\n\n> Pay-per-request access to flights, hotels, activities, transfers (Amadeus), and real-time flight tracking, airport info, history, and predictions (FlightAware AeroAPI). No auth, no API keys, no subscriptions. Powered by x402/MPP micropayments (USDC on Base, Solana, or Tempo).\n\n## Choosing the Right Data Source\n\nStableTravel has three data providers. Pick the right one for the job:\n\n| Need | Use | Why |\n|------|-----|-----|\n| **Cheapest flight price** | Google Flights (`/api/google-flights/search`) | Aggregates prices across all airlines, OTAs, and booking sites. Same results as google.com/flights. |\n| **Book a flight via API** | Amadeus (`/api/flights/search` → `/api/flights/book`) | Direct GDS inventory with real-time availability. Only way to programmatically book, price-confirm, or manage orders. |\n| **Complex itineraries** | Amadeus (`/api/flights/search` POST) | Multi-city, cabin class mixing, fare rules, upsells, seat maps. GDS has the deepest data. |\n| **Track a live flight** | FlightAware (`/api/flightaware/flights/`) | Real-time position, track, delays, ATC routing. |\n| **Airport info & delays** | FlightAware (`/api/flightaware/airports/`) | Weather, delay stats, scheduled flights, disruptions. |\n| **Flight history** | FlightAware (`/api/flightaware/history/`) | Historical tracks, routes, operator flight logs. |\n| **Hotels, activities, transfers** | Amadeus | Only provider for these categories. |\n\n**Rule of thumb:** Start with Google Flights for price discovery, switch to Amadeus for booking. Use FlightAware for operational/tracking data.\n\n## How It Works\n\nSend a standard HTTP request to any endpoint. Payment is handled automatically via x402/MPP protocol headers. No signup, no tokens, no OAuth.\n\n## Quick Start\n\n```bash\n# Search flights from NYC to LA (GET — simple search)\nnpx agentcash fetch \"https://stabletravel.dev/api/flights/search?originLocationCode=JFK&destinationLocationCode=LAX&departureDate=2025-06-15&adults=1&max=5\"\n\n# Search flights (POST — advanced multi-city)\nnpx agentcash fetch -X POST -H \"Content-Type: application/json\" \\\n  -d '{\"originDestinations\":[{\"id\":\"1\",\"originLocationCode\":\"JFK\",\"destinationLocationCode\":\"LAX\",\"departureDateTimeRange\":{\"date\":\"2025-06-15\"}}],\"travelers\":[{\"id\":\"1\",\"travelerType\":\"ADULT\"}],\"sources\":[\"GDS\"],\"searchCriteria\":{\"maxFlightOffers\":5}}' \\\n  \"https://stabletravel.dev/api/flights/search\"\n```\n\n## Endpoints\n\n### Flights\n\n| Endpoint | Method | Price | Description |\n|---|---|---|---|\n| /api/flights/search | GET, POST | $0.05 | Search flight offers (GET for simple, POST for advanced multi-city) |\n| /api/flights/price | POST | $0.03 | Confirm pricing for a flight offer |\n| /api/flights/book | POST | $0.09 | Book a flight (create flight order) |\n| /api/flights/orders | GET | $0.005 | Retrieve a flight order by ID |\n| /api/flights/orders/cancel | POST | $0.005 | Cancel a flight order |\n| /api/flights/seatmap | GET, POST | $0.03 | Get seat maps for a flight |\n| /api/flights/upsell | POST | $0.03 | Get upsell offers for a flight |\n| /api/flights/availability | POST | $0.03 | Check flight availability |\n| /api/flights/status | GET | $0.005 | Get flight status by carrier, number, and date |\n| /api/flights/checkin-links | GET | $0.005 | Get airline check-in page URLs |\n\n### Hotels\n\n| Endpoint | Method | Price | Description |\n|---|---|---|---|\n| /api/hotels/list | GET | $0.03 | List hotels by city code (default max 100) |\n| /api/hotels/list/by-geocode | GET | $0.03 | List hotels by latitude/longitude (default max 100) |\n| /api/hotels/search | GET | $0.03 | Search hotel offers by hotel IDs (use /hotels/list first to get IDs) |\n| /api/hotels/search/by-hotel | GET | $0.03 | Search offers for a specific hotel ID |\n| /api/hotels/offer | GET | $0.03 | Get details for a specific hotel offer |\n| /api/hotels/book | POST | $0.002 | Book a hotel offer |\n| /api/hotels/autocomplete | GET | $0.005 | Autocomplete hotel names |\n| /api/hotels/ratings | GET | $0.05 | Get hotel sentiment ratings and reviews |\n\n### Activities\n\n| Endpoint | Method | Price | Description |\n|---|---|---|---|\n| /api/activities/search | GET | $0.05 | Search tours & activities by lat/lng (default max 50) |\n| /api/activities/by-square | GET | $0.05 | Search activities within a geographic square (default max 50) |\n| /api/activities/details | GET | $0.05 | Get activity details by ID |\n\n### Transfers\n\n| Endpoint | Method | Price | Description |\n|---|---|---|---|\n| /api/transfers/search | POST | $0.003 | Search airport transfer options |\n| /api/transfers/book | POST | $0.002 | Book a transfer |\n| /api/transfers/cancel | POST | $0.002 | Cancel a transfer booking |\n\n### Reference Data\n\n| Endpoint | Method | Price | Description |\n|---|---|---|---|\n| /api/reference/locations | GET | $0.005 | Search locations (airports, cities) by keyword |\n| /api/reference/airports | GET | $0.005 | Find nearby airports by latitude/longitude |\n| /api/reference/airlines | GET | $0.005 | Look up airline by IATA code |\n| /api/reference/airline-routes | GET | $0.005 | Get routes for an airline from an airport (default max 50) |\n| /api/reference/airport-routes | GET | $0.005 | Get direct destinations from an airport (default max 50) |\n| /api/reference/cities | GET | $0.005 | Search cities by keyword |\n\n## Common Parameters\n\n### Flight Search (GET)\n- **originLocationCode** (required): IATA origin airport code (e.g. JFK)\n- **destinationLocationCode** (required): IATA destination airport code (e.g. LAX)\n- **departureDate** (required): Departure date (YYYY-MM-DD)\n- **adults** (required): Number of adult travelers (1-9)\n- **returnDate**: Return date for round-trip (YYYY-MM-DD)\n- **travelClass**: ECONOMY, PREMIUM_ECONOMY, BUSINESS, or FIRST\n- **nonStop**: Filter non-stop flights only (true/false)\n- **currencyCode**: Currency code (e.g. USD)\n- **maxPrice**: Maximum price filter\n- **max**: Maximum number of results\n\n### Flight Search (POST)\nThe POST body requires `originDestinations` and `travelers` arrays:\n```json\n{\n  \"originDestinations\": [{ \"id\": \"1\", \"originLocationCode\": \"JFK\", \"destinationLocationCode\": \"LAX\", \"departureDateTimeRange\": { \"date\": \"2025-06-15\" } }],\n  \"travelers\": [{ \"id\": \"1\", \"travelerType\": \"ADULT\" }],\n  \"sources\": [\"GDS\"],\n  \"searchCriteria\": { \"maxFlightOffers\": 5 }\n}\n```\n\n### Flight Price (POST)\nPass the full flight offer from a search result. Body must use `type: \"flight-offers-pricing\"`:\n```json\n{ \"data\": { \"type\": \"flight-offers-pricing\", \"flightOffers\": [ <flight-offer-object> ] } }\n```\n\n### Flight Upsell (POST)\nBody must use `type: \"flight-offers-upselling\"`:\n```json\n{ \"data\": { \"type\": \"flight-offers-upselling\", \"flightOffers\": [ <flight-offer-object> ] } }\n```\n\n### Flight Seatmap (POST)\nBody wraps flight offers in a `data` array:\n```json\n{ \"data\": [ <flight-offer-object> ] }\n```\n\n### Flight Status\n- **carrierCode** (required): Airline IATA code (e.g. AA)\n- **flightNumber** (required): Flight number (e.g. 100)\n- **scheduledDepartureDate** (required): Date (YYYY-MM-DD)\n\n### Hotel List\n- **cityCode** (required): IATA city code (e.g. PAR, LON, NYC)\n- **max**: Maximum results (default 100)\n- **radius**: Search radius\n- **ratings**: Comma-separated star ratings (1-5)\n\n### Hotel List by Geocode\n- **latitude** (required): Latitude coordinate\n- **longitude** (required): Longitude coordinate\n- **max**: Maximum results (default 100)\n\n### Hotel Search\n- **hotelIds** (required): Comma-separated Amadeus hotel IDs (get these from /hotels/list)\n- **checkInDate**: Check-in date (YYYY-MM-DD)\n- **checkOutDate**: Check-out date (YYYY-MM-DD)\n- **adults**: Number of adults (default 1)\n\n### Activities Search\n- **latitude** (required): Latitude coordinate\n- **longitude** (required): Longitude coordinate\n- **radius**: Search radius in km (default 1)\n- **max**: Maximum results (default 50)\n\n### Activities by Square\n- **north** (required): Northern latitude boundary\n- **south** (required): Southern latitude boundary\n- **east** (required): Eastern longitude boundary\n- **west** (required): Western longitude boundary\n- **max**: Maximum results (default 50)\n\n### Transfers Search (POST)\n```json\n{\n  \"startLocationCode\": \"CDG\",\n  \"endAddressLine\": \"Avenue des Champs-Elysees 1\",\n  \"endCityName\": \"Paris\",\n  \"endZipCode\": \"75008\",\n  \"endCountryCode\": \"FR\",\n  \"endGeoCode\": \"48.8566,2.3522\",\n  \"transferType\": \"PRIVATE\",\n  \"startDateTime\": \"2025-06-15T10:00:00\",\n  \"passengers\": 2\n}\n```\nNote: Drop-off requires either full address fields (endAddressLine + endCityName + endCountryCode) or endGeoCode, or both.\n\n### Reference Locations\n- **keyword** (required): Search keyword (city or airport name)\n- **subType** (required): AIRPORT, CITY, or AIRPORT,CITY\n\n### Airline / Airport Routes\n- **airlineCode** or **departureAirportCode** (required): IATA code\n- **max**: Maximum results (default 50)\n\n### FlightAware — Real-Time Flights\n\n| Endpoint | Method | Price | Description |\n|---|---|---|---|\n| /api/flightaware/flights/search | GET | $0.10 | Search flights by query string (idents, latlong, airline) |\n| /api/flightaware/flights/search/positions | GET | $0.10 | Search flights with position data |\n| /api/flightaware/flights/search/count | GET | $0.04 | Get count of flights matching a search |\n| /api/flightaware/flights/search/advanced | GET | $0.10 | Advanced flight search with complex query syntax |\n| /api/flightaware/flights/{ident} | GET | $0.01 | Get flights by ident (flight number, registration, etc.) |\n| /api/flightaware/flights/{ident}/canonical | GET | $0.002 | Get canonical ident for a flight |\n| /api/flightaware/flights/{ident}/intents | POST | $0.001 | Set flight intent for push notifications |\n| /api/flightaware/flights/{id}/position | GET | $0.02 | Get latest position for a flight |\n| /api/flightaware/flights/{id}/track | GET | $0.024 | Get full track/positions for a flight |\n| /api/flightaware/flights/{id}/route-info | GET | $0.02 | Get route info (fixes, waypoints) for a flight |\n| /api/flightaware/flights/{id}/map | GET | $0.06 | Get flight track map payload (proxied from FlightAware) |\n\n### FlightAware — Airports\n\n| Endpoint | Method | Price | Description |\n|---|---|---|---|\n| /api/flightaware/airports | GET | $0.01 | List all airports |\n| /api/flightaware/airports/nearby | GET | $0.008 | Find airports near a lat/lng |\n| /api/flightaware/airports/delays | GET | $0.10 | Get all airport delay information |\n| /api/flightaware/airports/{id} | GET | $0.03 | Get airport info by code |\n| /api/flightaware/airports/{id}/canonical | GET | $0.002 | Get canonical airport code |\n| /api/flightaware/airports/{id}/nearby | GET | $0.008 | Find airports near a specific airport |\n| /api/flightaware/airports/{id}/delays | GET | $0.02 | Get delays for a specific airport |\n| /api/flightaware/airports/{id}/flights | GET | $0.04 | Get all flights at an airport |\n| /api/flightaware/airports/{id}/flights/arrivals | GET | $0.01 | Get arrivals at an airport |\n| /api/flightaware/airports/{id}/flights/departures | GET | $0.01 | Get departures from an airport |\n| /api/flightaware/airports/{id}/flights/scheduled-departures | GET | $0.01 | Get scheduled departures |\n| /api/flightaware/airports/{id}/flights/scheduled-arrivals | GET | $0.01 | Get scheduled arrivals |\n| /api/flightaware/airports/{id}/flights/to/{dest_id} | GET | $0.10 | Get flights between two airports |\n| /api/flightaware/airports/{id}/flights/counts | GET | $0.20 | Get flight count statistics |\n| /api/flightaware/airports/{id}/weather/observations | GET | $0.004 | Get METAR weather observations |\n| /api/flightaware/airports/{id}/weather/forecast | GET | $0.004 | Get TAF weather forecast |\n| /api/flightaware/airports/{id}/routes/{dest_id} | GET | $0.04 | Get route info between airports |\n\n### FlightAware — Flight History\n\n| Endpoint | Method | Price | Description |\n|---|---|---|---|\n| /api/flightaware/history/flights/{ident} | GET | $0.04 | Get historical flights by ident |\n| /api/flightaware/history/flights/{id}/track | GET | $0.12 | Get historical flight track |\n| /api/flightaware/history/flights/{id}/map | GET | $0.28 | Get historical flight map payload (proxied from FlightAware) |\n| /api/flightaware/history/flights/{id}/route-info | GET | $0.08 | Get historical flight route info |\n| /api/flightaware/history/airports/{id}/flights/arrivals | GET | $0.04 | Get historical arrivals at airport |\n| /api/flightaware/history/airports/{id}/flights/departures | GET | $0.04 | Get historical departures from airport |\n| /api/flightaware/history/airports/{id}/flights/to/{dest_id} | GET | $0.24 | Get historical flights between airports |\n| /api/flightaware/history/aircraft/{registration}/last-flight | GET | $0.40 | Get last flight for an aircraft |\n| /api/flightaware/history/operators/{id}/flights | GET | $0.04 | Get historical flights by operator |\n\n### FlightAware — Disruption Counts\n\n| Endpoint | Method | Price | Description |\n|---|---|---|---|\n| /api/flightaware/disruption-counts/{entity_type} | GET | $0.01 | Get disruption stats by entity type (airline, origin, destination) |\n| /api/flightaware/disruption-counts/{entity_type}/{id} | GET | $0.01 | Get disruption stats for a specific entity |\n\n## FlightAware Common Parameters\n\n### Flight Search\n- **query** (required): Search string using FlightAware query syntax\n  - Ident search: `-idents \"UAL*\"`\n  - Lat/long box: `-latlong \"36 -104 30 -86\"`\n  - Airline: `-airline \"UAL\"`\n\n### Flight by Ident\n- **ident** (path): Flight ident (e.g. UAL123, N12345, SWA100)\n- **ident_type**: fa_flight_id, designator, or registration\n- **start/end**: ISO 8601 time range filter\n- **cursor**: Pagination cursor\n\n### Airport Operations\n- **id** (path): ICAO or IATA airport code (e.g. KJFK, JFK)\n- **airline**: Filter by airline IATA code\n- **type**: arrivals, departures, enroute, scheduled_arrivals, scheduled_departures\n\n### Weather\n- **temperature_units**: fahrenheit or celsius\n- **return_nearby_weather**: true to include nearby station data\n\n### Disruption Counts\n- **entity_type** (path): airline, origin, or destination\n- **time_period**: today, yesterday, last3days, last7days, last14days, last30days\n\n## Google Flights (via SerpAPI)\n\nReal-time Google Flights data — prices, schedules, and booking links aggregated across all airlines and booking sites.\n\n### Search Flights\n- **GET /api/google-flights/search** ($0.02) — Search Google Flights\n  - departure_id: Airport IATA code, city, or kgmid (e.g. \"JFK\", \"CDG\")\n  - arrival_id: Airport IATA code, city, or kgmid\n  - outbound_date: YYYY-MM-DD\n  - return_date: YYYY-MM-DD (required for round trip)\n  - type: 1 = Round trip (default), 2 = One way, 3 = Multi-city\n  - travel_class: 1 = Economy, 2 = Premium economy, 3 = Business, 4 = First\n  - adults, children, infants_in_seat, infants_on_lap: Passenger counts\n  - stops: 0 = Any, 1 = Nonstop, 2 = Up to 1 stop, 3 = Up to 2 stops\n  - max_price: Maximum price filter\n  - include_airlines / exclude_airlines: Comma-separated airline codes\n  - currency: 3-letter code (default USD)\n  - Returns: best_flights, other_flights, price_insights (lowest price, typical range, price history)\n\n### Get Booking Options\n- **GET /api/google-flights/booking** ($0.02) — Get booking links and prices for a specific flight\n  - Same params as search, plus departure_token (from search result)\n  - Returns: selected_flights, booking_options (airline sites, OTAs, prices, URLs)\n\n## Typical Workflows\n\n1. **Book a flight**: search → price → book\n2. **Compare flight prices**: /google-flights/search for price comparison, then /flights/search + /flights/book for booking\n3. **Book a hotel**: list (get hotel IDs) → search (get offer IDs) → offer (confirm details) → book\n4. **Find activities**: search by lat/lng or by-square → details (by activity ID)\n5. **Book a transfer**: search → book\n6. **Track a live flight**: /flightaware/flights/{ident} → get fa_flight_id → /flightaware/flights/{id}/track\n7. **Check airport status**: /flightaware/airports/{id} → /flightaware/airports/{id}/delays + /flightaware/airports/{id}/weather/observations\n8. **Research flight history**: /flightaware/history/flights/{ident} → /flightaware/history/flights/{id}/track\n\n## Authentication\n\nNo API keys needed. Payment via USDC on Base, Solana, or Tempo (x402/MPP protocol) serves as authentication. Use `npx agentcash fetch` for automatic payment handling.\n\n## OpenAPI Spec\n\nFull schema available at `/openapi.json`\n"}