Award prices in miles or points for a route and date, across airline loyalty programs
Flight award search is a preview. It is not yet stable, and its inputs and output may change.
It returns award prices only: it creates no offer, quote or booking, and results cannot be added
to a trip. Award fares carry no trip_item_token. See
Flight award search.
Find what a flight costs in miles or points with airline loyalty programs. Use it when the user asks for an award price or a redemption: what a flight costs in miles or points, for example “what does a business-class award seat from London Heathrow to New York JFK on November 20 cost in miles or points”. All 17 programs are priced unless the user names some. The results are informational: they cannot be added to a trip, and the booking is made with the loyalty program. This tool is a preview: it is not yet stable, and its inputs and output may change.
Tool description (what the LLM sees)
Award (miles / points) prices for one route and date pair, per airline loyalty program. Use it when the user asks what a flight costs in miles or points, which program has award seats, or how many miles a trip needs. Returns award prices only: it creates no offer, quote or booking, and results cannot be added to a trip. Preview: this tool is not yet stable, and its inputs and output may change.INPUT- Required: origin, destination, departure_date, trip_type (oneway or roundtrip). A roundtrip needs return_date; a oneway takes none of return_date, return_departure_time_range, return_arrival_time_range. origin and destination are 3-letter IATA airport codes (LHR, JFK): each search covers that one airport pair, so when the user names a city with several airports, search its main airport and call again for the others.- programs: all 17 programs are queried by default. Send a list only when the user named programs (codes in the field description).- cabin_class: omit it for every cabin. adults (1-9) counts travellers: only flights with that many award seats in one cabin are returned.- Award filters: max_miles (per person; on a round trip, outbound + return), saver_only, max_mixed_cabin_share, sort (miles, departure, duration), limit (1-100, default 20).- flight_search filters under the same names: max_stops, include_carriers, exclude_carriers, single_carrier_only, via_airports, exclude_via_airports, aircraft_types, departure_time_range, arrival_time_range, connection_time_min_minutes, connection_time_max_minutes, max_total_duration_minutes, same_connection_airport_only, and on a roundtrip return_departure_time_range, return_arrival_time_range. Every filter that narrows the results is applied as sent.- Not accepted: max_price (send max_miles), multi_fare, refundable_only, changeable_only, checked_bag_included (award results carry no fare rules or baggage terms), currency (taxes come in each program's own currency), legs (one origin and destination only), passengers, children, infants (send adults), direct_only (send max_stops 0), origin_type, destination_type, origin_alternate_airports, destination_alternate_airports, nearby_airports, same_origin_airport_only, same_turnaround_airport_only (one airport pair per search).RESPONSE- When a program's prices are being refreshed the answer can come back with status "partial", meaning some loyalty programs were still being checked: call again to get their prices.- Miles and points of different programs are different currencies: give each program's price on its own and do not call one program cheaper than another by comparing their numbers.- The text has one line per flight: flight numbers, local times, stops, then each program's lowest miles + taxes with its cabin and seats.- structuredContent carries the full payload: every fare per program and cabin, per-direction prices on a round trip, seats and the saver flag.- No fare has a trip_item_token. For a cash ticket use flight_search; an award ticket is booked with the loyalty program.
Departure airport (3-letter IATA airport code). An IATA airport code: each search covers the one origin-destination airport pair, so search other airports separately.
destination
string
Yes
Arrival airport (3-letter IATA airport code). An IATA airport code: each search covers the one origin-destination airport pair, so search other airports separately.
departure_date
string
Yes
Single departure date (YYYY-MM-DD), no arrays or ranges. Required.
trip_type
enum ("oneway" | "roundtrip")
Yes
Required: oneway or roundtrip. A roundtrip needs return_date. A oneway takes none of return_date, return_departure_time_range, return_arrival_time_range.
return_date
string | null
No
Return date (YYYY-MM-DD). Required when trip_type is roundtrip; omit it, or send null, on a oneway.
max_stops
integer
No
Maximum stops per leg (0-2). 0 = nonstop, send max_stops: 0 when the user says “direct only” / “non-stop” / “no layovers”; 1 when the user says “at most one stop”.
include_carriers
array<string>
No
IATA 2-letter marketing carrier codes to include (whitelist). Example: [“AF”,“KL”]. ALWAYS convert airline names to codes yourself (Air France → AF, Delta → DL); a name like “Delta” fails validation. A brand that operates several marketing carriers needs every code listed (easyJet → U2, EC, DS). Use when the user says “Air France only”, “fly Delta”, etc. Must not overlap exclude_carriers. Matching means EVERY segment is marketed by a listed carrier (codeshares count by marketing carrier). When nothing matches, the search returns no offers with reason no_matches; the platform never widens to other carriers. Tell the user no itinerary satisfied the airline filter and ask which filter to relax.
exclude_carriers
array<string>
No
IATA 2-letter marketing carrier codes to exclude (blacklist). Example: [“FR”,“U2”]. ALWAYS convert airline names to codes yourself (Ryanair → FR, Frontier → F9); a name like “Ryanair” fails validation. A brand that operates several marketing carriers needs every code listed (“no Wizz Air” → W6, W9). Use when the user says “no Ryanair”, “avoid budget airlines”, etc. Must not overlap include_carriers.
single_carrier_only
boolean
No
Keep only itineraries marketed by ONE carrier end to end. Use when the user says “same airline the whole way” or wants to avoid split-carrier connections.
departure_time_range
object
No
Filter the OUTBOUND leg by local departure time-of-day. Example: { “earliest”: “08:00”, “latest”: “12:00” }. Use when the user says “morning flight”, “leave after 6pm”.
departure_time_range.earliest
string
No
Inclusive earliest local time-of-day (HH:MM, 24-hour).
departure_time_range.latest
string
No
Inclusive latest local time-of-day (HH:MM, 24-hour).
arrival_time_range
object
No
Filter the OUTBOUND leg by local arrival time-of-day. Example: { “latest”: “20:00” }. Use when the user says “arrive before dinner”, “land by noon”.
arrival_time_range.earliest
string
No
Inclusive earliest local time-of-day (HH:MM, 24-hour).
arrival_time_range.latest
string
No
Inclusive latest local time-of-day (HH:MM, 24-hour).
connection_time_min_minutes
integer
No
Minimum layover length, in minutes, for EVERY connection of EVERY leg. Use when the user wants a comfortable connection (“at least 90 minutes to change planes”). Must not exceed connection_time_max_minutes.
connection_time_max_minutes
integer
No
Maximum layover length, in minutes, for EVERY connection of EVERY leg. Use when the user says “no long layovers” (“under 3 hours” → 180).
max_total_duration_minutes
integer
No
Cap on EACH leg’s total elapsed travel time, in minutes (gate to gate, layovers included). Use when the user says “nothing longer than 12 hours” → 720.
via_airports
array<string>
No
Restrict connections to these IATA airport codes. Nonstop itineraries still pass. Example: [“CDG”,“AMS”]. Every connection in a returned itinerary is at a listed airport; sources search at most 9 per leg. Must not overlap exclude_via_airports.
exclude_via_airports
array<string>
No
Ban connections at these IATA airport codes. Example: [“LHR”] when the user says “anything but Heathrow”. Lists longer than 9 are still fully enforced. Must not overlap via_airports.
aircraft_types
array<string>
No
Restrict every segment to these IATA aircraft equipment codes. Example: [“320”,“321”]. Use only when the user names equipment; most users do not.
same_connection_airport_only
boolean
No
Keep only itineraries whose connections arrive at and depart from the SAME airport (no cross-town airport change).
return_departure_time_range
object | null
No
Roundtrip only: filter the RETURN leg by local departure time-of-day. Omit it, or send null, on a oneway.
return_arrival_time_range
object | null
No
Roundtrip only: filter the RETURN leg by local arrival time-of-day. Omit it, or send null, on a oneway.
Cabin to price. Omit it, or send null, to get every cabin; send a cabin only when the user asked for one. With a cabin, both directions of a round trip are priced in that cabin.
adults
integer
No
Number of travellers (1-9). A flight is returned only when at least this many award seats are open in the same cabin. Miles and taxes are always per person. Children and infants are not priced separately.
limit
integer
No
Number of flights returned (1-100, default 20). The result’s total says how many flights matched.
Loyalty programs to price, by code. Omit it, or send null, to query all 17: aadvantage (American AAdvantage), atmos_rewards (Atmos Rewards, Alaska and Hawaiian), skymiles (Delta SkyMiles), flying_blue (Flying Blue, Air France-KLM), flying_club (Virgin Atlantic Flying Club), trueblue (JetBlue TrueBlue), qantas_frequent_flyer (Qantas Frequent Flyer), eurobonus (SAS EuroBonus), miles_and_smiles (Turkish Airlines Miles&Smiles), mileageplus (United MileagePlus), velocity (Virgin Australia Velocity), etihad_guest (Etihad Guest), finnair_plus (Finnair Plus), aeromexico_rewards (Aeromexico Rewards), azul_fidelidade (Azul Fidelidade), smiles_br (GOL Smiles Brazil), smiles_ar (GOL Smiles Argentina). Send a list only when the user named programs, for example the ones they hold miles in.
max_miles
integer | null
No
Most miles per person, in the requested cabin. On a round trip it caps outbound + return together. Omit it, or send null, for no cap.
saver_only
boolean
No
Keep only saver-level award fares. Programs that have no saver level are not affected.
max_mixed_cabin_share
number | null
No
Largest share of flight time (0 to 1) allowed in a cabin lower than cabin_class, e.g. 0.25. 0 keeps only fares in the requested cabin from end to end. Omit it, or send null, unless the user cares about mixed cabins.
sort
enum ("miles" | "departure" | "duration")
No
Order of the flights: miles (fewest miles first, the default), departure (earliest first) or duration (shortest first).
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.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Jinko Platform","description":"Connect your AI agent to flights, hotels, car rentals, and bookings through MCP, REST API, TypeScript SDK, or CLI.","colors":{"primary":"#FF6363","light":"#FF807C","dark":"#BA4B4A"},"logo":{"light":"https://mintcdn.com/jinko-dev/k6P2DyAYQF0FPJQi/logo/jinko-logo.png?fit=max\u0026auto=format\u0026n=k6P2DyAYQF0FPJQi\u0026q=85\u0026s=785a20dc553a2698bfffad325d1198d0","dark":"https://mintcdn.com/jinko-dev/k6P2DyAYQF0FPJQi/logo/jinko-logo.png?fit=max\u0026auto=format\u0026n=k6P2DyAYQF0FPJQi\u0026q=85\u0026s=785a20dc553a2698bfffad325d1198d0"},"favicon":"https://mintcdn.com/jinko-dev/k6P2DyAYQF0FPJQi/favicon.png?fit=max\u0026auto=format\u0026n=k6P2DyAYQF0FPJQi\u0026q=85\u0026s=770e72a193924011a067dcacdcb654cf","navbar":{"links":[{"href":"https://dashboard.gojinko.com","label":"Dashboard"}],"primary":{"type":"button","label":"Get API Key","href":"https://dashboard.gojinko.com/developers/keys"}},"footer":{"socials":{"website":"https://gojinko.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"jinko-dev","hasAudioNarration":false,"actualSubdomain":"jinko-dev","customDomains":["docs.dev.gojinko.com"],"gitSource":{"type":"github","owner":"jinkoso","repo":"jinko-dev-platform","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6aeece39c11f500273ffd5ec","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API reference","count":63},{"language":"default","tag":"CLI","count":49},{"language":"default","tag":"Flights","count":43},{"language":"default","tag":"Documentation","count":42},{"language":"default","tag":"MCP","count":23},{"language":"default","tag":"Manage","count":20},{"language":"default","tag":"Trip \u0026 Payment","count":19},{"language":"default","tag":"Discovery","count":17},{"language":"default","tag":"Hotels","count":16},{"language":"default","tag":"Travel Demand","count":14}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"tools/flight-award-search","slug":"/tools/flight-award-search","pageMetadata":{"title":"Flight Award Search (preview)","description":"Award prices in miles or points for a route and date, across airline loyalty programs","href":"/tools/flight-award-search"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Award prices in miles or points for a route and date, across airline loyalty programs\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Accordion,CodeBlock,Heading,Table,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[`Flight award search is a preview. It is not yet stable, and its inputs and output may change.\nIt returns award prices only: it creates no offer, quote or booking, and results cannot be added\nto a trip. Award fares carry no `,_jsx(_components.code,{children:`trip_item_token`}),`. See\n`,_jsx(_components.a,{href:`/guides/flight-booking#flight-award-search-preview`,children:`Flight award search`}),`.`]})}),`\n`,_jsx(_components.p,{children:`Find what a flight costs in miles or points with airline loyalty programs. Use it when the user asks for an award price or a redemption: what a flight costs in miles or points, for example “what does a business-class award seat from London Heathrow to New York JFK on November 20 cost in miles or points”. All 17 programs are priced unless the user names some. The results are informational: they cannot be added to a trip, and the booking is made with the loyalty program. This tool is a preview: it is not yet stable, and its inputs and output may change.`}),`\n`,_jsx(Accordion,{title:`Tool description (what the LLM sees)`,defaultOpen:false,id:`tool-description-what-the-llm-sees`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`17`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Award (miles / points) prices for one route and date pair, per airline loyalty program. Use it when the user asks what a flight costs in miles or points, which program has award seats, or how many miles a trip needs. Returns award prices only: it creates no offer, quote or booking, and results cannot be added to a trip. Preview: this tool is not yet stable, and its inputs and output may change.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`INPUT`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Required: origin, destination, departure_date, trip_type (oneway or roundtrip). A roundtrip needs return_date; a oneway takes none of return_date, return_departure_time_range, return_arrival_time_range. origin and destination are 3-letter IATA airport codes (LHR, JFK): each search covers that one airport pair, so when the user names a city with several airports, search its main airport and call again for the others.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- programs: all 17 programs are queried by default. Send a list only when the user named programs (codes in the field description).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- cabin_class: omit it for every cabin. adults (1-9) counts travellers: only flights with that many award seats in one cabin are returned.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Award filters: max_miles (per person; on a round trip, outbound + return), saver_only, max_mixed_cabin_share, sort (miles, departure, duration), limit (1-100, default 20).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- flight_search filters under the same names: max_stops, include_carriers, exclude_carriers, single_carrier_only, via_airports, exclude_via_airports, aircraft_types, departure_time_range, arrival_time_range, connection_time_min_minutes, connection_time_max_minutes, max_total_duration_minutes, same_connection_airport_only, and on a roundtrip return_departure_time_range, return_arrival_time_range. Every filter that narrows the results is applied as sent.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Not accepted: max_price (send max_miles), multi_fare, refundable_only, changeable_only, checked_bag_included (award results carry no fare rules or baggage terms), currency (taxes come in each program's own currency), legs (one origin and destination only), passengers, children, infants (send adults), direct_only (send max_stops 0), origin_type, destination_type, origin_alternate_airports, destination_alternate_airports, nearby_airports, same_origin_airport_only, same_turnaround_airport_only (one airport pair per search).`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`RESPONSE`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- When a program's prices are being refreshed the answer can come back with status \"partial\", meaning some loyalty programs were still being checked: call again to get their prices.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Miles and points of different programs are different currencies: give each program's price on its own and do not call one program cheaper than another by comparing their numbers.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- The text has one line per flight: flight numbers, local times, stops, then each program's lowest miles + taxes with its cabin and seats.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- structuredContent carries the full payload: every fare per program and cabin, per-direction prices on a round trip, seats and the saver flag.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- No fare has a trip_item_token. For a cash ticket use flight_search; an award ticket is booked with the loyalty program.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})})}),`\n`,_jsx(Heading,{level:`2`,id:`parameters`,children:`Parameters`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Name`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`origin`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Departure airport (3-letter IATA airport code). An IATA airport code: each search covers the one origin-destination airport pair, so search other airports separately.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`destination`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Arrival airport (3-letter IATA airport code). An IATA airport code: each search covers the one origin-destination airport pair, so search other airports separately.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`departure_date`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Single departure date (YYYY-MM-DD), no arrays or ranges. Required.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`trip_type`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`enum (\"oneway\" | \"roundtrip\")`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Required: oneway or roundtrip. A roundtrip needs return_date. A oneway takes none of return_date, return_departure_time_range, return_arrival_time_range.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`return_date`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Return date (YYYY-MM-DD). Required when trip_type is roundtrip; omit it, or send null, on a oneway.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`max_stops`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`integer`})}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`Maximum stops per leg (0-2). 0 = nonstop, send `,_jsx(_components.code,{children:`max_stops: 0`}),` when the user says “direct only” / “non-stop” / “no layovers”; 1 when the user says “at most one stop”.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`include_carriers`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`array\u003cstring>`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`IATA 2-letter marketing carrier codes to include (whitelist). Example: [“AF”,“KL”]. ALWAYS convert airline names to codes yourself (Air France → AF, Delta → DL); a name like “Delta” fails validation. A brand that operates several marketing carriers needs every code listed (easyJet → U2, EC, DS). Use when the user says “Air France only”, “fly Delta”, etc. Must not overlap exclude_carriers. Matching means EVERY segment is marketed by a listed carrier (codeshares count by marketing carrier). When nothing matches, the search returns no offers with reason no_matches; the platform never widens to other carriers. Tell the user no itinerary satisfied the airline filter and ask which filter to relax.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`exclude_carriers`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`array\u003cstring>`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`IATA 2-letter marketing carrier codes to exclude (blacklist). Example: [“FR”,“U2”]. ALWAYS convert airline names to codes yourself (Ryanair → FR, Frontier → F9); a name like “Ryanair” fails validation. A brand that operates several marketing carriers needs every code listed (“no Wizz Air” → W6, W9). Use when the user says “no Ryanair”, “avoid budget airlines”, etc. Must not overlap include_carriers.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`single_carrier_only`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`boolean`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Keep only itineraries marketed by ONE carrier end to end. Use when the user says “same airline the whole way” or wants to avoid split-carrier connections.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`departure_time_range`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`object`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Filter the OUTBOUND leg by local departure time-of-day. Example: { “earliest”: “08:00”, “latest”: “12:00” }. Use when the user says “morning flight”, “leave after 6pm”.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`departure_time_range.earliest`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Inclusive earliest local time-of-day (HH:MM, 24-hour).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`departure_time_range.latest`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Inclusive latest local time-of-day (HH:MM, 24-hour).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`arrival_time_range`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`object`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Filter the OUTBOUND leg by local arrival time-of-day. Example: { “latest”: “20:00” }. Use when the user says “arrive before dinner”, “land by noon”.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`arrival_time_range.earliest`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Inclusive earliest local time-of-day (HH:MM, 24-hour).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`arrival_time_range.latest`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Inclusive latest local time-of-day (HH:MM, 24-hour).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`connection_time_min_minutes`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`integer`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Minimum layover length, in minutes, for EVERY connection of EVERY leg. Use when the user wants a comfortable connection (“at least 90 minutes to change planes”). Must not exceed connection_time_max_minutes.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`connection_time_max_minutes`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`integer`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Maximum layover length, in minutes, for EVERY connection of EVERY leg. Use when the user says “no long layovers” (“under 3 hours” → 180).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`max_total_duration_minutes`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`integer`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Cap on EACH leg’s total elapsed travel time, in minutes (gate to gate, layovers included). Use when the user says “nothing longer than 12 hours” → 720.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`via_airports`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`array\u003cstring>`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Restrict connections to these IATA airport codes. Nonstop itineraries still pass. Example: [“CDG”,“AMS”]. Every connection in a returned itinerary is at a listed airport; sources search at most 9 per leg. Must not overlap exclude_via_airports.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`exclude_via_airports`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`array\u003cstring>`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Ban connections at these IATA airport codes. Example: [“LHR”] when the user says “anything but Heathrow”. Lists longer than 9 are still fully enforced. Must not overlap via_airports.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`aircraft_types`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`array\u003cstring>`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Restrict every segment to these IATA aircraft equipment codes. Example: [“320”,“321”]. Use only when the user names equipment; most users do not.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`same_connection_airport_only`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`boolean`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Keep only itineraries whose connections arrive at and depart from the SAME airport (no cross-town airport change).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`return_departure_time_range`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`object | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Roundtrip only: filter the RETURN leg by local departure time-of-day. Omit it, or send null, on a oneway.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`return_arrival_time_range`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`object | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Roundtrip only: filter the RETURN leg by local arrival time-of-day. Omit it, or send null, on a oneway.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cabin_class`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`enum (\"economy\" | \"premium_economy\" | \"business\" | \"first\") | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Cabin to price. Omit it, or send null, to get every cabin; send a cabin only when the user asked for one. With a cabin, both directions of a round trip are priced in that cabin.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`adults`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`integer`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Number of travellers (1-9). A flight is returned only when at least this many award seats are open in the same cabin. Miles and taxes are always per person. Children and infants are not priced separately.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`limit`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`integer`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Number of flights returned (1-100, default 20). The result’s total says how many flights matched.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`programs`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`array\u003cenum (\"aadvantage\" | \"atmos_rewards\" | \"skymiles\" | \"flying_blue\" | \"flying_club\" | \"trueblue\" | \"qantas_frequent_flyer\" | \"eurobonus\" | \"miles_and_smiles\" | \"mileageplus\" | \"velocity\" | \"etihad_guest\" | \"finnair_plus\" | \"aeromexico_rewards\" | \"azul_fidelidade\" | \"smiles_br\" | \"smiles_ar\")> | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Loyalty programs to price, by code. Omit it, or send null, to query all 17: aadvantage (American AAdvantage), atmos_rewards (Atmos Rewards, Alaska and Hawaiian), skymiles (Delta SkyMiles), flying_blue (Flying Blue, Air France-KLM), flying_club (Virgin Atlantic Flying Club), trueblue (JetBlue TrueBlue), qantas_frequent_flyer (Qantas Frequent Flyer), eurobonus (SAS EuroBonus), miles_and_smiles (Turkish Airlines Miles\u0026Smiles), mileageplus (United MileagePlus), velocity (Virgin Australia Velocity), etihad_guest (Etihad Guest), finnair_plus (Finnair Plus), aeromexico_rewards (Aeromexico Rewards), azul_fidelidade (Azul Fidelidade), smiles_br (GOL Smiles Brazil), smiles_ar (GOL Smiles Argentina). Send a list only when the user named programs, for example the ones they hold miles in.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`max_miles`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`integer | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Most miles per person, in the requested cabin. On a round trip it caps outbound + return together. Omit it, or send null, for no cap.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`saver_only`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`boolean`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Keep only saver-level award fares. Programs that have no saver level are not affected.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`max_mixed_cabin_share`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`number | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Largest share of flight time (0 to 1) allowed in a cabin lower than cabin_class, e.g. 0.25. 0 keeps only fares in the requested cabin from end to end. Omit it, or send null, unless the user cares about mixed cabins.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sort`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`enum (\"miles\" | \"departure\" | \"duration\")`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Order of the flights: miles (fewest miles first, the default), departure (earliest first) or duration (shortest first).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`user_intent`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`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.`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Flight Award Search (preview)","description":"Award prices in miles or points for a route and date, across airline loyalty programs","href":"/tools/flight-award-search"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Parameters","slug":"parameters","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"jinko-dev","siteName":"Jinko Platform","title":"Flight Award Search (preview) - Jinko Platform","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-17T23:01:16.464Z","originalFileLocation":"tools/flight-award-search.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Award prices in miles or points for a route and date, across airline loyalty programs\">\u003cmeta data-mint-head name=\"application-name\" content=\"Jinko Platform\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Flight Award Search (preview) - Jinko Platform\">\u003cmeta data-mint-head property=\"og:description\" content=\"Award prices in miles or points for a route and date, across airline loyalty programs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Jinko Platform\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.dev.gojinko.com/tools/flight-award-search\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://jinko-dev.mintlify.site/_mintlify/api/og/v2?division=Search\u0026amp;title=Flight+Award+Search+%28preview%29\u0026amp;description=Award+prices+in+miles+or+points+for+a+route+and+date%2C+across+airline+loyalty+programs\u0026amp;theme=d8471b1916fc5bd660c4c758\u0026amp;signature=ef18ed3533207a95b4580d4d507fb112cc84b60e2ea7168f98157d1710e2d16c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Flight Award Search (preview) - Jinko Platform\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Award prices in miles or points for a route and date, across airline loyalty programs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://jinko-dev.mintlify.site/_mintlify/api/og/v2?division=Search\u0026amp;title=Flight+Award+Search+%28preview%29\u0026amp;description=Award+prices+in+miles+or+points+for+a+route+and+date%2C+across+airline+loyalty+programs\u0026amp;theme=d8471b1916fc5bd660c4c758\u0026amp;signature=ef18ed3533207a95b4580d4d507fb112cc84b60e2ea7168f98157d1710e2d16c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/jinko-dev/jotmHl7NmaCERw_m/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Jinko Platform\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF6363\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.dev.gojinko.com/tools/flight-award-search\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/tools/flight-award-search.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.dev.gojinko.com/#organization\",\"name\":\"Jinko Platform\",\"url\":\"https://docs.dev.gojinko.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/jinko-dev/k6P2DyAYQF0FPJQi/logo/jinko-logo.png?fit=max\u0026auto=format\u0026n=k6P2DyAYQF0FPJQi\u0026q=85\u0026s=785a20dc553a2698bfffad325d1198d0\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.dev.gojinko.com#website\",\"name\":\"Jinko Platform\",\"url\":\"https://docs.dev.gojinko.com\",\"publisher\":{\"@id\":\"https://docs.dev.gojinko.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.dev.gojinko.com/tools/flight-award-search#webpage\",\"url\":\"https://docs.dev.gojinko.com/tools/flight-award-search\",\"name\":\"Flight Award Search (preview)\",\"description\":\"Award prices in miles or points for a route and date, across airline loyalty programs\",\"dateModified\":\"2026-10-17T23:01:16.464Z\",\"isPartOf\":{\"@id\":\"https://docs.dev.gojinko.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.dev.gojinko.com/tools/flight-award-search#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.dev.gojinko.com/tools/flight-award-search#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Flights\",\"item\":\"https://docs.dev.gojinko.com/tools/find-destination\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Search\",\"item\":\"https://docs.dev.gojinko.com/tools/flight-search\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Flight Award Search (preview)\",\"item\":\"https://docs.dev.gojinko.com/tools/flight-award-search\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.dev.gojinko.com/tools/flight-award-search#article\",\"headline\":\"Flight Award Search (preview)\",\"name\":\"Flight Award Search (preview)\",\"description\":\"Award prices in miles or points for a route and date, across airline loyalty programs\",\"url\":\"https://docs.dev.gojinko.com/tools/flight-award-search\",\"mainEntityOfPage\":{\"@id\":\"https://docs.dev.gojinko.com/tools/flight-award-search#webpage\"},\"dateModified\":\"2026-10-17T23:01:16.464Z\",\"publisher\":{\"@id\":\"https://docs.dev.gojinko.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.dev.gojinko.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Jinko Platform\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Jinko Platform","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"MCP","groups":[{"group":"Introduction","pages":[{"title":"Overview","href":"/tools/overview"}]},{"group":"Flights","pages":[{"group":"Discovery","pages":[{"title":"Find Destination","href":"/tools/find-destination"},{"title":"Flight Calendar","href":"/tools/flight-calendar"},{"title":"Find Dates","href":"/tools/find-dates"},{"title":"Price Monitoring","href":"/tools/price-monitoring"},{"title":"Flight Price Advice","href":"/tools/flight-price-advice"}]},{"group":"Search","pages":[{"title":"Flight Search","description":"Get live flight pricing, search by route, or re-price a known offer","href":"/tools/flight-search"},{"title":"Flight Award Search (preview)","href":"/tools/flight-award-search"}]},{"group":"Manage","pages":[{"title":"Flight Refund","description":"Cancels a booked flight, refunding tickets or voiding them inside the airline's void window","href":"/tools/flight-refund"},{"title":"Flight Exchange","href":"/tools/flight-exchange"}]}]},{"group":"Hotels","pages":[{"title":"Hotel Search","href":"/tools/hotel-search"},{"title":"Hotel Details","href":"/tools/hotel-details"},{"title":"Hotel Reviews","href":"/tools/hotel-reviews"},{"title":"Cancel Hotel Booking","href":"/tools/hotel-cancel"}]},{"group":"Cars","pages":[{"title":"Search Car Rentals","href":"/tools/car-search"},{"title":"Cancel Car Rental Booking","href":"/tools/car-cancel"}]},{"group":"Trip \u0026 Payment","pages":[{"title":"Trip","href":"/tools/trip"},{"title":"Checkout Trip","href":"/tools/checkout"},{"title":"Submit Agent Payment","href":"/tools/submit-agent-payment"},{"title":"Get Trip","href":"/tools/get-trip"},{"title":"Get Booking","href":"/tools/get-booking"}]},{"group":"Marketing claim","tag":"Preview","pages":[{"title":"Claim the Best Price Guarantee","href":"/tools/claim-best-price-guarantee"},{"title":"Read a Best Price Guarantee claim","href":"/tools/get-best-price-guarantee"}]}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/overview"}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/api-reference/introduction"}]}]},"basePath":"","title":"Flight Award Search (preview) - Jinko Platform","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":[],"chunks":[]}