{
"error": {
"code": "BAD_REQUEST",
"message": "X-End-User-Id must be an opaque, tenant-scoped id; ids with a reserved prefix, such as user_ or org_, are not allowed."
}
}
{
"error": {
"code": "AUTH_REQUIRED",
"message": "Invalid or expired API key.",
"doc_url": "https://docs.gojinko.com/authentication/api-keys"
}
}
{
"error": {
"code": "FORBIDDEN",
"message": "This API key is not granted the \"search_live\" scope required by this endpoint"
}
}
{
"error": {
"code": "CONFLICT",
"message": "The operation conflicts with the current state of the resource.",
"doc_url": "https://docs.gojinko.com/concepts/errors"
}
}
{
"error": {
"code": "BAD_REQUEST",
"message": "A required field is missing or invalid.",
"doc_url": "https://docs.gojinko.com/concepts/errors"
}
}
{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests. Retry after the Retry-After delay.",
"doc_url": "https://docs.gojinko.com/concepts/errors"
}
}
{
"error": {
"code": "UPSTREAM_REJECTED",
"message": "The request was declined for this offer. Try another offer.",
"doc_url": "https://docs.gojinko.com/concepts/errors"
}
}
{
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "The service is temporarily unavailable. Retry after the Retry-After delay.",
"doc_url": "https://docs.gojinko.com/concepts/errors"
}
}
{
"error": {
"code": "UPSTREAM_TIMEOUT",
"message": "The request timed out before a result was available. Retry the request.",
"doc_url": "https://docs.gojinko.com/concepts/errors"
}
}
Other endpoints
flight-ai-search-cancel
Cancel a flight AI search task
POST
/
v1
/
flight_ai_search
/
tasks
/
{task_id}
:cancel
Cancel a flight AI search task
curl --request POST \ --url https://api.gojinko.com/v1/flight_ai_search/tasks/{task_id}:cancel \ --header 'X-API-Key: <api-key>'
{
"error": {
"code": "BAD_REQUEST",
"message": "X-End-User-Id must be an opaque, tenant-scoped id; ids with a reserved prefix, such as user_ or org_, are not allowed."
}
}
{
"error": {
"code": "AUTH_REQUIRED",
"message": "Invalid or expired API key.",
"doc_url": "https://docs.gojinko.com/authentication/api-keys"
}
}
{
"error": {
"code": "FORBIDDEN",
"message": "This API key is not granted the \"search_live\" scope required by this endpoint"
}
}
{
"error": {
"code": "CONFLICT",
"message": "The operation conflicts with the current state of the resource.",
"doc_url": "https://docs.gojinko.com/concepts/errors"
}
}
{
"error": {
"code": "BAD_REQUEST",
"message": "A required field is missing or invalid.",
"doc_url": "https://docs.gojinko.com/concepts/errors"
}
}
{
"error": {
"code": "RATE_LIMITED",
"message": "Too many requests. Retry after the Retry-After delay.",
"doc_url": "https://docs.gojinko.com/concepts/errors"
}
}
{
"error": {
"code": "UPSTREAM_REJECTED",
"message": "The request was declined for this offer. Try another offer.",
"doc_url": "https://docs.gojinko.com/concepts/errors"
}
}
{
"error": {
"code": "UPSTREAM_UNAVAILABLE",
"message": "The service is temporarily unavailable. Retry after the Retry-After delay.",
"doc_url": "https://docs.gojinko.com/concepts/errors"
}
}
{
"error": {
"code": "UPSTREAM_TIMEOUT",
"message": "The request timed out before a result was available. Retry the request.",
"doc_url": "https://docs.gojinko.com/concepts/errors"
}
}
Cancels a task that has not ended. A task that already ended answers 409CONFLICT.
working: the search is still running, read the task again. input_required: the message asks a question; answer it in the same conversation. completed: the options are in the answer. failed: see error. canceled: a later message or a cancel replaced it.
What the reply asks for, when status is input_required. relax: no flight met every condition of the request; the reply names them and asks which one to drop or change.
The search the request was understood as: trip_type, origins, destinations, departure, return, passengers, priority (only when the request says how to rank the options), currency, and the filters, in the flight_search field names. Each place of origins and destinations has code, type, name and country_code; code is null for a country, a region or a kind of trip, whose airports searched are on each option's legs. departure has weekdays when the request fixes the days of the week the trips leave on: thursday and friday for a long weekend, friday for a weekend. A field is absent when the request did not state it, except passengers and currency, which carry the values searched with.
How to present the options; groups name them by option_id. shortlist: the options for one route and dates. per_destination: one row per destination compared. Options always meet every filter of the request; a row without one says why in empty_reason.
What a turn was charged to the organization's balance, once the turn has ended (completed, input_required, failed or canceled); every amount is 0 when the turn cost nothing. Absent while the task is working. Carried on JSON answers only: an event stream does not carry it, so read it with GET /v1/flight_ai_search/tasks/{task_id}.
Show child attributes
{"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":"api/flight-ai-search-cancel","slug":"/api/flight-ai-search-cancel","pageMetadata":{"title":"flight-ai-search-cancel","sidebarTitle":"/v1/flight_ai_search/tasks/{task_id}:cancel","description":"Cancel a flight AI search task","openapi":"api-reference/public-api.yaml POST /v1/flight_ai_search/tasks/{task_id}:cancel","href":"/api/flight-ai-search-cancel"},"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: \"Cancel a flight AI search task\"\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{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,p:`p`,..._provideComponents(),...props.components};return _jsxs(_components.p,{children:[`Cancels a task that has not ended. A task that already ended answers `,_jsx(_components.code,{children:`409`}),` `,_jsx(_components.code,{children:`CONFLICT`}),`.`]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"flight-ai-search-cancel","sidebarTitle":"/v1/flight_ai_search/tasks/{task_id}:cancel","description":"Cancel a flight AI search task","openapi":"api-reference/public-api.yaml POST /v1/flight_ai_search/tasks/{task_id}:cancel","href":"/api/flight-ai-search-cancel"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Discovery"],"summary":"Cancel a flight AI search task","description":"Cancel a flight AI search task","security":["978d8fd1-2a95-4217-87a6-176045916a99","65d0d72f-44c9-4848-a156-acb82a8f5c69"],"servers":["21f04b38-2027-491e-a963-feed59d5aa1b"],"parameters":["4d868d47-1b6e-4250-8267-0e78c8e55ce3"],"responses":{"200":"e7a3ff7b-9d10-4c30-9362-7fc6f7ef7408","400":"63c2f8a0-404a-401b-ac03-38de0f5f7dd6","401":"52323c9a-a252-4949-8a7b-e18d98a64ff7","403":"b8e0ba6a-4a40-4b53-af5e-92ad0d59f4c4","404":"80557bed-a6f4-4cfa-a7fc-31d6df51567a","409":"ff8911db-04ef-447d-8c9a-750e261ae153","422":"eba962d1-91a0-45e5-a8aa-ae6d8379ae4e","429":"0b6f4951-418c-4478-9c06-62552d30b0bd","502":"e32d8c0b-84a9-44b0-b623-196d69e8e8b4","503":"9aa92a41-e63a-472f-8d89-dd8bb79ece46","504":"82861e75-24db-44df-a3b6-59e93fc82fb5"},"method":"post","type":"path","path":"/v1/flight_ai_search/tasks/{task_id}:cancel","baseUrlOptions":["https://api.gojinko.com"],"title":"Cancel a flight AI search task","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"4d868d47-1b6e-4250-8267-0e78c8e55ce3":{"schema":{"type":"string","minLength":1,"maxLength":100,"example":"tsk_example","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"name":"task_id","in":"path"}},"responses":{"e7a3ff7b-9d10-4c30-9362-7fc6f7ef7408":{"description":"The task, now `canceled`.","content":{"application/json":{"schema":{"type":"object","properties":{"context_id":{"oneOf":[{"type":"string","description":"The conversation; send it with the next message to continue.","example":"ctx_example","isRequired":true,"uniqueKey":"context_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The conversation; send it with the next message to continue.","example":"ctx_example","isRequired":true,"uniqueKey":"context_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"context_id","typeLabel":"string | null"},"task_id":{"type":"string","example":"atk_example","isRequired":true,"uniqueKey":"task_id","typeLabel":"string"},"status":{"type":"string","enum":["working","input_required","completed","failed","canceled"],"description":"`working`: the search is still running, read the task again. `input_required`: the message asks a question; answer it in the same conversation. `completed`: the options are in the answer. `failed`: see `error`. `canceled`: a later message or a cancel replaced it.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"The reply to show the traveller, in English.","example":"Three round-trip options Paris–Tokyo, 3–17 Oct 2027, for 4 adults with at most one stop.","uniqueKey":"message","typeLabel":"string"},"question":{"type":"string","enum":["origin","which_place","dates","passengers","group_too_large","contradiction","relax","out_of_scope"],"description":"What the reply asks for, when `status` is `input_required`. `relax`: no flight met every condition of the request; the reply names them and asks which one to drop or change.","uniqueKey":"question","typeLabel":"enum\u003cstring>"},"question_options":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string","description":"What to send back as `text`.","example":"SJO","isRequired":true,"uniqueKey":"question_options.items.[INDEX].value","typeLabel":"string"},"label":{"type":"string","example":"San José, Costa Rica","isRequired":true,"uniqueKey":"question_options.items.[INDEX].label","typeLabel":"string"},"detail":{"type":"string","example":"1 airport","uniqueKey":"question_options.items.[INDEX].detail","typeLabel":"string"}},"required":["value","label"],"uniqueKey":"question_options.items.[INDEX]","typeLabel":"object"},"description":"Choices for the question, when it has some.","uniqueKey":"question_options","typeLabel":"object[]"},"criteria":{"type":"object","properties":{"trip_type":{"type":"string","enum":["oneway","roundtrip","multi_city"],"isRequired":true,"uniqueKey":"criteria.trip_type","typeLabel":"enum\u003cstring>"},"origins":{"type":"array","items":{"type":"object","properties":{"code":{"oneOf":[{"type":"string","description":"IATA city or airport code; null for a country, a region or a kind of trip, whose airports searched are on each option's `legs`.","example":"PAR","isRequired":true,"uniqueKey":"criteria.origins.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"type":"null","description":"IATA city or airport code; null for a country, a region or a kind of trip, whose airports searched are on each option's `legs`.","example":"PAR","isRequired":true,"uniqueKey":"criteria.origins.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.origins.items.[INDEX].code","typeLabel":"string | null"},"type":{"type":"string","enum":["city","airport","country","region","theme"],"isRequired":true,"uniqueKey":"criteria.origins.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","example":"Paris","isRequired":true,"uniqueKey":"criteria.origins.items.[INDEX].name","typeLabel":"string"},"country_code":{"oneOf":[{"type":"string","example":"FR","isRequired":true,"uniqueKey":"criteria.origins.items.[INDEX].country_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"FR","isRequired":true,"uniqueKey":"criteria.origins.items.[INDEX].country_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.origins.items.[INDEX].country_code","typeLabel":"string | null"}},"required":["code","type","name","country_code"],"uniqueKey":"criteria.origins.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"criteria.origins","typeLabel":"object[]"},"passengers":{"type":"object","properties":{"adults":{"type":"integer","minimum":0,"example":4,"isRequired":true,"uniqueKey":"criteria.passengers.adults","typeLabel":"integer"},"children":{"type":"integer","minimum":0,"example":0,"isRequired":true,"uniqueKey":"criteria.passengers.children","typeLabel":"integer"},"infants":{"type":"integer","minimum":0,"example":0,"isRequired":true,"uniqueKey":"criteria.passengers.infants","typeLabel":"integer"}},"required":["adults","children","infants"],"isRequired":true,"uniqueKey":"criteria.passengers","typeLabel":"object"},"currency":{"type":"string","example":"USD","isRequired":true,"uniqueKey":"criteria.currency","typeLabel":"string"},"destinations":{"type":"array","items":{"type":"object","properties":{"code":{"oneOf":[{"type":"string","description":"IATA city or airport code; null for a country, a region or a kind of trip, whose airports searched are on each option's `legs`.","example":"PAR","isRequired":true,"uniqueKey":"criteria.destinations.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"type":"null","description":"IATA city or airport code; null for a country, a region or a kind of trip, whose airports searched are on each option's `legs`.","example":"PAR","isRequired":true,"uniqueKey":"criteria.destinations.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.destinations.items.[INDEX].code","typeLabel":"string | null"},"type":{"type":"string","enum":["city","airport","country","region","theme"],"isRequired":true,"uniqueKey":"criteria.destinations.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","example":"Paris","isRequired":true,"uniqueKey":"criteria.destinations.items.[INDEX].name","typeLabel":"string"},"country_code":{"oneOf":[{"type":"string","example":"FR","isRequired":true,"uniqueKey":"criteria.destinations.items.[INDEX].country_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"FR","isRequired":true,"uniqueKey":"criteria.destinations.items.[INDEX].country_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.destinations.items.[INDEX].country_code","typeLabel":"string | null"}},"required":["code","type","name","country_code"],"uniqueKey":"criteria.destinations.items.[INDEX]","typeLabel":"object"},"uniqueKey":"criteria.destinations","typeLabel":"object[]"},"legs":{"type":"array","items":{"type":"object","properties":{"origin":{"type":"string","description":"IATA city or airport code.","isRequired":true,"uniqueKey":"criteria.legs.items.[INDEX].origin","typeLabel":"string"},"destination":{"type":"string","description":"IATA city or airport code.","isRequired":true,"uniqueKey":"criteria.legs.items.[INDEX].destination","typeLabel":"string"},"departure":{"oneOf":[{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03","isRequired":true,"uniqueKey":"criteria.legs.items.[INDEX].departure.oneOf.0","typeLabel":"string"},{"type":"null","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03","isRequired":true,"uniqueKey":"criteria.legs.items.[INDEX].departure.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.legs.items.[INDEX].departure","typeLabel":"string | null"}},"required":["origin","destination","departure"],"uniqueKey":"criteria.legs.items.[INDEX]","typeLabel":"object"},"description":"Each flight of a multi-city trip, in order.","uniqueKey":"criteria.legs","typeLabel":"object[]"},"departure":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"One day.","example":"2027-10-03","uniqueKey":"criteria.departure.date","typeLabel":"string"},"window":{"type":"object","properties":{"start":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03","isRequired":true,"uniqueKey":"criteria.departure.window.start","typeLabel":"string"},"end":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03","isRequired":true,"uniqueKey":"criteria.departure.window.end","typeLabel":"string"}},"required":["start","end"],"description":"Any day from `start` to `end`, when the request gives no day.","uniqueKey":"criteria.departure.window","typeLabel":"object"},"flexibility_days":{"type":"integer","minimum":0,"description":"Days either side the request accepts (\"flexible\", \"± 2 days\").","example":3,"uniqueKey":"criteria.departure.flexibility_days","typeLabel":"integer"},"weekdays":{"type":"array","items":{"type":"string","enum":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"uniqueKey":"criteria.departure.weekdays.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"The days of the week the trips leave on, when the request fixes them: `thursday` and `friday` for a long weekend, `friday` for a weekend.","uniqueKey":"criteria.departure.weekdays","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"criteria.departure","typeLabel":"object"},"return":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"One day.","example":"2027-10-03","uniqueKey":"criteria.return.date","typeLabel":"string"},"window":{"type":"object","properties":{"start":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03","isRequired":true,"uniqueKey":"criteria.return.window.start","typeLabel":"string"},"end":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03","isRequired":true,"uniqueKey":"criteria.return.window.end","typeLabel":"string"}},"required":["start","end"],"description":"Any day from `start` to `end`, when the request gives no day.","uniqueKey":"criteria.return.window","typeLabel":"object"},"flexibility_days":{"type":"integer","minimum":0,"description":"Days either side the request accepts (\"flexible\", \"± 2 days\").","example":3,"uniqueKey":"criteria.return.flexibility_days","typeLabel":"integer"},"weekdays":{"type":"array","items":{"type":"string","enum":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"uniqueKey":"criteria.return.weekdays.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"The days of the week the trips leave on, when the request fixes them: `thursday` and `friday` for a long weekend, `friday` for a weekend.","uniqueKey":"criteria.return.weekdays","typeLabel":"enum\u003cstring>[]"}},"uniqueKey":"criteria.return","typeLabel":"object"},"stay_days":{"oneOf":[{"type":"integer","description":"How long the trip lasts, when the request gives no return day.","uniqueKey":"criteria.stay_days.oneOf.0","typeLabel":"integer"},{"type":"object","description":"How long the trip lasts, when the request gives no return day.","required":["min","max"],"properties":{"min":{"type":"integer","isRequired":true,"uniqueKey":"criteria.stay_days.oneOf.1.min","typeLabel":"integer"},"max":{"type":"integer","isRequired":true,"uniqueKey":"criteria.stay_days.oneOf.1.max","typeLabel":"integer"}},"uniqueKey":"criteria.stay_days.oneOf.1","typeLabel":"object"}],"uniqueKey":"criteria.stay_days","typeLabel":"integer | object"},"cabin_class":{"type":"string","enum":["economy","premium_economy","business","first"],"uniqueKey":"criteria.cabin_class","typeLabel":"enum\u003cstring>"},"max_stops":{"type":"integer","minimum":0,"uniqueKey":"criteria.max_stops","typeLabel":"integer"},"include_carriers":{"type":"array","items":{"type":"string","uniqueKey":"criteria.include_carriers.items.[INDEX]","typeLabel":"string"},"description":"IATA airline codes.","uniqueKey":"criteria.include_carriers","typeLabel":"string[]"},"exclude_carriers":{"type":"array","items":{"type":"string","uniqueKey":"criteria.exclude_carriers.items.[INDEX]","typeLabel":"string"},"description":"IATA airline codes.","uniqueKey":"criteria.exclude_carriers","typeLabel":"string[]"},"checked_bag_included":{"type":"boolean","uniqueKey":"criteria.checked_bag_included","typeLabel":"boolean"},"refundable_only":{"type":"boolean","uniqueKey":"criteria.refundable_only","typeLabel":"boolean"},"changeable_only":{"type":"boolean","uniqueKey":"criteria.changeable_only","typeLabel":"boolean"},"departure_time_range":{"type":"object","properties":{"earliest":{"oneOf":[{"type":"string","description":"HH:MM, local time.","example":"18:00","isRequired":true,"uniqueKey":"criteria.departure_time_range.earliest.oneOf.0","typeLabel":"string"},{"type":"null","description":"HH:MM, local time.","example":"18:00","isRequired":true,"uniqueKey":"criteria.departure_time_range.earliest.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.departure_time_range.earliest","typeLabel":"string | null"},"latest":{"oneOf":[{"type":"string","description":"HH:MM, local time.","example":null,"isRequired":true,"uniqueKey":"criteria.departure_time_range.latest.oneOf.0","typeLabel":"string"},{"type":"null","description":"HH:MM, local time.","example":null,"isRequired":true,"uniqueKey":"criteria.departure_time_range.latest.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.departure_time_range.latest","typeLabel":"string | null"}},"required":["earliest","latest"],"uniqueKey":"criteria.departure_time_range","typeLabel":"object"},"arrival_time_range":{"type":"object","properties":{"earliest":{"oneOf":[{"type":"string","description":"HH:MM, local time.","example":"18:00","isRequired":true,"uniqueKey":"criteria.arrival_time_range.earliest.oneOf.0","typeLabel":"string"},{"type":"null","description":"HH:MM, local time.","example":"18:00","isRequired":true,"uniqueKey":"criteria.arrival_time_range.earliest.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.arrival_time_range.earliest","typeLabel":"string | null"},"latest":{"oneOf":[{"type":"string","description":"HH:MM, local time.","example":null,"isRequired":true,"uniqueKey":"criteria.arrival_time_range.latest.oneOf.0","typeLabel":"string"},{"type":"null","description":"HH:MM, local time.","example":null,"isRequired":true,"uniqueKey":"criteria.arrival_time_range.latest.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.arrival_time_range.latest","typeLabel":"string | null"}},"required":["earliest","latest"],"uniqueKey":"criteria.arrival_time_range","typeLabel":"object"},"return_departure_time_range":{"type":"object","properties":{"earliest":{"oneOf":[{"type":"string","description":"HH:MM, local time.","example":"18:00","isRequired":true,"uniqueKey":"criteria.return_departure_time_range.earliest.oneOf.0","typeLabel":"string"},{"type":"null","description":"HH:MM, local time.","example":"18:00","isRequired":true,"uniqueKey":"criteria.return_departure_time_range.earliest.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.return_departure_time_range.earliest","typeLabel":"string | null"},"latest":{"oneOf":[{"type":"string","description":"HH:MM, local time.","example":null,"isRequired":true,"uniqueKey":"criteria.return_departure_time_range.latest.oneOf.0","typeLabel":"string"},{"type":"null","description":"HH:MM, local time.","example":null,"isRequired":true,"uniqueKey":"criteria.return_departure_time_range.latest.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.return_departure_time_range.latest","typeLabel":"string | null"}},"required":["earliest","latest"],"uniqueKey":"criteria.return_departure_time_range","typeLabel":"object"},"return_arrival_time_range":{"type":"object","properties":{"earliest":{"oneOf":[{"type":"string","description":"HH:MM, local time.","example":"18:00","isRequired":true,"uniqueKey":"criteria.return_arrival_time_range.earliest.oneOf.0","typeLabel":"string"},{"type":"null","description":"HH:MM, local time.","example":"18:00","isRequired":true,"uniqueKey":"criteria.return_arrival_time_range.earliest.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.return_arrival_time_range.earliest","typeLabel":"string | null"},"latest":{"oneOf":[{"type":"string","description":"HH:MM, local time.","example":null,"isRequired":true,"uniqueKey":"criteria.return_arrival_time_range.latest.oneOf.0","typeLabel":"string"},{"type":"null","description":"HH:MM, local time.","example":null,"isRequired":true,"uniqueKey":"criteria.return_arrival_time_range.latest.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"criteria.return_arrival_time_range.latest","typeLabel":"string | null"}},"required":["earliest","latest"],"uniqueKey":"criteria.return_arrival_time_range","typeLabel":"object"},"connection_time_max_minutes":{"type":"integer","uniqueKey":"criteria.connection_time_max_minutes","typeLabel":"integer"},"max_total_duration_minutes":{"type":"integer","uniqueKey":"criteria.max_total_duration_minutes","typeLabel":"integer"},"via_airports":{"type":"array","items":{"type":"string","uniqueKey":"criteria.via_airports.items.[INDEX]","typeLabel":"string"},"uniqueKey":"criteria.via_airports","typeLabel":"string[]"},"exclude_via_airports":{"type":"array","items":{"type":"string","uniqueKey":"criteria.exclude_via_airports.items.[INDEX]","typeLabel":"string"},"uniqueKey":"criteria.exclude_via_airports","typeLabel":"string[]"},"budget":{"type":"object","properties":{"amount":{"type":"number","isRequired":true,"uniqueKey":"criteria.budget.amount","typeLabel":"number"},"currency":{"type":"string","isRequired":true,"uniqueKey":"criteria.budget.currency","typeLabel":"string"},"scope":{"type":"string","enum":["total","per_person"],"isRequired":true,"uniqueKey":"criteria.budget.scope","typeLabel":"enum\u003cstring>"}},"required":["amount","currency","scope"],"uniqueKey":"criteria.budget","typeLabel":"object"},"priority":{"type":"string","enum":["price","duration","connections","schedule","balanced"],"description":"Only when the request says how to rank the options.","uniqueKey":"criteria.priority","typeLabel":"enum\u003cstring>"},"intent":{"type":"object","properties":{"user_intent":{"type":"string","isRequired":true,"uniqueKey":"criteria.intent.user_intent","typeLabel":"string"}},"required":["user_intent"],"description":"The request as understood, in English.","uniqueKey":"criteria.intent","typeLabel":"object"}},"required":["trip_type","origins","passengers","currency"],"description":"The search the request was understood as: `trip_type`, `origins`, `destinations`, `departure`, `return`, `passengers`, `priority` (only when the request says how to rank the options), `currency`, and the filters, in the `flight_search` field names. Each place of `origins` and `destinations` has `code`, `type`, `name` and `country_code`; `code` is null for a country, a region or a kind of trip, whose airports searched are on each option's `legs`. `departure` has `weekdays` when the request fixes the days of the week the trips leave on: `thursday` and `friday` for a long weekend, `friday` for a weekend. A field is absent when the request did not state it, except `passengers` and `currency`, which carry the values searched with.","uniqueKey":"criteria","typeLabel":"object"},"notes":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","example":"passengers_assumed_adults","isRequired":true,"uniqueKey":"notes.items.[INDEX].kind","typeLabel":"string"}},"required":["kind"],"uniqueKey":"notes.items.[INDEX]","typeLabel":"object"},"description":"Assumptions and adjustments made while understanding the request and searching, each with a `kind` and the fields of that kind, and an optional `text`.","uniqueKey":"notes","typeLabel":"object[]"},"options":{"type":"array","items":{"type":"object","properties":{"option_id":{"type":"string","description":"Identifies the option within the answer; `groups` name options by it.","example":"s1_1","isRequired":true,"uniqueKey":"options.items.[INDEX].option_id","typeLabel":"string"},"trip_type":{"type":"string","enum":["oneway","roundtrip","multi_city"],"isRequired":true,"uniqueKey":"options.items.[INDEX].trip_type","typeLabel":"enum\u003cstring>"},"legs":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","minimum":1,"description":"The leg number, from 1.","example":1,"isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].index","typeLabel":"integer"},"origin":{"type":"object","properties":{"code":{"type":"string","description":"IATA city or airport code.","example":"PAR","isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].origin.code","typeLabel":"string"},"name":{"type":"string","example":"Paris","isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].origin.name","typeLabel":"string"},"airport":{"type":"string","description":"IATA airport code.","example":"CDG","uniqueKey":"options.items.[INDEX].legs.items.[INDEX].origin.airport","typeLabel":"string"}},"required":["code","name"],"isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].origin","typeLabel":"object"},"destination":{"type":"object","properties":{"code":{"type":"string","description":"IATA city or airport code.","example":"PAR","isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].destination.code","typeLabel":"string"},"name":{"type":"string","example":"Paris","isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].destination.name","typeLabel":"string"},"airport":{"type":"string","description":"IATA airport code.","example":"CDG","uniqueKey":"options.items.[INDEX].legs.items.[INDEX].destination.airport","typeLabel":"string"}},"required":["code","name"],"isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].destination","typeLabel":"object"},"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2})?$","description":"Local time at the origin.","example":"2027-10-03T10:20:00","isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].departure","typeLabel":"string"},"arrival":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2})?$","description":"Local time at the destination.","example":"2027-10-03T10:20:00","uniqueKey":"options.items.[INDEX].legs.items.[INDEX].arrival","typeLabel":"string"},"duration_minutes":{"type":"integer","example":975,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].duration_minutes","typeLabel":"integer"},"stops":{"type":"integer","minimum":0,"example":1,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].stops","typeLabel":"integer"},"segments":{"type":"array","items":{"type":"object","properties":{"marketing_carrier":{"type":"string","description":"IATA code of the marketing airline.","example":"AF","isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].segments.items.[INDEX].marketing_carrier","typeLabel":"string"},"flight_number":{"type":"string","example":"AF1240","isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].segments.items.[INDEX].flight_number","typeLabel":"string"},"origin":{"type":"string","description":"IATA airport code.","example":"CDG","isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].segments.items.[INDEX].origin","typeLabel":"string"},"destination":{"type":"string","description":"IATA airport code.","example":"AMS","isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].segments.items.[INDEX].destination","typeLabel":"string"},"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2})?$","description":"Local time at `origin`.","example":"2027-10-03T10:20:00","isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].segments.items.[INDEX].departure","typeLabel":"string"},"arrival":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2})?$","description":"Local time at `destination`.","example":"2027-10-03T10:20:00","isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].segments.items.[INDEX].arrival","typeLabel":"string"},"duration_minutes":{"type":"integer","example":80,"isRequired":true,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].segments.items.[INDEX].duration_minutes","typeLabel":"integer"},"operating_carrier":{"type":"string","description":"IATA code of the operating airline, when it differs.","example":"KL","uniqueKey":"options.items.[INDEX].legs.items.[INDEX].segments.items.[INDEX].operating_carrier","typeLabel":"string"},"layover_minutes":{"type":"integer","description":"The connection time before the next segment; absent on the last one.","example":140,"uniqueKey":"options.items.[INDEX].legs.items.[INDEX].segments.items.[INDEX].layover_minutes","typeLabel":"integer"}},"required":["marketing_carrier","flight_number","origin","destination","departure","arrival","duration_minutes"],"description":"One flight of a leg.","uniqueKey":"options.items.[INDEX].legs.items.[INDEX].segments.items.[INDEX]","typeLabel":"object"},"description":"The flights of the leg.","uniqueKey":"options.items.[INDEX].legs.items.[INDEX].segments","typeLabel":"object[]"}},"required":["index","origin","destination","departure"],"description":"One direction of an itinerary: outbound, return, or one leg of a multi-city trip.","uniqueKey":"options.items.[INDEX].legs.items.[INDEX]","typeLabel":"object"},"description":"1 for one way, 2 for a round trip, 2 to 4 for a multi-city trip.","isRequired":true,"uniqueKey":"options.items.[INDEX].legs","typeLabel":"object[]"},"fares":{"type":"array","items":{"type":"object","properties":{"trip_item_token":{"type":"string","description":"Add this fare to a trip with `POST /v1/trip` `add_item`, before `expires_at`. After that the token is refused; use the token of a newer answer. \"Show me more\" in the same conversation searches expired options again.","example":"offer_7f3a9c21_1b2c3d4e:trip_item_0","isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].trip_item_token","typeLabel":"string"},"brand_name":{"type":"string","example":"Economy Light","isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].brand_name","typeLabel":"string"},"cabin_class":{"type":"string","example":"economy","isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].cabin_class","typeLabel":"string"},"total":{"type":"object","description":"The price for every traveller.","required":["amount","currency"],"properties":{"amount":{"type":"number","description":"The amount in major units of `currency` (e.g. 3412.5 for EUR 3,412.50).","example":3412,"isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].total.amount","typeLabel":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code.","example":"EUR","isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].total.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].total","typeLabel":"object"},"price_per_person":{"type":"object","description":"The price for one traveller.","required":["amount","currency"],"properties":{"amount":{"type":"number","description":"The amount in major units of `currency` (e.g. 3412.5 for EUR 3,412.50).","example":3412,"isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].price_per_person.amount","typeLabel":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code.","example":"EUR","isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].price_per_person.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].price_per_person","typeLabel":"object"},"priced_for":{"type":"object","properties":{"adults":{"type":"integer","minimum":0,"example":4,"isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].priced_for.adults","typeLabel":"integer"},"children":{"type":"integer","minimum":0,"example":0,"isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].priced_for.children","typeLabel":"integer"},"infants":{"type":"integer","minimum":0,"example":0,"isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].priced_for.infants","typeLabel":"integer"}},"required":["adults","children","infants"],"description":"The travellers `total` is for.","isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].priced_for","typeLabel":"object"},"expires_at":{"type":"string","format":"date-time","description":"Until when `trip_item_token` can be added to a trip (UTC): at most 75 minutes after the search, earlier when the fare's own deadline is.","example":"2026-10-27T10:58:12Z","isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].expires_at","typeLabel":"string\u003cdate-time>"},"refundable":{"type":"boolean","isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].refundable","typeLabel":"boolean"},"changeable":{"type":"boolean","isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].changeable","typeLabel":"boolean"},"checked_bag_included":{"type":"boolean","isRequired":true,"uniqueKey":"options.items.[INDEX].fares.items.[INDEX].checked_bag_included","typeLabel":"boolean"},"carry_on_baggage":{"type":"string","example":"1 × 12 kg","uniqueKey":"options.items.[INDEX].fares.items.[INDEX].carry_on_baggage","typeLabel":"string"},"included_baggage":{"type":"string","description":"The checked baggage included.","example":"1 × 23 kg","uniqueKey":"options.items.[INDEX].fares.items.[INDEX].included_baggage","typeLabel":"string"}},"required":["trip_item_token","brand_name","cabin_class","total","price_per_person","priced_for","expires_at","refundable","changeable","checked_bag_included"],"description":"A bookable fare of a live option, priced live for the travellers of the request.","uniqueKey":"options.items.[INDEX].fares.items.[INDEX]","typeLabel":"object"},"description":"The bookable fares.","uniqueKey":"options.items.[INDEX].fares","typeLabel":"object[]"},"score":{"type":"integer","minimum":0,"maximum":100,"description":"How well the option fits the request, 0–100, relative to this answer.","example":100,"uniqueKey":"options.items.[INDEX].score","typeLabel":"integer"},"why":{"type":"string","description":"One sentence on why the option is shown.","example":"Cheapest total for 4; one stop each way in Amsterdam.","uniqueKey":"options.items.[INDEX].why","typeLabel":"string"}},"required":["option_id","trip_type","legs"],"description":"One itinerary of an answer and its prices.","uniqueKey":"options.items.[INDEX]","typeLabel":"object"},"description":"Every itinerary of the answer, each priced live.","uniqueKey":"options","typeLabel":"object[]"},"groups":{"type":"array","items":{"oneOf":[{"type":"object","description":"How to present the options; groups name them by `option_id`. `shortlist`: the options for one route and dates. `per_destination`: one row per destination compared. Options always meet every filter of the request; a row without one says why in `empty_reason`.","required":["kind","group_id","title","route","dates","option_ids"],"properties":{"kind":{"type":"string","enum":["shortlist"],"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.kind","typeLabel":"enum\u003cstring>"},"group_id":{"type":"string","example":"g_1","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.group_id","typeLabel":"string"},"title":{"type":"string","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.title","typeLabel":"string"},"route":{"oneOf":[{"type":"object","properties":{"origin":{"type":"string","example":"PAR","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.route.oneOf.0.origin","typeLabel":"string"},"destination":{"type":"string","example":"TYO","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.route.oneOf.0.destination","typeLabel":"string"}},"required":["origin","destination"],"description":"Null for a multi-city trip.","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.route.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"origin":{"type":"string","example":"PAR"},"destination":{"type":"string","example":"TYO"}},"required":["origin","destination"],"description":"Null for a multi-city trip.","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.route.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.route","typeLabel":"object | null"},"dates":{"oneOf":[{"type":"object","properties":{"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.dates.oneOf.0.departure","typeLabel":"string"},"return":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03","uniqueKey":"groups.items.[INDEX].oneOf.0.dates.oneOf.0.return","typeLabel":"string"}},"required":["departure"],"description":"Null when the options differ in dates.","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.dates.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03"},"return":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03"}},"required":["departure"],"description":"Null when the options differ in dates.","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.dates.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.dates","typeLabel":"object | null"},"option_ids":{"type":"array","items":{"type":"string","uniqueKey":"groups.items.[INDEX].oneOf.0.option_ids.items.[INDEX]","typeLabel":"string"},"description":"The options, best first.","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.0.option_ids","typeLabel":"string[]"}},"uniqueKey":"groups.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"How to present the options; groups name them by `option_id`. `shortlist`: the options for one route and dates. `per_destination`: one row per destination compared. Options always meet every filter of the request; a row without one says why in `empty_reason`.","required":["kind","group_id","title","origin","rows"],"properties":{"kind":{"type":"string","enum":["per_destination"],"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.kind","typeLabel":"enum\u003cstring>"},"group_id":{"type":"string","example":"g_1","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.group_id","typeLabel":"string"},"title":{"type":"string","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.title","typeLabel":"string"},"origin":{"type":"object","properties":{"code":{"type":"string","description":"IATA city, airport or country code. For a region or a kind of trip, the first airport searched for it.","example":"PAR","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.origin.code","typeLabel":"string"},"type":{"type":"string","enum":["city","airport","country","region","theme"],"description":"region: an area of several countries or a part of one (\"the Caribbean\", \"Puglia\"). theme: a kind of trip named instead of a place (\"skiing at Christmas\"), searched at the destinations that fit it; `name` says which (\"ski destinations\").","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.origin.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","example":"Paris","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.origin.name","typeLabel":"string"},"country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2; null for a place in more than one country (a region such as the Caribbean, a kind of trip).","example":"FR","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.origin.country_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-1 alpha-2; null for a place in more than one country (a region such as the Caribbean, a kind of trip).","example":"FR","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.origin.country_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.origin.country_code","typeLabel":"string | null"},"alternates":{"type":"array","items":{"type":"string","uniqueKey":"groups.items.[INDEX].oneOf.1.origin.alternates.items.[INDEX]","typeLabel":"string"},"description":"Other airports searched for this place.","uniqueKey":"groups.items.[INDEX].oneOf.1.origin.alternates","typeLabel":"string[]"}},"required":["code","type","name","country_code"],"description":"A place the request was understood to name.","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.origin","typeLabel":"object"},"rows":{"type":"array","items":{"type":"object","properties":{"destination":{"type":"object","properties":{"code":{"type":"string","description":"IATA city, airport or country code. For a region or a kind of trip, the first airport searched for it.","example":"PAR","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].destination.code","typeLabel":"string"},"type":{"type":"string","enum":["city","airport","country","region","theme"],"description":"region: an area of several countries or a part of one (\"the Caribbean\", \"Puglia\"). theme: a kind of trip named instead of a place (\"skiing at Christmas\"), searched at the destinations that fit it; `name` says which (\"ski destinations\").","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].destination.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","example":"Paris","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].destination.name","typeLabel":"string"},"country_code":{"oneOf":[{"type":"string","description":"ISO 3166-1 alpha-2; null for a place in more than one country (a region such as the Caribbean, a kind of trip).","example":"FR","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].destination.country_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"ISO 3166-1 alpha-2; null for a place in more than one country (a region such as the Caribbean, a kind of trip).","example":"FR","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].destination.country_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].destination.country_code","typeLabel":"string | null"},"alternates":{"type":"array","items":{"type":"string","uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].destination.alternates.items.[INDEX]","typeLabel":"string"},"description":"Other airports searched for this place.","uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].destination.alternates","typeLabel":"string[]"}},"required":["code","type","name","country_code"],"description":"A place the request was understood to name.","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].destination","typeLabel":"object"},"dates":{"oneOf":[{"type":"object","properties":{"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].dates.oneOf.0.departure","typeLabel":"string"},"return":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03","uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].dates.oneOf.0.return","typeLabel":"string"}},"required":["departure"],"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].dates.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"departure":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03"},"return":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","example":"2027-10-03"}},"required":["departure"],"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].dates.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].dates","typeLabel":"object | null"},"option_id":{"oneOf":[{"type":"string","description":"The best live option for this destination; null when there is none.","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].option_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The best live option for this destination; null when there is none.","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].option_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].option_id","typeLabel":"string | null"},"live_cheapest_total":{"type":"object","description":"An amount of money and its currency.","required":["amount","currency"],"properties":{"amount":{"type":"number","description":"The amount in major units of `currency` (e.g. 3412.5 for EUR 3,412.50).","example":3412,"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].live_cheapest_total.amount","typeLabel":"number"},"currency":{"type":"string","pattern":"^[A-Z]{3}$","description":"ISO 4217 currency code.","example":"EUR","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].live_cheapest_total.currency","typeLabel":"string"}},"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].live_cheapest_total","typeLabel":"object"},"summary":{"type":"string","isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].summary","typeLabel":"string"},"empty_reason":{"type":"string","enum":["no_fare_within_filters","not_searched"],"description":"Why `option_id` is null.","uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX].empty_reason","typeLabel":"enum\u003cstring>"}},"required":["destination","dates","option_id","live_cheapest_total","summary"],"uniqueKey":"groups.items.[INDEX].oneOf.1.rows.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"groups.items.[INDEX].oneOf.1.rows","typeLabel":"object[]"}},"uniqueKey":"groups.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"groups.items.[INDEX]","typeLabel":"object"},"uniqueKey":"groups","typeLabel":"object[]"},"has_more":{"type":"boolean","description":"More options are available; ask for more in the same conversation.","uniqueKey":"has_more","typeLabel":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"description":"Why the task failed, when `status` is `failed`.","uniqueKey":"error","typeLabel":"object"},"superseded_by":{"type":"string","description":"The task that replaced this one, when `status` is `canceled`.","uniqueKey":"superseded_by","typeLabel":"string"},"charge":{"type":"object","properties":{"turn":{"type":"integer","description":"The message of the conversation this charge is for, from 1: the first message is 1 and each next message adds 1, whether it answers a question or asks for something new.","example":1,"isRequired":true,"uniqueKey":"charge.turn","typeLabel":"integer"},"llm_usd":{"type":"number","description":"The language-model part of the charge, in USD.","example":0.0195,"isRequired":true,"uniqueKey":"charge.llm_usd","typeLabel":"number"},"api_usd":{"type":"number","description":"The flight search part of the charge, in USD.","example":0.01,"isRequired":true,"uniqueKey":"charge.api_usd","typeLabel":"number"},"total_usd":{"type":"number","description":"`llm_usd` + `api_usd`.","example":0.0295,"isRequired":true,"uniqueKey":"charge.total_usd","typeLabel":"number"},"currency":{"type":"string","enum":["USD"],"isRequired":true,"uniqueKey":"charge.currency","typeLabel":"enum\u003cstring>"}},"required":["turn","llm_usd","api_usd","total_usd","currency"],"description":"What a turn was charged to the organization's balance, once the turn has ended (`completed`, `input_required`, `failed` or `canceled`); every amount is 0 when the turn cost nothing. Absent while the task is `working`. Carried on JSON answers only: an event stream does not carry it, so read it with `GET /v1/flight_ai_search/tasks/{task_id}`.","uniqueKey":"charge","typeLabel":"object"}},"required":["context_id","task_id","status"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"context_id":"ctx_example","task_id":"atk_example","status":"working","message":"Three round-trip options Paris–Tokyo, 3–17 Oct 2027, for 4 adults with at most one stop.","question":"origin","question_options":[{"value":"SJO","label":"San José, Costa Rica","detail":"1 airport"}],"criteria":{"trip_type":"oneway","origins":[{"code":"PAR","type":"city","name":"Paris","country_code":"FR"}],"passengers":{"adults":4,"children":0,"infants":0},"currency":"USD","destinations":[{"code":"PAR","type":"city","name":"Paris","country_code":"FR"}],"legs":[{"origin":"\u003cstring>","destination":"\u003cstring>","departure":"2027-10-03"}],"departure":{"date":"2027-10-03","window":{"start":"2027-10-03","end":"2027-10-03"},"flexibility_days":3,"weekdays":["monday"]},"return":{"date":"2027-10-03","window":{"start":"2027-10-03","end":"2027-10-03"},"flexibility_days":3,"weekdays":["monday"]},"stay_days":123,"cabin_class":"economy","max_stops":1,"include_carriers":["\u003cstring>"],"exclude_carriers":["\u003cstring>"],"checked_bag_included":true,"refundable_only":true,"changeable_only":true,"departure_time_range":{"earliest":"18:00","latest":null},"arrival_time_range":{"earliest":"18:00","latest":null},"return_departure_time_range":{"earliest":"18:00","latest":null},"return_arrival_time_range":{"earliest":"18:00","latest":null},"connection_time_max_minutes":123,"max_total_duration_minutes":123,"via_airports":["\u003cstring>"],"exclude_via_airports":["\u003cstring>"],"budget":{"amount":123,"currency":"\u003cstring>","scope":"total"},"priority":"price","intent":{"user_intent":"\u003cstring>"}},"notes":[{"kind":"passengers_assumed_adults"}],"options":[{"option_id":"s1_1","trip_type":"oneway","legs":[{"index":1,"origin":{"code":"PAR","name":"Paris","airport":"CDG"},"destination":{"code":"PAR","name":"Paris","airport":"CDG"},"departure":"2027-10-03T10:20:00","arrival":"2027-10-03T10:20:00","duration_minutes":975,"stops":1,"segments":[{"marketing_carrier":"AF","flight_number":"AF1240","origin":"CDG","destination":"AMS","departure":"2027-10-03T10:20:00","arrival":"2027-10-03T10:20:00","duration_minutes":80,"operating_carrier":"KL","layover_minutes":140}]}],"fares":[{"trip_item_token":"offer_7f3a9c21_1b2c3d4e:trip_item_0","brand_name":"Economy Light","cabin_class":"economy","total":{"amount":3412,"currency":"EUR"},"price_per_person":{"amount":3412,"currency":"EUR"},"priced_for":{"adults":4,"children":0,"infants":0},"expires_at":"2026-10-27T10:58:12Z","refundable":true,"changeable":true,"checked_bag_included":true,"carry_on_baggage":"1 × 12 kg","included_baggage":"1 × 23 kg"}],"score":100,"why":"Cheapest total for 4; one stop each way in Amsterdam."}],"groups":[{"kind":"shortlist","group_id":"g_1","title":"\u003cstring>","route":{"origin":"PAR","destination":"TYO"},"dates":{"departure":"2027-10-03","return":"2027-10-03"},"option_ids":["\u003cstring>"]}],"has_more":true,"error":{"code":"\u003cstring>","message":"\u003cstring>"},"superseded_by":"\u003cstring>","charge":{"turn":1,"llm_usd":0.0195,"api_usd":0.01,"total_usd":0.0295,"currency":"USD"}}}},"exampleType":"generated"}},"exampleType":"generated"},"63c2f8a0-404a-401b-ac03-38de0f5f7dd6":{"description":"Bad request: an invalid header, such as a reserved `X-End-User-Id` (`user_…`, `org_…`).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["INVALID_SEGMENTS_TO_EXCHANGE","PARTIAL_EXCHANGE_UNSUPPORTED","LEG_ALREADY_DEPARTED","DEPARTURE_DATE_IN_PAST","LEG_DATES_OUT_OF_ORDER","INVALID_EXCHANGE_REQUEST","NOT_EXCHANGEABLE","CREDENTIAL_FORMAT_INVALID","PAYMENT_TYPE_NOT_ENABLED","PAYMENT_CREDENTIAL_INVALID","TRIP_OWNED_BY_OTHER_PAYMENT","IDEMPOTENCY_KEY_REUSED","ATTEMPT_IN_PROGRESS","ATTEMPT_TERMINAL","TEMPORARILY_UNAVAILABLE","AUTH_REQUIRED","PAYMENT_REQUIRED","RATE_LIMITED","BAD_REQUEST","FORBIDDEN","NOT_FOUND","CONFLICT","GONE","QUOTE_PENDING","QUOTE_EXPIRED","TRIP_EXPIRED","TRIP_STATE_CONFLICT","OFFER_EXPIRED","OFFER_UNAVAILABLE","MISSING_CUSTOMER_DETAILS","INVALID_PHONE_NUMBER","INVALID_FLIGHT_NUMBER","CURRENCY_UNSUPPORTED","HOTEL_NAME_LOW_CONFIDENCE","DESTINATION_LOW_CONFIDENCE","UPSTREAM_REJECTED","UPSTREAM_UNAVAILABLE","UPSTREAM_TIMEOUT","UPSTREAM_ERROR","INTERNAL"],"description":"What went wrong, as a stable machine-readable code. This is a closed set — branch on it rather than on `message`, which is prose and may change. New codes arrive in a minor version, so treat an unknown one as its HTTP status. A code can also stop being emitted: it leaves this set in a minor version, named in the changelog, and a branch you wrote for it goes unreached rather than wrong.","example":"BAD_REQUEST","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, in prose. These codes always carry the same message, and it never includes text from a supplier: `RATE_LIMITED` — \"Too many requests. Retry after the Retry-After delay.\"; `OFFER_EXPIRED` — \"This offer has expired. Search again.\"; `OFFER_UNAVAILABLE` — \"This offer is no longer available. Search again.\"; `UPSTREAM_REJECTED` — \"The request was declined for this offer. Try another offer.\"; `UPSTREAM_UNAVAILABLE` — \"The service is temporarily unavailable. Retry after the Retry-After delay.\"; `UPSTREAM_TIMEOUT` — \"The request timed out before a result was available. Retry the request.\"; `UPSTREAM_ERROR` — \"The request could not be completed.\".","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","uniqueKey":"error.doc_url","typeLabel":"string"},"field":{"type":"string","description":"On a 400 `BAD_REQUEST` that names one refused input: the path of that field in your request, e.g. `selections[1].quantity` for the second selection of a `select_ancillaries` call. Absent when the refusal names no single field.","example":"selections[1].quantity","uniqueKey":"error.field","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"BAD_REQUEST","message":"X-End-User-Id must be an opaque, tenant-scoped id; ids with a reserved prefix, such as user_ or org_, are not allowed."}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"BAD_REQUEST","message":"X-End-User-Id must be an opaque, tenant-scoped id; ids with a reserved prefix, such as user_ or org_, are not allowed."}}}},"exampleType":"examples"}},"exampleType":"examples"},"52323c9a-a252-4949-8a7b-e18d98a64ff7":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["INVALID_SEGMENTS_TO_EXCHANGE","PARTIAL_EXCHANGE_UNSUPPORTED","LEG_ALREADY_DEPARTED","DEPARTURE_DATE_IN_PAST","LEG_DATES_OUT_OF_ORDER","INVALID_EXCHANGE_REQUEST","NOT_EXCHANGEABLE","CREDENTIAL_FORMAT_INVALID","PAYMENT_TYPE_NOT_ENABLED","PAYMENT_CREDENTIAL_INVALID","TRIP_OWNED_BY_OTHER_PAYMENT","IDEMPOTENCY_KEY_REUSED","ATTEMPT_IN_PROGRESS","ATTEMPT_TERMINAL","TEMPORARILY_UNAVAILABLE","AUTH_REQUIRED","PAYMENT_REQUIRED","RATE_LIMITED","BAD_REQUEST","FORBIDDEN","NOT_FOUND","CONFLICT","GONE","QUOTE_PENDING","QUOTE_EXPIRED","TRIP_EXPIRED","TRIP_STATE_CONFLICT","OFFER_EXPIRED","OFFER_UNAVAILABLE","MISSING_CUSTOMER_DETAILS","INVALID_PHONE_NUMBER","INVALID_FLIGHT_NUMBER","CURRENCY_UNSUPPORTED","HOTEL_NAME_LOW_CONFIDENCE","DESTINATION_LOW_CONFIDENCE","UPSTREAM_REJECTED","UPSTREAM_UNAVAILABLE","UPSTREAM_TIMEOUT","UPSTREAM_ERROR","INTERNAL"],"description":"What went wrong, as a stable machine-readable code. This is a closed set — branch on it rather than on `message`, which is prose and may change. New codes arrive in a minor version, so treat an unknown one as its HTTP status. A code can also stop being emitted: it leaves this set in a minor version, named in the changelog, and a branch you wrote for it goes unreached rather than wrong.","example":"BAD_REQUEST","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, in prose. These codes always carry the same message, and it never includes text from a supplier: `RATE_LIMITED` — \"Too many requests. Retry after the Retry-After delay.\"; `OFFER_EXPIRED` — \"This offer has expired. Search again.\"; `OFFER_UNAVAILABLE` — \"This offer is no longer available. Search again.\"; `UPSTREAM_REJECTED` — \"The request was declined for this offer. Try another offer.\"; `UPSTREAM_UNAVAILABLE` — \"The service is temporarily unavailable. Retry after the Retry-After delay.\"; `UPSTREAM_TIMEOUT` — \"The request timed out before a result was available. Retry the request.\"; `UPSTREAM_ERROR` — \"The request could not be completed.\".","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","uniqueKey":"error.doc_url","typeLabel":"string"},"field":{"type":"string","description":"On a 400 `BAD_REQUEST` that names one refused input: the path of that field in your request, e.g. `selections[1].quantity` for the second selection of a `select_ancillaries` call. Absent when the refusal names no single field.","example":"selections[1].quantity","uniqueKey":"error.field","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"AUTH_REQUIRED","message":"Invalid or expired API key.","doc_url":"https://docs.gojinko.com/authentication/api-keys"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"AUTH_REQUIRED","message":"Invalid or expired API key.","doc_url":"https://docs.gojinko.com/authentication/api-keys"}}}},"exampleType":"examples"}},"exampleType":"examples"},"b8e0ba6a-4a40-4b53-af5e-92ad0d59f4c4":{"description":"The key is valid but is not a tenant API key (`jnk_t_…`), is not granted the `search_live` scope, or Travel AI search is not enabled for this account. **`FORBIDDEN`** — The credential is valid, and this request is refused anyway. Do not rotate the key — it is working. Check that it is entitled to this operation, and on this environment.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["INVALID_SEGMENTS_TO_EXCHANGE","PARTIAL_EXCHANGE_UNSUPPORTED","LEG_ALREADY_DEPARTED","DEPARTURE_DATE_IN_PAST","LEG_DATES_OUT_OF_ORDER","INVALID_EXCHANGE_REQUEST","NOT_EXCHANGEABLE","CREDENTIAL_FORMAT_INVALID","PAYMENT_TYPE_NOT_ENABLED","PAYMENT_CREDENTIAL_INVALID","TRIP_OWNED_BY_OTHER_PAYMENT","IDEMPOTENCY_KEY_REUSED","ATTEMPT_IN_PROGRESS","ATTEMPT_TERMINAL","TEMPORARILY_UNAVAILABLE","AUTH_REQUIRED","PAYMENT_REQUIRED","RATE_LIMITED","BAD_REQUEST","FORBIDDEN","NOT_FOUND","CONFLICT","GONE","QUOTE_PENDING","QUOTE_EXPIRED","TRIP_EXPIRED","TRIP_STATE_CONFLICT","OFFER_EXPIRED","OFFER_UNAVAILABLE","MISSING_CUSTOMER_DETAILS","INVALID_PHONE_NUMBER","INVALID_FLIGHT_NUMBER","CURRENCY_UNSUPPORTED","HOTEL_NAME_LOW_CONFIDENCE","DESTINATION_LOW_CONFIDENCE","UPSTREAM_REJECTED","UPSTREAM_UNAVAILABLE","UPSTREAM_TIMEOUT","UPSTREAM_ERROR","INTERNAL"],"description":"What went wrong, as a stable machine-readable code. This is a closed set — branch on it rather than on `message`, which is prose and may change. New codes arrive in a minor version, so treat an unknown one as its HTTP status. A code can also stop being emitted: it leaves this set in a minor version, named in the changelog, and a branch you wrote for it goes unreached rather than wrong.","example":"BAD_REQUEST","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, in prose. These codes always carry the same message, and it never includes text from a supplier: `RATE_LIMITED` — \"Too many requests. Retry after the Retry-After delay.\"; `OFFER_EXPIRED` — \"This offer has expired. Search again.\"; `OFFER_UNAVAILABLE` — \"This offer is no longer available. Search again.\"; `UPSTREAM_REJECTED` — \"The request was declined for this offer. Try another offer.\"; `UPSTREAM_UNAVAILABLE` — \"The service is temporarily unavailable. Retry after the Retry-After delay.\"; `UPSTREAM_TIMEOUT` — \"The request timed out before a result was available. Retry the request.\"; `UPSTREAM_ERROR` — \"The request could not be completed.\".","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","uniqueKey":"error.doc_url","typeLabel":"string"},"field":{"type":"string","description":"On a 400 `BAD_REQUEST` that names one refused input: the path of that field in your request, e.g. `selections[1].quantity` for the second selection of a `select_ancillaries` call. Absent when the refusal names no single field.","example":"selections[1].quantity","uniqueKey":"error.field","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"FORBIDDEN","message":"This API key is not granted the \"search_live\" scope required by this endpoint"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"FORBIDDEN","message":"This API key is not granted the \"search_live\" scope required by this endpoint"}}}},"exampleType":"examples"}},"exampleType":"examples"},"80557bed-a6f4-4cfa-a7fc-31d6df51567a":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["INVALID_SEGMENTS_TO_EXCHANGE","PARTIAL_EXCHANGE_UNSUPPORTED","LEG_ALREADY_DEPARTED","DEPARTURE_DATE_IN_PAST","LEG_DATES_OUT_OF_ORDER","INVALID_EXCHANGE_REQUEST","NOT_EXCHANGEABLE","CREDENTIAL_FORMAT_INVALID","PAYMENT_TYPE_NOT_ENABLED","PAYMENT_CREDENTIAL_INVALID","TRIP_OWNED_BY_OTHER_PAYMENT","IDEMPOTENCY_KEY_REUSED","ATTEMPT_IN_PROGRESS","ATTEMPT_TERMINAL","TEMPORARILY_UNAVAILABLE","AUTH_REQUIRED","PAYMENT_REQUIRED","RATE_LIMITED","BAD_REQUEST","FORBIDDEN","NOT_FOUND","CONFLICT","GONE","QUOTE_PENDING","QUOTE_EXPIRED","TRIP_EXPIRED","TRIP_STATE_CONFLICT","OFFER_EXPIRED","OFFER_UNAVAILABLE","MISSING_CUSTOMER_DETAILS","INVALID_PHONE_NUMBER","INVALID_FLIGHT_NUMBER","CURRENCY_UNSUPPORTED","HOTEL_NAME_LOW_CONFIDENCE","DESTINATION_LOW_CONFIDENCE","UPSTREAM_REJECTED","UPSTREAM_UNAVAILABLE","UPSTREAM_TIMEOUT","UPSTREAM_ERROR","INTERNAL"],"description":"What went wrong, as a stable machine-readable code. This is a closed set — branch on it rather than on `message`, which is prose and may change. New codes arrive in a minor version, so treat an unknown one as its HTTP status. A code can also stop being emitted: it leaves this set in a minor version, named in the changelog, and a branch you wrote for it goes unreached rather than wrong.","example":"BAD_REQUEST","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, in prose. These codes always carry the same message, and it never includes text from a supplier: `RATE_LIMITED` — \"Too many requests. Retry after the Retry-After delay.\"; `OFFER_EXPIRED` — \"This offer has expired. Search again.\"; `OFFER_UNAVAILABLE` — \"This offer is no longer available. Search again.\"; `UPSTREAM_REJECTED` — \"The request was declined for this offer. Try another offer.\"; `UPSTREAM_UNAVAILABLE` — \"The service is temporarily unavailable. Retry after the Retry-After delay.\"; `UPSTREAM_TIMEOUT` — \"The request timed out before a result was available. Retry the request.\"; `UPSTREAM_ERROR` — \"The request could not be completed.\".","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","uniqueKey":"error.doc_url","typeLabel":"string"},"field":{"type":"string","description":"On a 400 `BAD_REQUEST` that names one refused input: the path of that field in your request, e.g. `selections[1].quantity` for the second selection of a `select_ancillaries` call. Absent when the refusal names no single field.","example":"selections[1].quantity","uniqueKey":"error.field","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"NOT_FOUND","message":"Resource not found.","doc_url":"https://docs.gojinko.com/concepts/errors"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"NOT_FOUND","message":"Resource not found.","doc_url":"https://docs.gojinko.com/concepts/errors"}}}},"exampleType":"examples"}},"exampleType":"examples"},"ff8911db-04ef-447d-8c9a-750e261ae153":{"description":"The operation conflicts with the current state of the resource","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["INVALID_SEGMENTS_TO_EXCHANGE","PARTIAL_EXCHANGE_UNSUPPORTED","LEG_ALREADY_DEPARTED","DEPARTURE_DATE_IN_PAST","LEG_DATES_OUT_OF_ORDER","INVALID_EXCHANGE_REQUEST","NOT_EXCHANGEABLE","CREDENTIAL_FORMAT_INVALID","PAYMENT_TYPE_NOT_ENABLED","PAYMENT_CREDENTIAL_INVALID","TRIP_OWNED_BY_OTHER_PAYMENT","IDEMPOTENCY_KEY_REUSED","ATTEMPT_IN_PROGRESS","ATTEMPT_TERMINAL","TEMPORARILY_UNAVAILABLE","AUTH_REQUIRED","PAYMENT_REQUIRED","RATE_LIMITED","BAD_REQUEST","FORBIDDEN","NOT_FOUND","CONFLICT","GONE","QUOTE_PENDING","QUOTE_EXPIRED","TRIP_EXPIRED","TRIP_STATE_CONFLICT","OFFER_EXPIRED","OFFER_UNAVAILABLE","MISSING_CUSTOMER_DETAILS","INVALID_PHONE_NUMBER","INVALID_FLIGHT_NUMBER","CURRENCY_UNSUPPORTED","HOTEL_NAME_LOW_CONFIDENCE","DESTINATION_LOW_CONFIDENCE","UPSTREAM_REJECTED","UPSTREAM_UNAVAILABLE","UPSTREAM_TIMEOUT","UPSTREAM_ERROR","INTERNAL"],"description":"What went wrong, as a stable machine-readable code. This is a closed set — branch on it rather than on `message`, which is prose and may change. New codes arrive in a minor version, so treat an unknown one as its HTTP status. A code can also stop being emitted: it leaves this set in a minor version, named in the changelog, and a branch you wrote for it goes unreached rather than wrong.","example":"BAD_REQUEST","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, in prose. These codes always carry the same message, and it never includes text from a supplier: `RATE_LIMITED` — \"Too many requests. Retry after the Retry-After delay.\"; `OFFER_EXPIRED` — \"This offer has expired. Search again.\"; `OFFER_UNAVAILABLE` — \"This offer is no longer available. Search again.\"; `UPSTREAM_REJECTED` — \"The request was declined for this offer. Try another offer.\"; `UPSTREAM_UNAVAILABLE` — \"The service is temporarily unavailable. Retry after the Retry-After delay.\"; `UPSTREAM_TIMEOUT` — \"The request timed out before a result was available. Retry the request.\"; `UPSTREAM_ERROR` — \"The request could not be completed.\".","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","uniqueKey":"error.doc_url","typeLabel":"string"},"field":{"type":"string","description":"On a 400 `BAD_REQUEST` that names one refused input: the path of that field in your request, e.g. `selections[1].quantity` for the second selection of a `select_ancillaries` call. Absent when the refusal names no single field.","example":"selections[1].quantity","uniqueKey":"error.field","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"CONFLICT","message":"The operation conflicts with the current state of the resource.","doc_url":"https://docs.gojinko.com/concepts/errors"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"CONFLICT","message":"The operation conflicts with the current state of the resource.","doc_url":"https://docs.gojinko.com/concepts/errors"}}}},"exampleType":"examples"}},"exampleType":"examples"},"eba962d1-91a0-45e5-a8aa-ae6d8379ae4e":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["INVALID_SEGMENTS_TO_EXCHANGE","PARTIAL_EXCHANGE_UNSUPPORTED","LEG_ALREADY_DEPARTED","DEPARTURE_DATE_IN_PAST","LEG_DATES_OUT_OF_ORDER","INVALID_EXCHANGE_REQUEST","NOT_EXCHANGEABLE","CREDENTIAL_FORMAT_INVALID","PAYMENT_TYPE_NOT_ENABLED","PAYMENT_CREDENTIAL_INVALID","TRIP_OWNED_BY_OTHER_PAYMENT","IDEMPOTENCY_KEY_REUSED","ATTEMPT_IN_PROGRESS","ATTEMPT_TERMINAL","TEMPORARILY_UNAVAILABLE","AUTH_REQUIRED","PAYMENT_REQUIRED","RATE_LIMITED","BAD_REQUEST","FORBIDDEN","NOT_FOUND","CONFLICT","GONE","QUOTE_PENDING","QUOTE_EXPIRED","TRIP_EXPIRED","TRIP_STATE_CONFLICT","OFFER_EXPIRED","OFFER_UNAVAILABLE","MISSING_CUSTOMER_DETAILS","INVALID_PHONE_NUMBER","INVALID_FLIGHT_NUMBER","CURRENCY_UNSUPPORTED","HOTEL_NAME_LOW_CONFIDENCE","DESTINATION_LOW_CONFIDENCE","UPSTREAM_REJECTED","UPSTREAM_UNAVAILABLE","UPSTREAM_TIMEOUT","UPSTREAM_ERROR","INTERNAL"],"description":"What went wrong, as a stable machine-readable code. This is a closed set — branch on it rather than on `message`, which is prose and may change. New codes arrive in a minor version, so treat an unknown one as its HTTP status. A code can also stop being emitted: it leaves this set in a minor version, named in the changelog, and a branch you wrote for it goes unreached rather than wrong.","example":"BAD_REQUEST","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, in prose. These codes always carry the same message, and it never includes text from a supplier: `RATE_LIMITED` — \"Too many requests. Retry after the Retry-After delay.\"; `OFFER_EXPIRED` — \"This offer has expired. Search again.\"; `OFFER_UNAVAILABLE` — \"This offer is no longer available. Search again.\"; `UPSTREAM_REJECTED` — \"The request was declined for this offer. Try another offer.\"; `UPSTREAM_UNAVAILABLE` — \"The service is temporarily unavailable. Retry after the Retry-After delay.\"; `UPSTREAM_TIMEOUT` — \"The request timed out before a result was available. Retry the request.\"; `UPSTREAM_ERROR` — \"The request could not be completed.\".","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","uniqueKey":"error.doc_url","typeLabel":"string"},"field":{"type":"string","description":"On a 400 `BAD_REQUEST` that names one refused input: the path of that field in your request, e.g. `selections[1].quantity` for the second selection of a `select_ancillaries` call. Absent when the refusal names no single field.","example":"selections[1].quantity","uniqueKey":"error.field","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"BAD_REQUEST","message":"A required field is missing or invalid.","doc_url":"https://docs.gojinko.com/concepts/errors"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"BAD_REQUEST","message":"A required field is missing or invalid.","doc_url":"https://docs.gojinko.com/concepts/errors"}}}},"exampleType":"examples"}},"exampleType":"examples"},"0b6f4951-418c-4478-9c06-62552d30b0bd":{"description":"Rate limit or quota exceeded","headers":{"Retry-After":{"description":"Seconds to wait before retrying. Absent when no interval applies.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["INVALID_SEGMENTS_TO_EXCHANGE","PARTIAL_EXCHANGE_UNSUPPORTED","LEG_ALREADY_DEPARTED","DEPARTURE_DATE_IN_PAST","LEG_DATES_OUT_OF_ORDER","INVALID_EXCHANGE_REQUEST","NOT_EXCHANGEABLE","CREDENTIAL_FORMAT_INVALID","PAYMENT_TYPE_NOT_ENABLED","PAYMENT_CREDENTIAL_INVALID","TRIP_OWNED_BY_OTHER_PAYMENT","IDEMPOTENCY_KEY_REUSED","ATTEMPT_IN_PROGRESS","ATTEMPT_TERMINAL","TEMPORARILY_UNAVAILABLE","AUTH_REQUIRED","PAYMENT_REQUIRED","RATE_LIMITED","BAD_REQUEST","FORBIDDEN","NOT_FOUND","CONFLICT","GONE","QUOTE_PENDING","QUOTE_EXPIRED","TRIP_EXPIRED","TRIP_STATE_CONFLICT","OFFER_EXPIRED","OFFER_UNAVAILABLE","MISSING_CUSTOMER_DETAILS","INVALID_PHONE_NUMBER","INVALID_FLIGHT_NUMBER","CURRENCY_UNSUPPORTED","HOTEL_NAME_LOW_CONFIDENCE","DESTINATION_LOW_CONFIDENCE","UPSTREAM_REJECTED","UPSTREAM_UNAVAILABLE","UPSTREAM_TIMEOUT","UPSTREAM_ERROR","INTERNAL"],"description":"What went wrong, as a stable machine-readable code. This is a closed set — branch on it rather than on `message`, which is prose and may change. New codes arrive in a minor version, so treat an unknown one as its HTTP status. A code can also stop being emitted: it leaves this set in a minor version, named in the changelog, and a branch you wrote for it goes unreached rather than wrong.","example":"BAD_REQUEST","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, in prose. These codes always carry the same message, and it never includes text from a supplier: `RATE_LIMITED` — \"Too many requests. Retry after the Retry-After delay.\"; `OFFER_EXPIRED` — \"This offer has expired. Search again.\"; `OFFER_UNAVAILABLE` — \"This offer is no longer available. Search again.\"; `UPSTREAM_REJECTED` — \"The request was declined for this offer. Try another offer.\"; `UPSTREAM_UNAVAILABLE` — \"The service is temporarily unavailable. Retry after the Retry-After delay.\"; `UPSTREAM_TIMEOUT` — \"The request timed out before a result was available. Retry the request.\"; `UPSTREAM_ERROR` — \"The request could not be completed.\".","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","uniqueKey":"error.doc_url","typeLabel":"string"},"field":{"type":"string","description":"On a 400 `BAD_REQUEST` that names one refused input: the path of that field in your request, e.g. `selections[1].quantity` for the second selection of a `select_ancillaries` call. Absent when the refusal names no single field.","example":"selections[1].quantity","uniqueKey":"error.field","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"RATE_LIMITED","message":"Too many requests. Retry after the Retry-After delay.","doc_url":"https://docs.gojinko.com/concepts/errors"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"RATE_LIMITED","message":"Too many requests. Retry after the Retry-After delay.","doc_url":"https://docs.gojinko.com/concepts/errors"}}}},"exampleType":"examples"}},"exampleType":"examples"},"e32d8c0b-84a9-44b0-b623-196d69e8e8b4":{"description":"The travel provider rejected the request, or an upstream call failed","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["INVALID_SEGMENTS_TO_EXCHANGE","PARTIAL_EXCHANGE_UNSUPPORTED","LEG_ALREADY_DEPARTED","DEPARTURE_DATE_IN_PAST","LEG_DATES_OUT_OF_ORDER","INVALID_EXCHANGE_REQUEST","NOT_EXCHANGEABLE","CREDENTIAL_FORMAT_INVALID","PAYMENT_TYPE_NOT_ENABLED","PAYMENT_CREDENTIAL_INVALID","TRIP_OWNED_BY_OTHER_PAYMENT","IDEMPOTENCY_KEY_REUSED","ATTEMPT_IN_PROGRESS","ATTEMPT_TERMINAL","TEMPORARILY_UNAVAILABLE","AUTH_REQUIRED","PAYMENT_REQUIRED","RATE_LIMITED","BAD_REQUEST","FORBIDDEN","NOT_FOUND","CONFLICT","GONE","QUOTE_PENDING","QUOTE_EXPIRED","TRIP_EXPIRED","TRIP_STATE_CONFLICT","OFFER_EXPIRED","OFFER_UNAVAILABLE","MISSING_CUSTOMER_DETAILS","INVALID_PHONE_NUMBER","INVALID_FLIGHT_NUMBER","CURRENCY_UNSUPPORTED","HOTEL_NAME_LOW_CONFIDENCE","DESTINATION_LOW_CONFIDENCE","UPSTREAM_REJECTED","UPSTREAM_UNAVAILABLE","UPSTREAM_TIMEOUT","UPSTREAM_ERROR","INTERNAL"],"description":"What went wrong, as a stable machine-readable code. This is a closed set — branch on it rather than on `message`, which is prose and may change. New codes arrive in a minor version, so treat an unknown one as its HTTP status. A code can also stop being emitted: it leaves this set in a minor version, named in the changelog, and a branch you wrote for it goes unreached rather than wrong.","example":"BAD_REQUEST","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, in prose. These codes always carry the same message, and it never includes text from a supplier: `RATE_LIMITED` — \"Too many requests. Retry after the Retry-After delay.\"; `OFFER_EXPIRED` — \"This offer has expired. Search again.\"; `OFFER_UNAVAILABLE` — \"This offer is no longer available. Search again.\"; `UPSTREAM_REJECTED` — \"The request was declined for this offer. Try another offer.\"; `UPSTREAM_UNAVAILABLE` — \"The service is temporarily unavailable. Retry after the Retry-After delay.\"; `UPSTREAM_TIMEOUT` — \"The request timed out before a result was available. Retry the request.\"; `UPSTREAM_ERROR` — \"The request could not be completed.\".","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","uniqueKey":"error.doc_url","typeLabel":"string"},"field":{"type":"string","description":"On a 400 `BAD_REQUEST` that names one refused input: the path of that field in your request, e.g. `selections[1].quantity` for the second selection of a `select_ancillaries` call. Absent when the refusal names no single field.","example":"selections[1].quantity","uniqueKey":"error.field","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"UPSTREAM_REJECTED","message":"The request was declined for this offer. Try another offer.","doc_url":"https://docs.gojinko.com/concepts/errors"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UPSTREAM_REJECTED","message":"The request was declined for this offer. Try another offer.","doc_url":"https://docs.gojinko.com/concepts/errors"}}}},"exampleType":"examples"}},"exampleType":"examples"},"9aa92a41-e63a-472f-8d89-dd8bb79ece46":{"description":"No travel provider can serve the request right now","headers":{"Retry-After":{"description":"Seconds to wait before retrying. Absent when no interval applies.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["INVALID_SEGMENTS_TO_EXCHANGE","PARTIAL_EXCHANGE_UNSUPPORTED","LEG_ALREADY_DEPARTED","DEPARTURE_DATE_IN_PAST","LEG_DATES_OUT_OF_ORDER","INVALID_EXCHANGE_REQUEST","NOT_EXCHANGEABLE","CREDENTIAL_FORMAT_INVALID","PAYMENT_TYPE_NOT_ENABLED","PAYMENT_CREDENTIAL_INVALID","TRIP_OWNED_BY_OTHER_PAYMENT","IDEMPOTENCY_KEY_REUSED","ATTEMPT_IN_PROGRESS","ATTEMPT_TERMINAL","TEMPORARILY_UNAVAILABLE","AUTH_REQUIRED","PAYMENT_REQUIRED","RATE_LIMITED","BAD_REQUEST","FORBIDDEN","NOT_FOUND","CONFLICT","GONE","QUOTE_PENDING","QUOTE_EXPIRED","TRIP_EXPIRED","TRIP_STATE_CONFLICT","OFFER_EXPIRED","OFFER_UNAVAILABLE","MISSING_CUSTOMER_DETAILS","INVALID_PHONE_NUMBER","INVALID_FLIGHT_NUMBER","CURRENCY_UNSUPPORTED","HOTEL_NAME_LOW_CONFIDENCE","DESTINATION_LOW_CONFIDENCE","UPSTREAM_REJECTED","UPSTREAM_UNAVAILABLE","UPSTREAM_TIMEOUT","UPSTREAM_ERROR","INTERNAL"],"description":"What went wrong, as a stable machine-readable code. This is a closed set — branch on it rather than on `message`, which is prose and may change. New codes arrive in a minor version, so treat an unknown one as its HTTP status. A code can also stop being emitted: it leaves this set in a minor version, named in the changelog, and a branch you wrote for it goes unreached rather than wrong.","example":"BAD_REQUEST","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, in prose. These codes always carry the same message, and it never includes text from a supplier: `RATE_LIMITED` — \"Too many requests. Retry after the Retry-After delay.\"; `OFFER_EXPIRED` — \"This offer has expired. Search again.\"; `OFFER_UNAVAILABLE` — \"This offer is no longer available. Search again.\"; `UPSTREAM_REJECTED` — \"The request was declined for this offer. Try another offer.\"; `UPSTREAM_UNAVAILABLE` — \"The service is temporarily unavailable. Retry after the Retry-After delay.\"; `UPSTREAM_TIMEOUT` — \"The request timed out before a result was available. Retry the request.\"; `UPSTREAM_ERROR` — \"The request could not be completed.\".","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","uniqueKey":"error.doc_url","typeLabel":"string"},"field":{"type":"string","description":"On a 400 `BAD_REQUEST` that names one refused input: the path of that field in your request, e.g. `selections[1].quantity` for the second selection of a `select_ancillaries` call. Absent when the refusal names no single field.","example":"selections[1].quantity","uniqueKey":"error.field","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"UPSTREAM_UNAVAILABLE","message":"The service is temporarily unavailable. Retry after the Retry-After delay.","doc_url":"https://docs.gojinko.com/concepts/errors"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UPSTREAM_UNAVAILABLE","message":"The service is temporarily unavailable. Retry after the Retry-After delay.","doc_url":"https://docs.gojinko.com/concepts/errors"}}}},"exampleType":"examples"}},"exampleType":"examples"},"82861e75-24db-44df-a3b6-59e93fc82fb5":{"description":"The travel provider did not answer in time","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["INVALID_SEGMENTS_TO_EXCHANGE","PARTIAL_EXCHANGE_UNSUPPORTED","LEG_ALREADY_DEPARTED","DEPARTURE_DATE_IN_PAST","LEG_DATES_OUT_OF_ORDER","INVALID_EXCHANGE_REQUEST","NOT_EXCHANGEABLE","CREDENTIAL_FORMAT_INVALID","PAYMENT_TYPE_NOT_ENABLED","PAYMENT_CREDENTIAL_INVALID","TRIP_OWNED_BY_OTHER_PAYMENT","IDEMPOTENCY_KEY_REUSED","ATTEMPT_IN_PROGRESS","ATTEMPT_TERMINAL","TEMPORARILY_UNAVAILABLE","AUTH_REQUIRED","PAYMENT_REQUIRED","RATE_LIMITED","BAD_REQUEST","FORBIDDEN","NOT_FOUND","CONFLICT","GONE","QUOTE_PENDING","QUOTE_EXPIRED","TRIP_EXPIRED","TRIP_STATE_CONFLICT","OFFER_EXPIRED","OFFER_UNAVAILABLE","MISSING_CUSTOMER_DETAILS","INVALID_PHONE_NUMBER","INVALID_FLIGHT_NUMBER","CURRENCY_UNSUPPORTED","HOTEL_NAME_LOW_CONFIDENCE","DESTINATION_LOW_CONFIDENCE","UPSTREAM_REJECTED","UPSTREAM_UNAVAILABLE","UPSTREAM_TIMEOUT","UPSTREAM_ERROR","INTERNAL"],"description":"What went wrong, as a stable machine-readable code. This is a closed set — branch on it rather than on `message`, which is prose and may change. New codes arrive in a minor version, so treat an unknown one as its HTTP status. A code can also stop being emitted: it leaves this set in a minor version, named in the changelog, and a branch you wrote for it goes unreached rather than wrong.","example":"BAD_REQUEST","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"What went wrong, in prose. These codes always carry the same message, and it never includes text from a supplier: `RATE_LIMITED` — \"Too many requests. Retry after the Retry-After delay.\"; `OFFER_EXPIRED` — \"This offer has expired. Search again.\"; `OFFER_UNAVAILABLE` — \"This offer is no longer available. Search again.\"; `UPSTREAM_REJECTED` — \"The request was declined for this offer. Try another offer.\"; `UPSTREAM_UNAVAILABLE` — \"The service is temporarily unavailable. Retry after the Retry-After delay.\"; `UPSTREAM_TIMEOUT` — \"The request timed out before a result was available. Retry the request.\"; `UPSTREAM_ERROR` — \"The request could not be completed.\".","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"doc_url":{"type":"string","uniqueKey":"error.doc_url","typeLabel":"string"},"field":{"type":"string","description":"On a 400 `BAD_REQUEST` that names one refused input: the path of that field in your request, e.g. `selections[1].quantity` for the second selection of a `select_ancillaries` call. Absent when the refusal names no single field.","example":"selections[1].quantity","uniqueKey":"error.field","typeLabel":"string"}},"required":["code","message"],"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"UPSTREAM_TIMEOUT","message":"The request timed out before a result was available. Retry the request.","doc_url":"https://docs.gojinko.com/concepts/errors"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"UPSTREAM_TIMEOUT","message":"The request timed out before a result was available. Retry the request.","doc_url":"https://docs.gojinko.com/concepts/errors"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"978d8fd1-2a95-4217-87a6-176045916a99":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","scopes":[],"schemeName":"ApiKeyAuth"}},"65d0d72f-44c9-4848-a156-acb82a8f5c69":{"BearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"21f04b38-2027-491e-a963-feed59d5aa1b":{"url":"https://api.gojinko.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"X-API-Key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"X-API-Key"}],"title":"ApiKeyAuth"},{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/public-api.yaml"},"subdomain":"jinko-dev","siteName":"Jinko Platform","title":"flight-ai-search-cancel - Jinko Platform","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T17:37:41.052Z","originalFileLocation":"api/flight-ai-search-cancel.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=\"Cancel a flight AI search task\">\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-ai-search-cancel - Jinko Platform\">\u003cmeta data-mint-head property=\"og:description\" content=\"Cancel a flight AI search task\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Jinko Platform\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.dev.gojinko.com/api/flight-ai-search-cancel\">\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=Other+endpoints\u0026amp;title=flight-ai-search-cancel\u0026amp;description=Cancel+a+flight+AI+search+task\u0026amp;theme=d8471b1916fc5bd660c4c758\u0026amp;signature=ce9faa19ec0774a5d8fa029bc85e8974e0c706ca7818ba65ceb72ca1f44deb1b\">\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-ai-search-cancel - Jinko Platform\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Cancel a flight AI search task\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://jinko-dev.mintlify.site/_mintlify/api/og/v2?division=Other+endpoints\u0026amp;title=flight-ai-search-cancel\u0026amp;description=Cancel+a+flight+AI+search+task\u0026amp;theme=d8471b1916fc5bd660c4c758\u0026amp;signature=ce9faa19ec0774a5d8fa029bc85e8974e0c706ca7818ba65ceb72ca1f44deb1b\">\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/api/flight-ai-search-cancel\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api/flight-ai-search-cancel.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/api/flight-ai-search-cancel#webpage\",\"url\":\"https://docs.dev.gojinko.com/api/flight-ai-search-cancel\",\"name\":\"flight-ai-search-cancel\",\"description\":\"Cancel a flight AI search task\",\"dateModified\":\"2026-10-28T17:37:41.052Z\",\"isPartOf\":{\"@id\":\"https://docs.dev.gojinko.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.dev.gojinko.com/api/flight-ai-search-cancel#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.dev.gojinko.com/api/flight-ai-search-cancel#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Other endpoints\",\"item\":\"https://docs.dev.gojinko.com/api/flight-ai-search\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"flight-ai-search-cancel\",\"item\":\"https://docs.dev.gojinko.com/api/flight-ai-search-cancel\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.dev.gojinko.com/api/flight-ai-search-cancel#apireference\",\"headline\":\"flight-ai-search-cancel\",\"name\":\"flight-ai-search-cancel\",\"description\":\"Cancel a flight AI search task\",\"url\":\"https://docs.dev.gojinko.com/api/flight-ai-search-cancel\",\"mainEntityOfPage\":{\"@id\":\"https://docs.dev.gojinko.com/api/flight-ai-search-cancel#webpage\"},\"dateModified\":\"2026-10-28T17:37:41.052Z\",\"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","pages":[{"title":"MCP","href":"/tools/overview"}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/overview"}]},{"tab":"API reference","groups":[{"group":"Introduction","pages":[{"title":"API reference","href":"/api-reference/introduction"}]},{"group":"Travel Demand","pages":[{"group":"Destination","pages":[{"title":"destination","sidebarTitle":"/v1/destination","openapi":"api-reference/public-api.yaml GET /v1/destination","href":"/api/destination"},{"title":"destination trend","sidebarTitle":"/v1/destination/trend","openapi":"api-reference/public-api.yaml GET /v1/destination/trend","href":"/api/destination/trend"}]},{"group":"Market","pages":[{"title":"market","sidebarTitle":"/v1/market","openapi":"api-reference/public-api.yaml GET /v1/market","href":"/api/market"},{"title":"market trend","sidebarTitle":"/v1/market/trend","openapi":"api-reference/public-api.yaml GET /v1/market/trend","href":"/api/market/trend"}]},{"group":"Audience","pages":[{"title":"audience","sidebarTitle":"/v1/audience","openapi":"api-reference/public-api.yaml GET /v1/audience","href":"/api/audience"},{"title":"audience trend","sidebarTitle":"/v1/audience/trend","openapi":"api-reference/public-api.yaml GET /v1/audience/trend","href":"/api/audience/trend"}]},{"group":"Trend","pages":[{"title":"trend","sidebarTitle":"/v1/trend","openapi":"api-reference/public-api.yaml GET /v1/trend","href":"/api/trend"}]}]},{"group":"Flights","pages":[{"group":"Discovery","pages":[{"title":"find-destination","sidebarTitle":"/v1/find_destination","openapi":"api-reference/public-api.yaml POST /v1/find_destination","href":"/api/find-destination"},{"title":"flight-calendar","sidebarTitle":"/v1/flight_calendar","openapi":"api-reference/public-api.yaml POST /v1/flight_calendar","href":"/api/flight-calendar"},{"title":"find-dates","sidebarTitle":"/v1/find_dates","openapi":"api-reference/public-api.yaml POST /v1/find_dates","href":"/api/find-dates"},{"title":"lowest-fare","sidebarTitle":"/v1/lowest_fare","openapi":"api-reference/public-api.yaml POST /v1/lowest_fare","href":"/api/lowest-fare"},{"title":"price-monitoring","sidebarTitle":"/v1/price_monitoring","openapi":"api-reference/public-api.yaml POST /v1/price_monitoring","href":"/api/price-monitoring"},{"title":"flight-price-advice","sidebarTitle":"/v1/flight_price_advice","openapi":"api-reference/public-api.yaml POST /v1/flight_price_advice","href":"/api/flight-price-advice"}]},{"group":"Search","pages":[{"title":"flight-search","sidebarTitle":"/v1/flight_search","openapi":"api-reference/public-api.yaml POST /v1/flight_search","href":"/api/flight-search"},{"title":"flight-award-search (preview)","sidebarTitle":"/v1/flight_award_search (preview)","openapi":"api-reference/public-api-dev.yaml POST /v1/flight_award_search","href":"/api/flight-award-search"}]},{"group":"Manage","pages":[{"title":"refund check","sidebarTitle":"/v1/refund_check","openapi":"api-reference/public-api.yaml POST /v1/refund_check","deprecated":true,"href":"/api/refund/check"},{"title":"refund commit","sidebarTitle":"/v1/refund_commit","openapi":"api-reference/public-api.yaml POST /v1/refund_commit","deprecated":true,"href":"/api/refund/commit"},{"title":"refund status","sidebarTitle":"/v1/refund_status","openapi":"api-reference/public-api.yaml POST /v1/refund_status","deprecated":true,"href":"/api/refund/status"},{"title":"exchange shop","sidebarTitle":"/v1/exchange_shop","openapi":"api-reference/public-api.yaml POST /v1/exchange_shop","href":"/api/exchange/shop"},{"title":"exchange price","sidebarTitle":"/v1/exchange_price","openapi":"api-reference/public-api.yaml POST /v1/exchange_price","href":"/api/exchange/price"},{"title":"exchange commit","sidebarTitle":"/v1/exchange_commit","openapi":"api-reference/public-api.yaml POST /v1/exchange_commit","href":"/api/exchange/commit"},{"title":"exchange status","sidebarTitle":"/v1/exchange_status","openapi":"api-reference/public-api.yaml POST /v1/exchange_status","href":"/api/exchange/status"},{"title":"flight-refund-preview","sidebarTitle":"/v1/flight_refund_preview","openapi":"api-reference/public-api.yaml POST /v1/flight_refund_preview","href":"/api/flight-refund-preview"},{"title":"flight-refund-commit","sidebarTitle":"/v1/flight_refund_commit","openapi":"api-reference/public-api.yaml POST /v1/flight_refund_commit","href":"/api/flight-refund-commit"},{"title":"flight-refund-status","sidebarTitle":"/v1/flight_refund_status","openapi":"api-reference/public-api.yaml POST /v1/flight_refund_status","href":"/api/flight-refund-status"}]}]},{"group":"Hotels","pages":[{"title":"hotel-search","sidebarTitle":"/v1/hotel_search","openapi":"api-reference/public-api.yaml POST /v1/hotel_search","href":"/api/hotel-search"},{"title":"hotel-details","sidebarTitle":"/v1/hotel_details/{hotel_id}","openapi":"api-reference/public-api.yaml GET /v1/hotel_details/{hotel_id}","href":"/api/hotel-details"},{"title":"hotel-reviews","sidebarTitle":"/v1/hotel_reviews/{hotel_id}","openapi":"api-reference/public-api.yaml GET /v1/hotel_reviews/{hotel_id}","href":"/api/hotel-reviews"},{"title":"hotel-cancel","sidebarTitle":"/v1/hotel_cancel","openapi":"api-reference/public-api.yaml POST /v1/hotel_cancel","deprecated":true,"href":"/api/hotel-cancel"},{"title":"hotel-cancel-preview","sidebarTitle":"/v1/hotel_cancel_preview","openapi":"api-reference/public-api.yaml POST /v1/hotel_cancel_preview","href":"/api/hotel-cancel-preview"},{"title":"hotel-cancel-commit","sidebarTitle":"/v1/hotel_cancel_commit","openapi":"api-reference/public-api.yaml POST /v1/hotel_cancel_commit","href":"/api/hotel-cancel-commit"},{"title":"hotel-cancel-status","sidebarTitle":"/v1/hotel_cancel_status","openapi":"api-reference/public-api.yaml POST /v1/hotel_cancel_status","href":"/api/hotel-cancel-status"}]},{"group":"AI","pages":[{"group":"Hotel search","pages":[{"title":"hotel-ai-search","sidebarTitle":"/v1/hotel_ai_search","openapi":"api-reference/public-api.yaml POST /v1/hotel_ai_search","href":"/api/hotel-ai-search"},{"title":"hotel-ai-search-task","sidebarTitle":"/v1/hotel_ai_search/tasks/{task_id}","openapi":"api-reference/public-api.yaml GET /v1/hotel_ai_search/tasks/{task_id}","href":"/api/hotel-ai-search-task"},{"title":"hotel-ai-search-events","sidebarTitle":"/v1/hotel_ai_search/tasks/{task_id}/events","openapi":"api-reference/public-api.yaml GET /v1/hotel_ai_search/tasks/{task_id}/events","href":"/api/hotel-ai-search-events"},{"title":"hotel-ai-search-cancel","sidebarTitle":"/v1/hotel_ai_search/tasks/{task_id}:cancel","openapi":"api-reference/public-api.yaml POST /v1/hotel_ai_search/tasks/{task_id}:cancel","href":"/api/hotel-ai-search-cancel"}]}]},{"group":"Cars","pages":[{"title":"car-search","sidebarTitle":"/v1/car_search","openapi":"api-reference/public-api.yaml POST /v1/car_search","href":"/api/car-search"},{"title":"car-cancel-preview","sidebarTitle":"/v1/car_cancel_preview","openapi":"api-reference/public-api.yaml POST /v1/car_cancel_preview","href":"/api/car-cancel-preview"},{"title":"car-cancel-commit","sidebarTitle":"/v1/car_cancel_commit","openapi":"api-reference/public-api.yaml POST /v1/car_cancel_commit","href":"/api/car-cancel-commit"},{"title":"car-cancel-status","sidebarTitle":"/v1/car_cancel_status","openapi":"api-reference/public-api.yaml POST /v1/car_cancel_status","href":"/api/car-cancel-status"}]},{"group":"Trip \u0026 Payment","pages":[{"title":"trip","sidebarTitle":"/v1/trip","openapi":"api-reference/public-api.yaml POST /v1/trip","href":"/api/trip"},{"group":"Ancillaries","pages":[{"title":"select-ancillaries","sidebarTitle":"/v1/select_ancillaries","openapi":"api-reference/public-api.yaml POST /v1/select_ancillaries","href":"/api/select-ancillaries"},{"title":"trip ancillaries","sidebarTitle":"/v1/trip/{trip_id}/ancillaries","openapi":"api-reference/public-api.yaml GET /v1/trip/{trip_id}/ancillaries","href":"/api/trip/ancillaries"}]},{"title":"checkout","sidebarTitle":"/v1/checkout","openapi":"api-reference/public-api.yaml POST /v1/checkout","href":"/api/checkout"},{"title":"agent-payment submit","sidebarTitle":"/v1/agent_payment/submit","openapi":"api-reference/public-api.yaml POST /v1/agent_payment/submit","href":"/api/agent-payment/submit"},{"title":"trip-status","sidebarTitle":"/v1/trip/{trip_id}","openapi":"api-reference/public-api.yaml GET /v1/trip/{trip_id}","href":"/api/trip-status"},{"title":"get-booking","sidebarTitle":"/v1/get_booking","openapi":"api-reference/public-api.yaml POST /v1/get_booking","href":"/api/get-booking"}]},{"group":"Marketing claim","tag":"Preview","pages":[{"title":"best-price-guarantee","sidebarTitle":"/v1/best_price_guarantee","openapi":"api-reference/public-api.yaml POST /v1/best_price_guarantee","href":"/api/best-price-guarantee"},{"title":"best-price-guarantee-status","sidebarTitle":"/v1/best_price_guarantee/{id}","openapi":"api-reference/public-api.yaml GET /v1/best_price_guarantee/{id}","href":"/api/best-price-guarantee-status"}]},{"group":"Webhooks","pages":[{"title":"webhooks register","sidebarTitle":"/v1/webhooks","openapi":"api-reference/public-api.yaml POST /v1/webhooks","href":"/api/webhooks/register"},{"title":"webhooks list","sidebarTitle":"/v1/webhooks","openapi":"api-reference/public-api.yaml GET /v1/webhooks","href":"/api/webhooks/list"},{"title":"webhooks get","sidebarTitle":"/v1/webhooks/{id}","openapi":"api-reference/public-api.yaml GET /v1/webhooks/{id}","href":"/api/webhooks/get"},{"title":"webhooks delete","sidebarTitle":"/v1/webhooks/{id}","openapi":"api-reference/public-api.yaml DELETE /v1/webhooks/{id}","href":"/api/webhooks/delete"},{"title":"webhooks test","sidebarTitle":"/v1/webhooks/{id}/test","openapi":"api-reference/public-api.yaml POST /v1/webhooks/{id}/test","href":"/api/webhooks/test"},{"title":"webhooks deliveries","sidebarTitle":"/v1/webhooks/{id}/deliveries","openapi":"api-reference/public-api.yaml GET /v1/webhooks/{id}/deliveries","href":"/api/webhooks/deliveries"},{"title":"webhooks replay","sidebarTitle":"/v1/webhooks/{id}/deliveries/{delivery_id}/replay","openapi":"api-reference/public-api.yaml POST /v1/webhooks/{id}/deliveries/{delivery_id}/replay","href":"/api/webhooks/replay"}]},{"group":"Other endpoints","pages":[{"title":"flight-ai-search","sidebarTitle":"/v1/flight_ai_search","description":"Search flights from one sentence, with follow-ups","openapi":"api-reference/public-api.yaml POST /v1/flight_ai_search","href":"/api/flight-ai-search"},{"title":"flight-ai-search-cancel","sidebarTitle":"/v1/flight_ai_search/tasks/{task_id}:cancel","openapi":"api-reference/public-api.yaml POST /v1/flight_ai_search/tasks/{task_id}:cancel","href":"/api/flight-ai-search-cancel"},{"title":"flight-ai-search-events","sidebarTitle":"/v1/flight_ai_search/tasks/{task_id}/events","description":"Stream a flight AI search task's events","openapi":"api-reference/public-api.yaml GET /v1/flight_ai_search/tasks/{task_id}/events","href":"/api/flight-ai-search-events"},{"title":"flight-ai-search-task","sidebarTitle":"/v1/flight_ai_search/tasks/{task_id}","openapi":"api-reference/public-api.yaml GET /v1/flight_ai_search/tasks/{task_id}","href":"/api/flight-ai-search-task"},{"title":"flight-schedule","sidebarTitle":"/v1/flight_schedule","openapi":"api-reference/public-api.yaml POST /v1/flight_schedule","href":"/api/flight-schedule"},{"title":"trip payment-attempts","sidebarTitle":"/v1/trip/{trip_id}/payment_attempts/{payment_attempt_id}","openapi":"api-reference/public-api.yaml GET /v1/trip/{trip_id}/payment_attempts/{payment_attempt_id}","href":"/api/trip/payment-attempts"}]}]}]},"basePath":"","title":"flight-ai-search-cancel - Jinko Platform","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","Page-BUDYNlhG.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}