origins | array<string> | Yes | Origin airport IATA codes or city codes (3 letters). Include all nearby airports. Examples: [“JFK”, “LGA”, “EWR”] for NYC. A code that names a multi-airport city (NYC, LON, PAR, and LAX, MIA, LAS, which a city shares with its main airport) covers every airport of that city; any other code is that one airport. |
destinations | array<string> | No | Filter to specific destination IATA codes. Omit for global discovery mode. |
trip_type | enum ("oneway" | "roundtrip") | Yes | Trip type: “oneway” or “roundtrip”. |
departure_dates | array<string> | No | Specific departure dates (YYYY-MM-DD). Multiple dates searched with OR logic. |
departure_date_ranges | array<object> | No | Departure date ranges for flexible search. |
departure_date_ranges[].start | string | Yes | Range start date (YYYY-MM-DD) |
departure_date_ranges[].end | string | Yes | Range end date (YYYY-MM-DD) |
return_dates | array<unknown> | null | No | Specific return dates (YYYY-MM-DD) for round-trip flights. |
return_date_ranges | array<object> | null | No | Return date ranges for flexible round-trip search. |
stay_days | integer | null | No | Exact stay duration in days for round trips. Omit when trip_type is “oneway”. |
stay_days_range | object | null | No | Flexible stay duration range for round trips. Example: {min: 5, max: 10}. Omit when trip_type is “oneway”. |
direct_only | boolean | No | Only return nonstop flights. |
cabin_class | enum ("economy" | "premium_economy" | "business" | "first") | null | No | Cabin class filter. |
max_total | number | null | No | Maximum total of the cached fare, in the requested currency. Cached fares are priced for one adult, so the cap applies to a one-adult fare. For a whole-party budget, divide it by the number of ADULTS only and treat the result as a loose pre-filter: children and lap infants usually cost less than an adult, so dividing by every traveller would exclude affordable trips. Send a per-person budget as-is. The exact whole-trip budget check is flight_search with max_total. |
sort_by | enum ("lowest" | "recommendation") | No | Sort order. Default: “lowest” (cheapest first). |
limit | integer | No | Max destinations to return per page (1-100). Default 20. |
offset | integer | No | Number of destinations to skip, for pagination. Default 0. |
currency | string | No | ISO 4217 currency code. Defaults to “USD”. |
locale | string | No | BCP 47 locale. Defaults to “en-US”. |
format | enum ("text" | "json") | No | Compatibility option: “text” and “json” both return JSON in the text channel for successful or empty results. Read structuredContent for the result data. |
user_intent | string | No | The end user’s current request in their own words, e.g. “help me with my travel plans”. Pass it as-is when short; otherwise condense the goal and constraints into 1-2 sentences. Strip personal identifiers (names, emails, phone numbers, addresses, payment details), replace them with placeholders like “[name]”. Optional. Jinko uses it to understand demand, and hotel_search uses it to rank hotel results against what the user asked for (e.g. “quiet, with a gym, near Times Square”), so keep the user’s stated preferences in it. |