Best date options for a route, the cheapest itinerary per date-pair, spread across the departure window
Answers “when should I fly?” for a known route. Takes the same inputs as flight_calendar except offset, but returns one cheapest itinerary per (departure, return) date-pair, spread across the requested departure window (20 date-pairs by default; limit adjusts), so the user gets a diverse shortlist rather than a cluster of near-adjacent cheapest days. Cache-backed; no live pricing. Each result includes an offer token; run a flight_search price check on it to get a bookable fare before adding the flight to a trip.
Tool description (what the LLM sees)
Find the best date options for a known origin and destination using cached pricing. Takes the same inputs as flight_calendar except offset, but returns one cheapest itinerary per (departure, return) date-pair, spread across the requested departure window (20 date-pairs by default; `limit` adjusts), so the user sees a diverse set of "when should I fly?" options rather than the full per-date list.WHEN TO USE THIS TOOL:- The user knows the route (origin AND destination) and is flexible on WHEN, and wants a short, spread-out shortlist of the best date options.- Examples: "When is the cheapest time to fly Paris → New York in June?", "Best weekends to go from London to Lisbon next month", "Give me a few good date options for a week in Tokyo".WHEN TO USE flight_calendar INSTEAD:- The user wants the full price-per-date list / calendar grid for a route, not a curated shortlist.WHEN TO USE flight_search INSTEAD:- The user wants live pricing on one specific route with an exact departure date. For a round trip, also require an exact return date; one-way trips need no return date.- Examples: "Paris → NYC one-way on June 17", "Paris → NYC, June 17 → June 26"- flight_search hits live pricing (each call has a cost) and is the step immediately before booking. Use once the route and required travel dates are locked.IMPORTANT: All dates MUST be in the future. Never use past dates. Origin and destination: the city code when the user named a city (PAR, NYC), the airport code when they named an airport (CDG, JFK). A code that names a multi-airport city covers every airport of that city; any other code is that one airport. LAX, MIA and LAS are both a city code and that city's main airport, so they are read as the city here. By default search roundtrip unless the user explicitly asks for one-way (trip_type="oneway").Flow: find_dates → flight_search (price-check the chosen dates) → trip → checkoutThe result carries `search_criteria` (what was actually searched) and `next` (the call to make next, on an empty answer up to three exact-date `flight_search` searches, on a non-empty one `price_check` for the best candidates). Follow `next` before telling the user there are no flights or quoting a cached price.
Origin airport IATA code or city code (3 letters). Examples: “JFK”, “PAR”. 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.
destination
string
Yes
Destination airport IATA code or city code (3 letters). Examples: “CDG”, “NRT”. 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.
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. Auto-calculates return date. 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”.
Filter the OUTBOUND leg by local departure time-of-day. Example: { “earliest”: “08:00”, “latest”: “12:00” }.
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” }.
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).
return_departure_time_range
object | null
No
Round-trip only. Filter the RETURN leg by local departure time-of-day.
return_arrival_time_range
object | null
No
Round-trip only. Filter the RETURN leg by local arrival time-of-day.
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")
No
Sort order. “lowest” (cheapest first) is the only order today; omit it for the same.
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.
limit
integer
No
Max date-pairs to return (1-100). Default 20.
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/find-dates","slug":"/tools/find-dates","pageMetadata":{"title":"Find Dates","description":"Best date options for a route, the cheapest itinerary per date-pair, spread across the departure window","href":"/tools/find-dates"},"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: \"Best date options for a route, the cheapest itinerary per date-pair, spread across the departure window\"\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={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}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Answers “when should I fly?” for a known route. Takes the same inputs as flight_calendar except offset, but returns one cheapest itinerary per (departure, return) date-pair, spread across the requested departure window (20 date-pairs by default; `,_jsx(_components.code,{children:`limit`}),` adjusts), so the user gets a diverse shortlist rather than a cluster of near-adjacent cheapest days. Cache-backed; no live pricing. Each result includes an offer token; run a flight_search price check on it to get a bookable fare before adding the flight to a trip.`]}),`\n`,_jsx(Accordion,{title:`Tool description (what the LLM sees)`,defaultOpen:false,id:`tool-description-what-the-llm-sees`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`23`,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:`23`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:'Find the best date options for a known origin and destination using cached pricing. Takes the same inputs as flight_calendar except offset, but returns one cheapest itinerary per (departure, return) date-pair, spread across the requested departure window (20 date-pairs by default; `limit` adjusts), so the user sees a diverse set of \"when should I fly?\" options rather than the full per-date list.'})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`WHEN TO USE THIS TOOL:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- The user knows the route (origin AND destination) and is flexible on WHEN, and wants a short, spread-out shortlist of the best date options.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Examples: \"When is the cheapest time to fly Paris → New York in June?\", \"Best weekends to go from London to Lisbon next month\", \"Give me a few good date options for a week in Tokyo\".`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`WHEN TO USE flight_calendar INSTEAD:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- The user wants the full price-per-date list / calendar grid for a route, not a curated shortlist.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`WHEN TO USE flight_search INSTEAD:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- The user wants live pricing on one specific route with an exact departure date. For a round trip, also require an exact return date; one-way trips need no return date.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- Examples: \"Paris → NYC one-way on June 17\", \"Paris → NYC, June 17 → June 26\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`- flight_search hits live pricing (each call has a cost) and is the step immediately before booking. Use once the route and required travel dates are locked.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`IMPORTANT:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` All dates MUST be in the future. Never use past dates.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` Origin and destination: the city code when the user named a city (PAR, NYC), the airport code when they named an airport (CDG, JFK). A code that names a multi-airport city covers every airport of that city; any other code is that one airport. LAX, MIA and LAS are both a city code and that city's main airport, so they are read as the city here.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:` By default search roundtrip unless the user explicitly asks for one-way (trip_type=\"oneway\").`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Flow: find_dates → flight_search (price-check the chosen dates) → trip → checkout`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:\"The result carries `search_criteria` (what was actually searched) and `next` (the call to make next, on an empty answer up to three exact-date `flight_search` searches, on a non-empty one `price_check` for the best candidates). Follow `next` before telling the user there are no flights or quoting a cached price.\"})}),`\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:`Origin airport IATA code or city code (3 letters). Examples: “JFK”, “PAR”. 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.`})]}),_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:`Destination airport IATA code or city code (3 letters). Examples: “CDG”, “NRT”. 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.`})]}),_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:`Trip type: “oneway” or “roundtrip”.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`departure_dates`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`array\u003cstring>`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Specific departure dates (YYYY-MM-DD). Multiple dates searched with OR logic.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`departure_date_ranges`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`array\u003cobject>`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Departure date ranges for flexible search.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`departure_date_ranges[].start`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Range start date (YYYY-MM-DD)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`departure_date_ranges[].end`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Range end date (YYYY-MM-DD)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`return_dates`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`array\u003cunknown> | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Specific return dates (YYYY-MM-DD) for round-trip flights.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`return_date_ranges`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`array\u003cobject> | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Return date ranges for flexible round-trip search.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`stay_days`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`integer | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Exact stay duration in days for round trips. Auto-calculates return date. Omit when trip_type is “oneway”.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`stay_days_range`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`object | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Flexible stay duration range for round trips. Example: {min: 5, max: 10}. Omit when trip_type is “oneway”.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`direct_only`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`boolean`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Only return nonstop flights.`})]}),_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 class filter.`})]}),_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” }.`})]}),_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” }.`})]}),_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:`return_departure_time_range`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`object | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Round-trip only. Filter the RETURN leg by local departure time-of-day.`})]}),_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:`Round-trip only. Filter the RETURN leg by local arrival time-of-day.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`max_total`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`number | null`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`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.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sort_by`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`enum (\"lowest\")`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Sort order. “lowest” (cheapest first) is the only order today; omit it for the same.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`currency`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`ISO 4217 currency code. Defaults to “USD”.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`locale`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`BCP 47 locale. Defaults to “en-US”.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`format`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`enum (\"text\" | \"json\")`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Compatibility option: “text” and “json” both return JSON in the text channel for successful or empty results. Read structuredContent for the result data.`})]}),_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:`Max date-pairs to return (1-100). Default 20.`})]}),_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":"Find Dates","description":"Best date options for a route, the cheapest itinerary per date-pair, spread across the departure window","href":"/tools/find-dates"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Parameters","slug":"parameters","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"jinko-dev","siteName":"Jinko Platform","title":"Find Dates - Jinko Platform","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-25T20:39:58.374Z","originalFileLocation":"tools/find-dates.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=\"Best date options for a route, the cheapest itinerary per date-pair, spread across the departure window\">\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=\"Find Dates - Jinko Platform\">\u003cmeta data-mint-head property=\"og:description\" content=\"Best date options for a route, the cheapest itinerary per date-pair, spread across the departure window\">\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/find-dates\">\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=Discovery\u0026amp;title=Find+Dates\u0026amp;description=Best+date+options+for+a+route%2C+the+cheapest+itinerary+per+date-pair%2C+spread+across+the+departure+window\u0026amp;theme=d8471b1916fc5bd660c4c758\u0026amp;signature=05880f46716c6f1e34d91f59e980289ddeece58d2c86768fd2523b69e0123b0a\">\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=\"Find Dates - Jinko Platform\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Best date options for a route, the cheapest itinerary per date-pair, spread across the departure window\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://jinko-dev.mintlify.site/_mintlify/api/og/v2?division=Discovery\u0026amp;title=Find+Dates\u0026amp;description=Best+date+options+for+a+route%2C+the+cheapest+itinerary+per+date-pair%2C+spread+across+the+departure+window\u0026amp;theme=d8471b1916fc5bd660c4c758\u0026amp;signature=05880f46716c6f1e34d91f59e980289ddeece58d2c86768fd2523b69e0123b0a\">\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/find-dates\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/tools/find-dates.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/find-dates#webpage\",\"url\":\"https://docs.dev.gojinko.com/tools/find-dates\",\"name\":\"Find Dates\",\"description\":\"Best date options for a route, the cheapest itinerary per date-pair, spread across the departure window\",\"dateModified\":\"2026-10-25T20:39:58.374Z\",\"isPartOf\":{\"@id\":\"https://docs.dev.gojinko.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.dev.gojinko.com/tools/find-dates#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.dev.gojinko.com/tools/find-dates#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Flights\",\"item\":\"https://docs.dev.gojinko.com/tools/find-destination\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Discovery\",\"item\":\"https://docs.dev.gojinko.com/tools/find-destination\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Find Dates\",\"item\":\"https://docs.dev.gojinko.com/tools/find-dates\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.dev.gojinko.com/tools/find-dates#article\",\"headline\":\"Find Dates\",\"name\":\"Find Dates\",\"description\":\"Best date options for a route, the cheapest itinerary per date-pair, spread across the departure window\",\"url\":\"https://docs.dev.gojinko.com/tools/find-dates\",\"mainEntityOfPage\":{\"@id\":\"https://docs.dev.gojinko.com/tools/find-dates#webpage\"},\"dateModified\":\"2026-10-25T20:39:58.374Z\",\"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","description":"Search flights between a known origin and destination for flexible dates","href":"/tools/flight-calendar"},{"title":"Find Dates","href":"/tools/find-dates"},{"title":"Price Monitoring","description":"Get one cached price snapshot for a specific route and date pair","href":"/tools/price-monitoring"},{"title":"Flight Price Advice","href":"/tools/flight-price-advice"}]},{"group":"Search","pages":[{"title":"Flight Search","href":"/tools/flight-search"},{"title":"Flight Award Search (preview)","href":"/tools/flight-award-search"}]},{"group":"Manage","pages":[{"title":"Flight Refund","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":"Find Dates - Jinko Platform","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":[],"chunks":[]}