---
title: "Modify Search"
method: POST
path: "/v2/air/modify-search"
tags: ["Air"]
---

# Modify Search

`POST /v2/air/modify-search`

Get Air Itineraries available for exchange/modification/deletion against current pnr.

## Request body

- AirModifySearchRequest
  - `pnrId` string, required — The unique spotnana pnr id which needs to be exchanged.
  - `legs` Leg[], required — The list of all legs (to keep as same, to remove and to be added). In the example shared, if there is a trip from SFO to ANC with one Leg containing a direct flight from mentioned source to destination, and traveller needs to add a visit to Seattle in between changing his trip to now contain two legs SFO->SEA and SEA->ANC, then we would remove the first existing leg(indexed 0) SFO->ANC and add two new legs SFO->SEA and SEA->ANC.
    - union
      - NewLeg — New leg to be added in the pnr.
        - `origin` string — 3 letter IATA airport code for origin
        - `destination` string — 3 letter IATA airport code for origin
        - `date` DateTimeLocal — Local date and time in ISO 8601 format.
          - `iso8601` string, required
      - ExistingLeg
        - `index` integer — The index of the leg in the existing PNR which needs to be kept or removed(see remove field) during the exchange process with the following origin-destination information. For new legs leave empty (null). Fields origin, destination and date are required only if this leg is a new leg to be added.
        - `remove` boolean — This should be set to true, if this leg is to be cancelled.
  - `filters` Filter[]
    - `cabin` CabinFilter
      - `type` 'DEFAULT' | 'ALL' | 'AT_LEAST_ONE' — Determines how cabin type selection will be applied. - DEFAULT: By default AT_LEAST_ONE cabin type is used. - ALL: Ensures that all the segments in the itinerary have the specified cabin. - AT_LEAST_ONE: Ensures that at least one segment in the itinerary has the specified cabin.
      - `cabin` 'UNKNOWN_CABIN' | 'ECONOMY' | 'PREMIUM_ECONOMY' | 'BUSINESS' | 'FIRST' — Flight cabin
    - `maxNumStops` integer
    - `timeRange` TimeRangeFilter
      - `timeRanges` LegDepartureArrivalTimeRangeFilter[]
        - `legIndex` integer
        - `departure` TimeRange
          - `min` TimeLocal — ISO8601 Local Time
            - `iso8601` string, required
          - `max` TimeLocal — ISO8601 Local Time
            - `iso8601` string, required
        - `arrival` TimeRange
          - `min` TimeLocal — ISO8601 Local Time
            - `iso8601` string, required
          - `max` TimeLocal — ISO8601 Local Time
            - `iso8601` string, required
    - `alliance` AllianceFilter
      - `alliances` Alliance[]
      - `airlines` string[] — 2-letter IATA codes for the preferred airlines.
    - `fareRange` MoneyRange
      - `min` Money — Money object containing details such as the amount, the currency code, and the converted amount.
        - `amount` number, double, required — The numeric value for the amount of money.
        - `currencyCode` string, required — The 3-letter currency code for the money amount (defined using ISO 4217 standard).
        - `convertedAmount` number, double — The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
        - `convertedCurrency` string — The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
        - `otherCoinage` object[] — List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
          - `coinageCode` 'PAYMENT_METHOD_UNKNOWN' | 'CREDIT_CARD' | 'BREX_POINTS' | 'CASH' | 'QANTAS_POINTS' | 'VENDOR_PROGRAM_PAYMENT' | 'DELAYED_INVOICING' | 'FLIGHT_CREDITS' | 'QANTAS_TRAVEL_FUND' | 'CUSTOM_VIRTUAL_PAYMENT' | 'FLIGHT_PASS' | 'MISCELLANEOUS_CREDIT_ORDER' | 'NO_PREPAYMENT' — Payment method
          - `amount` number, double
          - `conversionRate` number, double — 1 coin in this system equals to how many currency value
          - `preferredCurrencyConversionRate` number, double — 1 coin in this system equals to how many currency value
          - `otherCoinageMetadata` FlightPassPaymentMetadataWrapper — Wrapper for Flight Pass payment metadata.
            - `metadataType` string — Discriminator field for polymorphic deserialization
            - `flightPassMetadata` FlightPassPaymentMetadata, required — Metadata specific to Flight Pass payment method in OtherCoinage.
              - …
      - `max` Money — Money object containing details such as the amount, the currency code, and the converted amount.
        - `amount` number, double, required — The numeric value for the amount of money.
        - `currencyCode` string, required — The 3-letter currency code for the money amount (defined using ISO 4217 standard).
        - `convertedAmount` number, double — The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
        - `convertedCurrency` string — The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
        - `otherCoinage` object[] — List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
          - `coinageCode` 'PAYMENT_METHOD_UNKNOWN' | 'CREDIT_CARD' | 'BREX_POINTS' | 'CASH' | 'QANTAS_POINTS' | 'VENDOR_PROGRAM_PAYMENT' | 'DELAYED_INVOICING' | 'FLIGHT_CREDITS' | 'QANTAS_TRAVEL_FUND' | 'CUSTOM_VIRTUAL_PAYMENT' | 'FLIGHT_PASS' | 'MISCELLANEOUS_CREDIT_ORDER' | 'NO_PREPAYMENT' — Payment method
          - `amount` number, double
          - `conversionRate` number, double — 1 coin in this system equals to how many currency value
          - `preferredCurrencyConversionRate` number, double — 1 coin in this system equals to how many currency value
          - `otherCoinageMetadata` FlightPassPaymentMetadataWrapper — Wrapper for Flight Pass payment metadata.
            - `metadataType` string — Discriminator field for polymorphic deserialization
            - `flightPassMetadata` FlightPassPaymentMetadata, required — Metadata specific to Flight Pass payment method in OtherCoinage.
              - …
    - `airlinePref` AirlinePrefsFilter
      - `airlinePrefs` AirlinePrefs[]
        - `legIndex` integer
        - `airline` string[]
    - `fareType` 'UNKNOWN' | 'PUBLIC' | 'PRIVATE' | 'CORPORATE'
    - `changeable` 'NO_CHANGEABLE_FILTER' | 'CHANGEABLE_FLEXIBLE_REFUNDABLE' | 'REFUNDABLE_WITH_PENALTY' | 'REFUNDABLE_WITHOUT_PENALTY' — List of filters related to refund and change options for flights.
    - `connectingAirports` ConnectingAirportsFilter
      - `legFilters` ConnectingAirportsLegFilter[]
        - `legIndex` integer
        - `airportCodes` string[]
    - `seatPref` SeatPrefFilter
      - `seatTypes` SeatType[]
      - `minPitchInch` integer
    - `covid` CovidFilter
      - `vaccine` 'NO_PREFERENCE' | 'REQUIRED' | 'NOT_REQUIRED'
      - `covidTest` 'NO_PREFERENCE' | 'REQUIRED' | 'NOT_REQUIRED'
      - `faceMask` 'NO_PREFERENCE' | 'REQUIRED' | 'NOT_REQUIRED'
      - `temperatureCheck` 'NO_PREFERENCE' | 'REQUIRED' | 'NOT_REQUIRED'
      - `blockedAdjacentSeats` 'NO_PREFERENCE' | 'REQUIRED' | 'NOT_REQUIRED'
    - `baggage` BaggageFilter
      - `freeCheckedBag` boolean — If true, only itineraries with free checked bag are returned. Otherwise, no preference.
      - `freeCarryOn` boolean — If true, only itineraries with free carry on bag are returned. Otherwise, no preference.
    - `flightNumber` FlightNumberFilter — Filters itineraries where the flight number matches that of either the marketing or operating carrier.
      - `flightNumber` FlightNumber — Flight number and airline code.
        - `num` string, required — Flight number.
        - `airlineCode` string, required — Two-letter IATA airline code.
    - `policyFilter` PolicyFilter
      - `onlyInPolicy` boolean — If true, only in-policy itineraries are returned.
    - `multiTicketFilter` MultiTicketFilter
      - `hideMultiTicket` boolean — Designates whether multi ticket options are to be shown. If true, only single ticket itineraries are returned.
    - `fareCategoryFilter` FareCategoryFilter
      - `fareCategories` FareCategory[]
        - `ngsCategory` 'UNKNOWN_NGS_CATEGORY' | 'BASE' | 'STANDARD' | 'ENHANCED' | 'PREMIUM' | 'LUXURY' | 'ULTRA_LUXURY'
        - `cabinViewCategory` 'UNKNOWN_CABIN_CATEGORY' | 'BASIC' | 'ECONOMY' | 'PREMIUM_ECONOMY' | 'ECONOMY_PLUS' | 'BUSINESS' | 'FIRST'
    - `corporateCodeFilter` CorporateCodeFilter
      - `corpAccountCodes` string[] — List of Corporate code to be filtered
    - `unusedCreditFilter` UnusedCreditFilter
      - `hideWithoutCredits` boolean — If true, only itineraries with applicable unused credits are returned.
    - `payByPointsFilter` PayByPointsFilter
      - `payByPoints` boolean — If true, only itineraries whose allowed FOP has Brex Pay byPoints are returned.
  - `sortOptions` SortOption[]
    - `sortBy` 'PRICE' | 'DEPARTURE_TIME' | 'ARRIVAL_TIME' | 'DURATION'
    - `sortOrder` 'ASCENDING' | 'DESCENDING'
    - `shelfNumber` integer — Only used when 'SortBy' is 'PRICE' and represents which shelf should be used for sorting. If shelf_number is 0 (default), minimum of all shelf prices is used.
  - `legSearchParams` LegSearchParams
    - `searchId` string — The unique ID returned by the air search response of the previous leg.
    - `selectedRateOptionId` string — The unique ID identifying the selected flights in the previous leg's response.
    - `legIndex` integer — The index ID for the leg for which the results are to be returned for this request.
    - `asyncRouteHappy` boolean — Designates if RouteHappy content is fetched asynchronously. If true, RouteHappy content will be fetched asynchronously and not returned in response.
    - `pageNumber` integer — The page number for which data is to be fetched. If pageNumber is 0, the complete air search response (without pagination) will be returned.
    - `pageSize` integer — Optional parameter to specify the max number of results per page. If not set or set as 0, default page size of 50 is used.
  - `preModifySearchAnswers` PreSearchAnswers[]
    - `answers` EntityAnswer[]
      - `entityId` string — The unique ID for the question.
      - `userInput` string — The text input given by user (if any).
      - `itemIds` integer[] — The id/enum value corresponding to the option chosen by the user as answer.
      - `answers` AnswerPair[]
        - `item` string — The option selected from the list of available choices.
        - `value` string — The additional input provided (by the user) while selecting one of the options.
        - `description` string — Description of the selected option.
      - `customFieldType` 'QUESTION' | 'MEETING' | 'BUDGET' | 'BREX_TOKEN' — The type of custom field.
      - `questionDisplayText` string — The question text to be displayed to the user.
      - `question` Question — The message defines the format of a question which can be asked to a user in any kind of workflows.
        - `id` string, uuid, required
        - `name` string, required — Question display name that the user will see. For eg, 'Choose the purpose of your trip'.
        - `questionFormat` 'INPUT_BOX' | 'RADIO_BUTTON' | 'CHECKBOX' | 'CHECKBOX_WITH_PERCENTAGE' — Question types. INPUT_BOX will make user enter a free flowing text. RADIO_BUTTON will have multiple options, user can select only one. CHECKBOX questions contain the possible set of options, from which the user can choose multiple options. CHECKBOX_WITH_PERCENTAGE is similar to checkbox, with the difference being that each option having an additional input field whose values must add up to 100.
        - `optionInfo` OptionInfo — Options related information for the question.
          - `source` 'MANUAL' | 'COMPANY_CONFIG', required — Option source
          - `sourceMetadata` OptionSourceMetadata — Wrapper for option source company config.
            - `companyConfig` CompanyConfigSource — For this option source, options would be auto generated based on specified parameter.
              - …
          - `totalNumOptions` integer — Total number of options
          - `options` Option[] — Available options for the question. This will contain only max 10 options if only summary is requested.
            - `displayCode` string, required — The code which is sent in answer response.
            - `displayValue` string — The text to be displayed to the user beside this option.
        - `isRequired` boolean, required — Whether its compulsory to answer the question or not.
        - `isDisabled` boolean, required — Whether the question is disabled or not. If true, this should not be asked.
        - `includeInItinerary` boolean — Whether to include this question in the itinerary related emails.
        - `customFieldLocations` CustomFieldLocation[]
        - `matchConditions` CustomFieldMatchConditions — Conditions to select the custom field for given context.
          - `travelerConditions` TravelerMatchConditions — Matching conditions for traveler.
            - `workerTypes` WorkerType[] — Worker types. Users belonging to any of these would match.
            - `countries` string[] — Countries.
            - `legalEntities` Reference[] — Legal entities
              - …
            - `departments` Reference[] — Departments
              - …
            - `costCenters` Reference[] — Cost centers
              - …
            - `offices` Reference[] — Offices
              - …
          - `travelTypes` TravelType[] — Travel types to match.
          - `travelRegionTypes` TravelRegionType[] — Travel region types to match.
          - `tripUsageTypes` TripUsageType[] — Trip usage types to match. If empty, all trip usage types will be matched.
        - `questionType` QuestionType — Question type.
          - `preSearchQuestionType` 'UNKNOWN_SEARCH_QUESTION_TYPE' | 'PURPOSE_OF_TRIP' — Types of pre-search questions. PURPOSE_OF_TRIP required to ask purpose of the trip user is going to. For example: meeting, training, interview.
          - `preCheckoutQuestionType` 'UNKNOWN_CHECKOUT_QUESTION_TYPE' | 'USER_DEFINED_QUESTION' | 'OOP_REASON_CODE' — Types of pre-checkout questions. USER_DEFINED_QUESTION the default question type for all pre checkout questions which have been created from UI. OOP_REASON_CODE is kept separate so that existing OOP flow doesn't break.
    - `userEntitiesResponseId` string

## Response `200`

OK

- AirSearchResponse — A list of itineraries with detailed flight information and prices for each.
  - `searchId` string, required — The unique ID for this search response. This value must be passed on in the subsequent booking API calls.
  - `itineraryDetails` ItineraryInfo, required — Describes the detailed itinerary information provided in the search response.
    - `itineraries` AirItin[]
      - `itineraryId` string, required — The unique ID for this itinerary.
      - `legs` AirLegInfo[], required
        - `id` string, required — The unique ID for this leg.
        - `flights` FlightDetail[], required — Details of the list of flights present in the leg.
          - `id` string, required — The unique ID for this flight in the itinerary.
          - `flightData` union
            - object — Wrapper of flight reference to be used in oneOf.
              - …
            - object — Wrapper of FlightCommon data to be used in oneOf.
              - …
          - `cabin` 'UNKNOWN_CABIN' | 'ECONOMY' | 'PREMIUM_ECONOMY' | 'BUSINESS' | 'FIRST', required — Flight cabin
          - `bookingCode` string — The airline's one-letter code for the associated fare
          - `seatAvailability` integer — The availability of seats on this flight
          - `corpAccountCode` string — The account code is used to get corporate negotiated price
          - `carbonEmission` CO2EmissionDetail — CO2 emission details for the flight.
            - `emissionValue` number, double, required — Estimated C02 emissions value for selected flight and seating class, per passenger (in tons)
            - `averageEmissionValue` number, double — Average estimated C02 emissions per passenger for same route (in tons)
            - `flightDistanceKm` number, double — Total distance flown by the flight in kilometres.
            - `isApproximate` boolean — Indicates whether the emissions value is approximate or not.
          - `amenities` AirAmenity[] — The amenities associated with the flight.
            - union
              - …
          - `flightAttributes` FlightAttribute[] — The set of product attributes associated with the flight.
            - `description` string — Marketing description and images associated with the flight attribute.
            - `categories` FlightAttributeCategory[] — List of categories in which this flight attribute falls into
            - `photos` ImageGroup[] — List of images associated with the flight attribute.
              - …
          - `fareBasisCode` string — The fare basis code contains information about the fare.
        - `travelerInfos` TravelerLegInfo[], required — Details of passenger(s) information for this leg.
          - `travelerId` string, required — Unique identifier for the traveler in this response
          - `travelerLegFare` FareAmount — Fare amount including base fare and tax.
            - `base` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
              - …
            - `tax` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
              - …
            - `taxBreakdown` Tax[]
              - …
          - `fareRules` FareRules — The rules and restrictions associated with the fare.
            - `baggagePolicy` BaggagePolicy — Baggage policy for this traveler.
              - …
            - `cancellationPolicy` CancellationPolicy — Information about the cancellation policy.
              - …
            - `postDepartureCancellationPolicy` CancellationPolicy — Information about the cancellation policy.
              - …
            - `exchangePolicy` ExchangePolicy — Information about the exchange policy.
              - …
            - `postDepartureExchangePolicy` ExchangePolicy — Information about the exchange policy.
              - …
            - `seatSelectionPolicy` SeatSelectionRule — Seat selection rule
              - …
            - `boardingPolicy` BoardingPolicy — Priority boarding information.
              - …
            - `checkInPolicy` CheckInPolicy — Information about the check-in policy.
              - …
            - `loungePolicy` LoungePolicy — Information about the lounge policy.
              - …
            - `seatType` SeatTypeInfo — Seat information
              - …
        - `totalLegFare` FareAmount, required — Fare amount including base fare and tax.
          - `base` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
            - `amount` number, double, required — The numeric value for the amount of money.
            - `currencyCode` string, required — The 3-letter currency code for the money amount (defined using ISO 4217 standard).
            - `convertedAmount` number, double — The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
            - `convertedCurrency` string — The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
            - `otherCoinage` object[] — List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
              - …
          - `tax` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
            - `amount` number, double, required — The numeric value for the amount of money.
            - `currencyCode` string, required — The 3-letter currency code for the money amount (defined using ISO 4217 standard).
            - `convertedAmount` number, double — The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
            - `convertedCurrency` string — The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
            - `otherCoinage` object[] — List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
              - …
          - `taxBreakdown` Tax[]
            - `amount` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
              - …
            - `taxCode` string — Tax code
            - `percentage` number, double — Tax amount to total amount
            - `description` string — Tax name or Tax Description
        - `fareCategory` FareCategory, required
          - `ngsCategory` 'UNKNOWN_NGS_CATEGORY' | 'BASE' | 'STANDARD' | 'ENHANCED' | 'PREMIUM' | 'LUXURY' | 'ULTRA_LUXURY'
          - `cabinViewCategory` 'UNKNOWN_CABIN_CATEGORY' | 'BASIC' | 'ECONOMY' | 'PREMIUM_ECONOMY' | 'ECONOMY_PLUS' | 'BUSINESS' | 'FIRST'
        - `brandName` string — The brand name advertised by the airline.
        - `brandCode` string — The brand code assigned by the airline corresponding brandName.
        - `validatingAirline` string — The airline code for the airline which is validating this booking and orchestrating the payment.
        - `rateType` 'RATE_TYPE_UNKNOWN' | 'PUBLISHED' | 'TMC_NEGOTIATED' | 'COMPANY_NEGOTIATED' — Type of booked fare
        - `vendorProgramType` 'UA_PASS_PLUS' | 'GENERIC_PROGRAM_TYPE' — The type of the vendor program
      - `travelers` TravelerDetail[], required
        - `travelerId` string, required — Unique identifier for the traveler in this response
        - `travelerType` 'UNKNOWN_PASSENGER_TYPE' | 'ADULT' | 'CHILD' | 'INFANT' | 'INFANT_ON_LAP' | 'YOUTH' | 'SENIOR' | 'TEEN', required — Type of passenger
        - `travelerAge` PassengerAge — Age of the traveler
          - `numYears` integer, required — Age of the passenger
        - `fareInfo` FareInfo, required — The detailed information about the fare (including tax and merchant fee details).
          - `totalFare` FareAmount, required — Fare amount including base fare and tax.
            - `base` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
              - …
            - `tax` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
              - …
            - `taxBreakdown` Tax[]
              - …
          - `taxBreakdown` Tax[]
            - `amount` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
              - …
            - `taxCode` string — Tax code
            - `percentage` number, double — Tax amount to total amount
            - `description` string — Tax name or Tax Description
          - `merchantFeeInfo` MerchantFeeInfo — Describes the merchant fee applicable on the itinerary.
            - `amount` FareAmount, required — Fare amount including base fare and tax.
              - …
        - `fareMetadata` FareMetadata — Metadata about pax fare
          - `corpAccountCode` string — The corp account code for each pax.
      - `fareInfo` FareInfo, required — The detailed information about the fare (including tax and merchant fee details).
        - `totalFare` FareAmount, required — Fare amount including base fare and tax.
          - `base` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
            - `amount` number, double, required — The numeric value for the amount of money.
            - `currencyCode` string, required — The 3-letter currency code for the money amount (defined using ISO 4217 standard).
            - `convertedAmount` number, double — The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
            - `convertedCurrency` string — The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
            - `otherCoinage` object[] — List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
              - …
          - `tax` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
            - `amount` number, double, required — The numeric value for the amount of money.
            - `currencyCode` string, required — The 3-letter currency code for the money amount (defined using ISO 4217 standard).
            - `convertedAmount` number, double — The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
            - `convertedCurrency` string — The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
            - `otherCoinage` object[] — List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
              - …
          - `taxBreakdown` Tax[]
            - `amount` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
              - …
            - `taxCode` string — Tax code
            - `percentage` number, double — Tax amount to total amount
            - `description` string — Tax name or Tax Description
        - `taxBreakdown` Tax[]
          - `amount` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
            - `amount` number, double, required — The numeric value for the amount of money.
            - `currencyCode` string, required — The 3-letter currency code for the money amount (defined using ISO 4217 standard).
            - `convertedAmount` number, double — The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
            - `convertedCurrency` string — The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
            - `otherCoinage` object[] — List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
              - …
          - `taxCode` string — Tax code
          - `percentage` number, double — Tax amount to total amount
          - `description` string — Tax name or Tax Description
        - `merchantFeeInfo` MerchantFeeInfo — Describes the merchant fee applicable on the itinerary.
          - `amount` FareAmount, required — Fare amount including base fare and tax.
            - `base` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
              - …
            - `tax` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
              - …
            - `taxBreakdown` Tax[]
              - …
      - `ticketType` 'SINGLE' | 'MULTI', required — The ticket issuance type for a given itinerary, whether single or multiple
      - `policyInfos` PnrPolicyInfo — Policy Info applicable for the associated itinerary
        - `policies` PnrPolicyId[] — List of policies applied to the itinerary.
          - `id` string, required — Policy id
          - `version` string, required — version of the policy
          - `policyName` string — Name of the policy applied.
          - `approvalType` 'HARD_APPROVAL' | 'SOFT_APPROVAL' | 'PASSIVE_APPROVAL'
          - `policyType` 'GLOBAL' | 'DEFAULT' | 'GROUP'
        - `ruleResultInfos` PolicyRuleResultInfo[]
          - `violationInfos` PolicyViolationInfo[]
            - `predicateString` string
            - `predicate` 'UNKNOWN_PREDICATE_STRING' | 'MAX_FARE_PER_TRAVELLER_VIOLATION' | 'FARE_MORE_THAN_MINIMUM' | 'FARE_MORE_THAN_MEDIAN' | 'FARE_LESS_THAN_MEDIAN' | 'FARE_MORE_THAN_LLF' | 'MAX_FARE_PER_TRAVELLER_VIOLATION_INCLUDING_TAX' | 'MAX_FARE_PER_TRAVELLER_VIOLATION_EXCLUDING_TAX' | 'HOTEL_PAYMENT_OPTIONS_VIOLATION' | 'RAIL_BOOKING_WINDOW_GAP_VIOLATION' | 'RAIL_TRAVEL_CLASS_VIOLATION' | 'RAIL_TICKET_REFUNDABLE_VIOLATION' | 'RAIL_MAX_BOOKING_PRICE_VIOLATION_INCLUDING_TAX' | 'RAIL_MAX_BOOKING_PRICE_VIOLATION_EXCLUDING_TAX' | 'AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_INCLUDING_TAX' | 'AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_EXCLUDING_TAX' | 'HOTEL_RESTRICTED_KEYWORDS_VIOLATION' | 'RESTRICTED_LOCATION_VIOLATION' | 'FLIGHT_ADVANCE_BOOKING_WINDOW_DOMESTIC_VIOLATION' | 'FLIGHT_ADVANCE_BOOKING_WINDOW_INTERNATIONAL_VIOLATION' | 'FLIGHT_ADVANCE_BOOKING_WINDOW_VIOLATION' | 'ITINERARY_WITHIN_EVENT_TRAVEL_WINDOW' | 'HOTEL_IN_ALLOWED_HOTEL_LIST' | 'PAYMENT_ACCESS_VIOLATION' | 'AIRPORT_IN_ALLOWED_AIRPORT_LIST' | 'ITINERARY_TYPE_IS_NOT_IN_ALLOWED_BOOKING_TYPES' | 'PAYMENT_AIR_ADDON_VIOLATION' | 'MAX_HOTEL_BOOKING_PRICE_INCLUDING_TAX' | 'MAX_HOTEL_BOOKING_PRICE_EXCLUDING_TAX' | 'AIR_NUM_TRAVELERS_ALLOWED' | 'PREFERRED_VENDOR_VIOLATION' | 'SEAT_ADDON_VIOLATION' | 'BAGGAGE_ADDON_VIOLATION' | 'EARLY_BIRD_ADDON_VIOLATION' | 'WIFI_ADDON_VIOLATION' | 'RESTRICTED_BOOKING_VIOLATION' | 'HIGHEST_ALLOWED_CABIN_VIOLATION' | 'LOWEST_FARE_PER_HOTEL_PROPERTY_VIOLATION' | 'AIR_RESTRICTED_FARES_VIOLATION' | 'AIR_ANCILLARY_VIOLATION' — This contains the enum mentioning the policy rule which was violated.
            - `expectedValue` union
              - …
            - `actualValue` union
              - …
          - `subViolationInfos` PolicyViolationInfo[] — In case of complex rules this will contain extra information as to how the rule was calculated.
            - `predicateString` string
            - `predicate` 'UNKNOWN_PREDICATE_STRING' | 'MAX_FARE_PER_TRAVELLER_VIOLATION' | 'FARE_MORE_THAN_MINIMUM' | 'FARE_MORE_THAN_MEDIAN' | 'FARE_LESS_THAN_MEDIAN' | 'FARE_MORE_THAN_LLF' | 'MAX_FARE_PER_TRAVELLER_VIOLATION_INCLUDING_TAX' | 'MAX_FARE_PER_TRAVELLER_VIOLATION_EXCLUDING_TAX' | 'HOTEL_PAYMENT_OPTIONS_VIOLATION' | 'RAIL_BOOKING_WINDOW_GAP_VIOLATION' | 'RAIL_TRAVEL_CLASS_VIOLATION' | 'RAIL_TICKET_REFUNDABLE_VIOLATION' | 'RAIL_MAX_BOOKING_PRICE_VIOLATION_INCLUDING_TAX' | 'RAIL_MAX_BOOKING_PRICE_VIOLATION_EXCLUDING_TAX' | 'AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_INCLUDING_TAX' | 'AIR_MAX_PRICE_MORE_THAN_LLF_VIOLATION_EXCLUDING_TAX' | 'HOTEL_RESTRICTED_KEYWORDS_VIOLATION' | 'RESTRICTED_LOCATION_VIOLATION' | 'FLIGHT_ADVANCE_BOOKING_WINDOW_DOMESTIC_VIOLATION' | 'FLIGHT_ADVANCE_BOOKING_WINDOW_INTERNATIONAL_VIOLATION' | 'FLIGHT_ADVANCE_BOOKING_WINDOW_VIOLATION' | 'ITINERARY_WITHIN_EVENT_TRAVEL_WINDOW' | 'HOTEL_IN_ALLOWED_HOTEL_LIST' | 'PAYMENT_ACCESS_VIOLATION' | 'AIRPORT_IN_ALLOWED_AIRPORT_LIST' | 'ITINERARY_TYPE_IS_NOT_IN_ALLOWED_BOOKING_TYPES' | 'PAYMENT_AIR_ADDON_VIOLATION' | 'MAX_HOTEL_BOOKING_PRICE_INCLUDING_TAX' | 'MAX_HOTEL_BOOKING_PRICE_EXCLUDING_TAX' | 'AIR_NUM_TRAVELERS_ALLOWED' | 'PREFERRED_VENDOR_VIOLATION' | 'SEAT_ADDON_VIOLATION' | 'BAGGAGE_ADDON_VIOLATION' | 'EARLY_BIRD_ADDON_VIOLATION' | 'WIFI_ADDON_VIOLATION' | 'RESTRICTED_BOOKING_VIOLATION' | 'HIGHEST_ALLOWED_CABIN_VIOLATION' | 'LOWEST_FARE_PER_HOTEL_PROPERTY_VIOLATION' | 'AIR_RESTRICTED_FARES_VIOLATION' | 'AIR_ANCILLARY_VIOLATION' — This contains the enum mentioning the policy rule which was violated.
            - `expectedValue` union
              - …
            - `actualValue` union
              - …
          - `actions` PolicyAction[] — Followed actions if rule was satisfied else violated actions.
            - union — Action that is required / done for policy.
              - …
      - `posInfo` POSInfo[] — The point of sales which offer the itinerary.
        - `source` 'UNKNOWN_SOURCE' | 'SABRE' | 'TRAVEL_FUSION' | 'AVIA' | 'NDC' | 'TRAINLINE' | 'ATPCO_NDC' | 'FARELOGIX_NDC' | 'OFFLINE' | 'CONNEXUS' | 'ROUTEHAPPY' | 'AMADEUS' | 'GIATA' | 'QBR' | 'BCD' | 'QANTAS_HOTELS' | 'SOUTHWEST' | 'EXPEDIA' | 'HOTEL_HUB' | 'MARRIOTT' | 'CLEARTRIP' | 'KYTE' | 'GROUNDSPAN' | 'SABRE_NDC' | 'BOOKING_COM' | 'CARTRAWLER' | 'PREMIER_INN' | 'TRAVELODGE' | 'ENTERPRISE' | 'HYATT' | 'EUROSTAR' | 'NATIONAL' | 'ALAMO' | 'AVIS' | 'BUDGET' | 'HERTZ' | 'DOLLAR' | 'THRIFTY' | 'FIREFLY', required
        - `posDescriptor` string — The identifier for the point of sale. This would be the PCC for GDS bookings.
      - `publicFare` FareAmount — Fare amount including base fare and tax.
        - `base` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
          - `amount` number, double, required — The numeric value for the amount of money.
          - `currencyCode` string, required — The 3-letter currency code for the money amount (defined using ISO 4217 standard).
          - `convertedAmount` number, double — The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
          - `convertedCurrency` string — The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
          - `otherCoinage` object[] — List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
            - `coinageCode` 'PAYMENT_METHOD_UNKNOWN' | 'CREDIT_CARD' | 'BREX_POINTS' | 'CASH' | 'QANTAS_POINTS' | 'VENDOR_PROGRAM_PAYMENT' | 'DELAYED_INVOICING' | 'FLIGHT_CREDITS' | 'QANTAS_TRAVEL_FUND' | 'CUSTOM_VIRTUAL_PAYMENT' | 'FLIGHT_PASS' | 'MISCELLANEOUS_CREDIT_ORDER' | 'NO_PREPAYMENT' — Payment method
            - `amount` number, double
            - `conversionRate` number, double — 1 coin in this system equals to how many currency value
            - `preferredCurrencyConversionRate` number, double — 1 coin in this system equals to how many currency value
            - `otherCoinageMetadata` FlightPassPaymentMetadataWrapper — Wrapper for Flight Pass payment metadata.
              - …
        - `tax` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
          - `amount` number, double, required — The numeric value for the amount of money.
          - `currencyCode` string, required — The 3-letter currency code for the money amount (defined using ISO 4217 standard).
          - `convertedAmount` number, double — The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
          - `convertedCurrency` string — The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
          - `otherCoinage` object[] — List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
            - `coinageCode` 'PAYMENT_METHOD_UNKNOWN' | 'CREDIT_CARD' | 'BREX_POINTS' | 'CASH' | 'QANTAS_POINTS' | 'VENDOR_PROGRAM_PAYMENT' | 'DELAYED_INVOICING' | 'FLIGHT_CREDITS' | 'QANTAS_TRAVEL_FUND' | 'CUSTOM_VIRTUAL_PAYMENT' | 'FLIGHT_PASS' | 'MISCELLANEOUS_CREDIT_ORDER' | 'NO_PREPAYMENT' — Payment method
            - `amount` number, double
            - `conversionRate` number, double — 1 coin in this system equals to how many currency value
            - `preferredCurrencyConversionRate` number, double — 1 coin in this system equals to how many currency value
            - `otherCoinageMetadata` FlightPassPaymentMetadataWrapper — Wrapper for Flight Pass payment metadata.
              - …
        - `taxBreakdown` Tax[]
          - `amount` Money, required — Money object containing details such as the amount, the currency code, and the converted amount.
            - `amount` number, double, required — The numeric value for the amount of money.
            - `currencyCode` string, required — The 3-letter currency code for the money amount (defined using ISO 4217 standard).
            - `convertedAmount` number, double — The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
            - `convertedCurrency` string — The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
            - `otherCoinage` object[] — List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
              - …
          - `taxCode` string — Tax code
          - `percentage` number, double — Tax amount to total amount
          - `description` string — Tax name or Tax Description
      - `allowedFopRules` AllowedFopRule[] — The payment method types applicable to the itinerary.
        - `paymentItems` PaymentItem[]
          - `itemType` 'SERVICE_FEE' | 'TRAVEL_TICKET' | 'SEAT' | 'BAGGAGE' | 'EARLY_BIRD' — Type of payment item eligible for this fop rule
          - `fareComponent` FareComponent[]
        - `amount` Money — Money object containing details such as the amount, the currency code, and the converted amount.
          - `amount` number, double, required — The numeric value for the amount of money.
          - `currencyCode` string, required — The 3-letter currency code for the money amount (defined using ISO 4217 standard).
          - `convertedAmount` number, double — The converted currency and amount that has been converted (if a currency conversion has been requested). For example, if the call requests that money be sent in a specified currency (because the frontend requested the backend to send money in the user's preferred currency).
          - `convertedCurrency` string — The 3-letter currency code for the converted currency (defined using ISO 4217 standard).
          - `otherCoinage` object[] — List of the dollar amount in other coinage systems like reward points, cryptocurrency etc.
            - `coinageCode` 'PAYMENT_METHOD_UNKNOWN' | 'CREDIT_CARD' | 'BREX_POINTS' | 'CASH' | 'QANTAS_POINTS' | 'VENDOR_PROGRAM_PAYMENT' | 'DELAYED_INVOICING' | 'FLIGHT_CREDITS' | 'QANTAS_TRAVEL_FUND' | 'CUSTOM_VIRTUAL_PAYMENT' | 'FLIGHT_PASS' | 'MISCELLANEOUS_CREDIT_ORDER' | 'NO_PREPAYMENT' — Payment method
            - `amount` number, double
            - `conversionRate` number, double — 1 coin in this system equals to how many currency value
            - `preferredCurrencyConversionRate` number, double — 1 coin in this system equals to how many currency value
            - `otherCoinageMetadata` FlightPassPaymentMetadataWrapper — Wrapper for Flight Pass payment metadata.
              - …
        - `paymentRules` PaymentRule[]
          - `paymentSplitDetails` union — Payment details of slider payment function.
            - object — Min max amount wrapper.
              - …
            - object — Split amount wrapper.
              - …
          - `paymentSourceIds` string[]
          - `allowAddCard` boolean — Whether to allow user to add a new card for the selected split payment.
          - `splitCriterion` PaymentSplitCriterion — The criterion for the payment split.
            - `accessType` 'CENTRALISED' | 'PERSONAL' | 'APPLICATION' | 'TMC' | 'ITINERARY' | 'EVENT' | 'EVENT_TEMPLATE' — Access Type of the Payment Source being created.
          - `unusablePaymentSources` UnusablePaymentSource[] — List of payment sources that are not usable for this payment rule
            - `id` string, uuid, required — Unique identifier identifying this payment source
            - `reason` 'SUPPLIER_RESTRICTION' | 'POLICY_RESTRICTION' — Reason why a payment source is not usable.
          - `paymentSourceConditions` PaymentSourceCondition[] — List of conditions for payment sources
            - `type` string, required
            - `cardCompanies` CardCompany[] — List of card companies allowed for the payment
      - `fareAttributes` FareAttributes — The rules and attributes related to the fare.
        - `isVoidable` boolean — Designates whether the fare is voidable or not.
        - `holdDeadline` DateTimeLocal — Local date and time in ISO 8601 format.
          - `iso8601` string, required
        - `isNonVerifiedExchangeOffer` boolean — Designates whether the fare is a non-verified exchange offer. For these fares, the exchange price guarantee is not provided by the supplier.
    - `flightData` FlightCommon[] — The set of flights and their details that are contained in this response.
      - `flightRef` string — Unique ID for this flight in the response.
      - `departureDateTime` DateTimeLocal, required — Local date and time in ISO 8601 format.
        - `iso8601` string, required
      - `arrivalDateTime` DateTimeLocal, required — Local date and time in ISO 8601 format.
        - `iso8601` string, required
      - `origin` AirportInfo, required — Detailed information about the airport.
        - `airportCode` string — 3-letter code of the airport.
        - `airportName` string — Full name of the airport.
        - `cityName` string — Name of the city in which the airport is located (or is nearest to).
        - `countryName` string — Name of the country in which the airport is located.
        - `countryCode` string — 2-letter IATA country code associated with the airport.
        - `zoneName` string — Name of the time zone associated with the airport.
        - `stateCode` string — 2-letter IATA code for the state in which the airport is located.
      - `destination` AirportInfo, required — Detailed information about the airport.
        - `airportCode` string — 3-letter code of the airport.
        - `airportName` string — Full name of the airport.
        - `cityName` string — Name of the city in which the airport is located (or is nearest to).
        - `countryName` string — Name of the country in which the airport is located.
        - `countryCode` string — 2-letter IATA country code associated with the airport.
        - `zoneName` string — Name of the time zone associated with the airport.
        - `stateCode` string — 2-letter IATA code for the state in which the airport is located.
      - `departureGate` GateInfo — Information about the flight's departure / arrival gates and terminals.
        - `gate` string — Gate number
        - `terminal` string — Airport terminal
      - `arrivalGate` GateInfo — Information about the flight's departure / arrival gates and terminals.
        - `gate` string — Gate number
        - `terminal` string — Airport terminal
      - `marketing` FlightNumber, required — Flight number and airline code.
        - `num` string, required — Flight number.
        - `airlineCode` string, required — Two-letter IATA airline code.
      - `operating` FlightNumber, required — Flight number and airline code.
        - `num` string, required — Flight number.
        - `airlineCode` string, required — Two-letter IATA airline code.
      - `operationalDisclosure` string — Operating airline name that has to be displayed to the user
      - `hiddenStops` object[] — Any stops for refueling or boarding additional passengers.
        - `airport` AirportInfo, required — Detailed information about the airport.
          - `airportCode` string — 3-letter code of the airport.
          - `airportName` string — Full name of the airport.
          - `cityName` string — Name of the city in which the airport is located (or is nearest to).
          - `countryName` string — Name of the country in which the airport is located.
          - `countryCode` string — 2-letter IATA country code associated with the airport.
          - `zoneName` string — Name of the time zone associated with the airport.
          - `stateCode` string — 2-letter IATA code for the state in which the airport is located.
        - `arrivalDateTime` DateTimeLocal, required — Local date and time in ISO 8601 format.
          - `iso8601` string, required
        - `departureDateTime` DateTimeLocal, required — Local date and time in ISO 8601 format.
          - `iso8601` string, required
      - `duration` Duration — Represents a duration of time with specific units of time.
        - `iso8601` string — Durations define the amount of intervening time in a time interval and are represented by the format P[n]Y[n]M[n]DT[n]H[n]M[n]S. The [n] is replaced by the value for each of the date and time elements that follow the [n]. Leading zeros are not required. The capital letters P, Y, M, W, D, T, H, M, and S are designators for each of the date and time elements and are not replaced. P is the duration designator (for period) placed at the start of the duration representation. Y is the year designator. M is the month designator. W is the week designator. D is the day designator. T is the time designator. H is the hour designator. M is the minute designator. S is the second designator and can include decimal digits with arbitrary precision.
      - `equipment` Equipment — The type of the aircraft equipment
        - `code` string — Aircraft equipment code
        - `type` string — Code representing the type of the equipment
        - `name` string — The name of the flight aircraft type
  - `paginationParams` PaginationResponseParams — Pagination parameters for response.
    - `numResults` integer, required — Total number of results in the paginated list.
    - `numPages` integer, required — Total number of pages in the paginated list.
  - `metadata` AirMetadata — Metadata associated with the air search response.
    - `airlineInfo` AirlineInfo[] — Metadata for all airlines available in the specific route.
      - `airlineCode` string, required — IATA code for airline.
      - `airlineName` string, required — Airline name
    - `applicableAlliances` Alliance[] — Alliances which are applicable based on the airlines info
    - `legBylegPricing` boolean — Flag indicating whether itineraries are priced on a leg-by-leg basis (instead of the overall itinerary pricing, which is the default).
    - `enableFareCategories` FareCategory[] — Fare categories that need to be used for the given air search
      - `ngsCategory` 'UNKNOWN_NGS_CATEGORY' | 'BASE' | 'STANDARD' | 'ENHANCED' | 'PREMIUM' | 'LUXURY' | 'ULTRA_LUXURY'
      - `cabinViewCategory` 'UNKNOWN_CABIN_CATEGORY' | 'BASIC' | 'ECONOMY' | 'PREMIUM_ECONOMY' | 'ECONOMY_PLUS' | 'BUSINESS' | 'FIRST'
    - `isExpressSearch` boolean — Flag indicating whether the search was performed as an express search.
    - `availableConnectingAirports` AirportInfo[] — List of connecting airports (layover locations) available in the search results. Sorted by: 1) number of results (descending), 2) alphabetically (ascending).
      - `airportCode` string — 3-letter code of the airport.
      - `airportName` string — Full name of the airport.
      - `cityName` string — Name of the city in which the airport is located (or is nearest to).
      - `countryName` string — Name of the country in which the airport is located.
      - `countryCode` string — 2-letter IATA country code associated with the airport.
      - `zoneName` string — Name of the time zone associated with the airport.
      - `stateCode` string — 2-letter IATA code for the state in which the airport is located.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — The specified resource was not found.

---

[API](https://skmtc.net/spotnana/apis/air-api.md) · [All operations](https://skmtc.net/spotnana/apis/air-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/spotnana/air-api/revisions/e60bb1bf6b90/schema)
