TABLE OF CONTENTS



It’s the endpoint responsible for flight search.

VersionDateDescription of Edit
Beta

2025/09/16

Initial Commit

V1.0

2025/10/22

AirShoppingRQ: 

  • Modified promotionCriteria data structure to support multi-supplier search scenarios

AirShoppingRS: 

  • Modified Price object
  • Add SSRs node to support returning optional paid ancillary services
  • Add technicalCapabilities

V1.1

2026/07/02AirShoppingRS: Added totalWeightMeasure to support total baggage weight allowance.
V2.0

2026/08/15

  • Supported return POO currency and settlement currency
  • Added taxCode in price breakdown.
  • Added journey price splitting (onwardTrip.price, returnTrip.price).
  • Added legInfos[] for stopovers (sequence, airport, duration, equipment).
  • Supported leg-level carbon_emissions in leg properties.
  • Added promotionDetailInfo under offer totalPrice and passenger fare price to return the promotion code, original base amount, discount amount, and currency.


Request Details

PathV1.0/api/flight/connectivity/search/airShopping
PathV1.0/api/flight/connectivity/search/V1.1/airShopping
PathV2.0/api/flight/connectivity/search/V2.0/airShopping


TRequest Payload Example

{
   "flightRequests": [
       {
           "cabinClass": "4",
           "currency": "USD",
           "arrivalInfo": {
               "iataLocationCode": "SIN",
               "type": "airportcode"
           },
           "departureInfo": {
               "iataLocationCode": "BKK",
               "departureDate": "2026-10-24",
               "type": "airportcode"
           }
       }
   ],
   "flightCriteria": {
       "flightType": 2
   },
   "carrierCriterias": [
       {
           "supplierName": "",
           "airlineCode": "",
           "agencyCode": "PKAIR-AGENCY"
       }
   ],
   "promotionCriterias": [
       {
           "supplierName": "",
           "promotionCode": "",
           "airlineCode": "",
           "agencyCode": "PKAIR-AGENCY"
       }
   ],
   "paxList": [
       {
           "paxType": "ADT",
           "count": 2
       }
   ]
}


Request Payload Structure


KeyParentTypeMandatory/OptionalDescription
flightRequestsrootArrayM
departureInfoflightRequestsObjectM
iataLocationCodedepartureInfoStringM3 uppercase letters
typedepartureInfoStringO
  • airportcode
  • citycode
How the iataLocationCode is to be interpreted, if empty, default as airportcode
departureDatedepartureInfoStringMYYYY-MM-DD
arrivalInfoflightRequestsObjectM
iataLocationCodearrivalInfoStringM3 uppercase letters
typearrivalInfoStringO
  • airportcode
  • citycode
How the iataLocationCode is to be interpreted, if empty, default as airportcode
arrivalDatearrivalInfoStringMYYYY-MM-DD
cabinClassflightRequestsIntO
  • 1 = First Class
  • 2 = Business Class
  • 3 = Premium Economy
  • 4 = Economy
currencyflightRequestsStringOOnly one currency per request. Official ISO 4217 three-letter codes.
https://www.iso.org/iso-4217-currency-codes.html
flightCriteriarootObjectOThis node allows to specify flight type preference for filtering results.
flightTypeflightCriteriaIntO
  • 1 = Direct (Non-stop)
  • 2 = Connect (Connecting)
  • 3 = Through

(Through-flight, same flight number throughout, ground stop involved, no plane change required)

carrierCriteriasrootArrayOThis node allows you to specify query preferences to initiate a search based on specific criteria.

such as supplier or airline (using airline group name) - ensuring that the results returned directly match the intended scope.

supplierNamecarrierCriteriasStringOThis field allows you to specify airline group/s with multiple operating airlines or specific flight supplier/s to query relevant content.
airlineCodecarrierCriteriasStringOSearch for specific airline/carrier by using IATA airline code
agencyCodecarrierCriteriasStringOsearch for specific airline agency code account
promotionCriteriasrootArrayO

A Promotion and discount code criteria to be passed to the retailer airline that could influence returned offers

promotionCodepromotionCriteriasStringOPromotion code ID or number.
supplierNamepromotionCriteriasStringO
airlineCodepromotionCriteriasStringO
agencyCodepromotionCriteriasStringO
paxListrootArrayORules:
1. Support only from 1 to 9 PAX
2. INF PAX should have a reference to one ADT PAX
3. At least 1 ADT PAX should be present
4. Number of Infants cannot be greater than Adult PAXs
paxTypepaxListStringO

Passenger Type Code:

  • ADT 
  • TEEN 
  • CHD
  • INF

*Note: Different airlines may have varying pax type classifications and age definitions for each type. DerbySoft will provide a reference library of airline-specific passenger age criteria for Sellers. If a pax type requested by the Seller (e.g., TEEN) is not supported by the Supplier, DerbySoft will map the Seller’s requested type to a corresponding type supported by the Supplier.


countpaxListIntOThe number of passenger type



Response


KeyParentTypeMandatory/OptionalDescription
searchResultsrootArrayO
suppliersearchResultsObjectO
supplierNamesupplierStringO
airlineCodesupplierStringO
agencyCodesupplierStringO
technicalCapabilitiessupplierArrayOnode provides critical information about the technical execution methods and support channels available for post-booking operations with this specific supplier. This allows you to understand how different modification requests (e.g., refunds, changes) are handled behind the scenes and set the correct user expectations
operationTypetechnicalCapabilitiesStringMThe type of post-booking operation. This field identifies which specific operation the technical details apply to (e.g., refunding a ticket, changing a flight). It scopes the context for the subsequent technical fields.
  • DIRECT_REFUND
  • ESTIMATED_REFUND
  • CHANGE_FLIGHT_TIME
  • UPDATE_PASSENGER_NAME
  • ADD_ANCILLARY
methodtechnicalCapabilitiesStringMHow the operation is technically executed. Key values: 
  • NATIVE_API: The supplier provides a direct, automated API. 
  • DS_AI_AGENT: Automation is enabled via an AI agent (e.g., RPA, robotic process).Note: This automated service may involve additional fees charged to the seller. 
  • MANUAL: The operation cannot be processed automatically. The seller must handle it offline by contacting the supplier or airline directly through their own channels
automationLeveltechnicalCapabilitiesStringMThe degree of automation. This field provides a high-level, intuitive summary of the method 
  • FULL
  • PARTIAL
  • NONE
apiAvailabilitytechnicalCapabilitiesStringMThis provides granular technical detail for integrators when the `method` is `NATIVE_API`
  • REALTIME: A synchronous API that provides immediate results 
  • ASYNC: An asynchronous API; a request is submitted, and the result must be polled for later.
tripsInfosearchResultsObjectM
tripKeytripsInfoStringM
onwardTriptripsInfoObjectM
flightTypeonwardTripIntM
  • 1 = Direct
  • 2 = Connect 
  • 3 = Through
segmentInfosonwardTripArrayMsegment information list
segmentSequencesegmentInfosIntM
durationsegmentInfosIntM
flightDesignatorsegmentInfosObjectM
marketingCarrierflightDesignatorObjectM
marketingCarrierCodemarketingCarrierStringM
marketingCarrierNamemarketingCarrierStringO
marketingFlightNumbermarketingCarrierStringM
equipmentTypemarketingCarrierStringOAircraft equipment type
departureInfosegmentInfosObjectM
airportCodedepartureInfoStringM
airportNamedepartureInfoStringM
terminaldepartureInfoStringO
departureDatedepartureInfoStringMDeparture date (yyyy-MM-dd)
departureTimedepartureInfoStringMDeparture time (HH:mm)
arrivalInfosegmentInfosObjectM
airportCodearrivalInfoStringM
airportNamearrivalInfoStringM
terminalarrivalInfoStringO
arrivalDatearrivalInfoStringMArrival date (yyyy-MM-dd)
arrivalTimearrivalInfoStringMArrival time (HH:mm)
stopNumbersegmentInfosIntONumber of stops
stopssegmentInfosArrayO
stopSequencestopsIntM
airportCodestopsStringM
airportNamestopsStringO
stayTimestopsIntMStay time in minutes
legInfossegmentInfosArrayO[Since v2.0]
legSequencelegInfosStringM[Since v2.0] The sequential number of the leg within the segment (e.g., 1 for the first flight leg, 2 for the second leg).
departureAirportlegInfosStringM[Since v2.0]
arrivalAirportlegInfosStringM[Since v2.0]
durationlegInfosIntM[Since v2.0]
equipmentTypelegInfosStringO[Since v2.0]
propertieslegInfosArrayO[Since v2.0]
keypropertiesStringO[Since v2.0]The identifier or name of the extended property. For example: 
  • carbon_emission
valuepropertiesStringO[Since v2.0] The calculated value of the property, passed as a string. For carbon emission, it represents the single-passenger emission amount (e.g., "246").
unitpropertiesStringO[Since v2.0] The measurement unit of the property value. For carbon emission, it defaults to "kg" (Kilograms).
returnTriptripsInfoObjectORefer to onwardTrip
airlineOffersearchResultsObjectM
offersairlineOfferArrayM
supplieroffersObjectO
offerIdoffersStringM
transInfooffersStringM
refTripKeyoffersStringM
brandFareNameoffersStringO
brandFareUrloffersStringO
brandFareCodeoffersStringO[Since v2.0]Brand Fare Identifier Code. Replaces airline-specific concepts like bundleCode. Represents the machine-readable code of the branded fare tier (e.g., "HFL" for premium flex)
fareTypeoffersStringO[Since v2.0]
availableCountoffersIntO
cabinClassoffersIntM
  • 1 = First Class 
  • 2 = Business Class 
  • 3 = Premium Economy 
  • 4 = Economy
supportedIssueWayoffersStringMHOLD INSTANT
totalPriceoffersObjectM
totalAmounttotalPriceStringMThe final total amount payable by the passenger. Calculation formula: TotalBaseAmount + TotalTaxFeeAmount + totalServiceFeeAmount
totalBaseAmounttotalPriceStringMThe price of the flight ticket itself, excluding taxes and service fees. When PriceType is Gross, this amount includes commission.
totalTaxFeeAmounttotalPriceStringMThe sum of all tax items, equal to the sum of amounts in TaxFeeDetail.
taxFeeDetailstotalPriceArrayO
codetaxFeeDetailsStringOThe tax name
taxCodetaxFeeDetailsStringO[Since v2.0]The code of tax
amounttaxFeeDetailsStringO
typetaxFeeDetailsStringOEnum values: 
  • AirlineTax - Standard airline taxes 
  • VAT - Value added tax 
  • Other - Other tax types
totalServiceFeeAmounttotalPriceStringO
serviceFeeDetailstotalPriceArrayO
codeserviceFeeDetailsStringOAll service fees related to flight booking - including those charged by non-airline suppliers, DerbySoft.
amountserviceFeeDetailsStringO
typeserviceFeeDetailsStringOEnum values: 
  • Supplier - Supplier service fee
  • DS - DerbySoft service fee
includedInTotalserviceFeeDetailsStringO
  • true - Already included in TotalAmount 
  • false - Not included in TotalAmount, requires additional payment
currencytotalPriceStringM
promotionDetailInfototalPriceObjectO[Since v2.0] Promotion details for this offer. Returned when a promotion is applied.
promoCodepromotionDetailInfoStringM[Since v2.0] The promotion code applied to this offer.
originalBaseAmountpromotionDetailInfoStringM[Since v2.0] The base fare amount before the promotion discount is applied.
discountAmountpromotionDetailInfoStringM[Since v2.0] The discount amount applied to the original base fare amount.
currencypromotionDetailInfoStringM[Since v2.0]
priceTypetotalPriceStringOEnum values: 
  • Net - Net price, base fare excludes commission 
  • Gross - Gross price, base fare includes commission
commissionAmounttotalPriceObjectO
amountcommissionAmountStringOPresent when PriceType is Gross, indicates the commission amount included in the base fare.
commissionRatecommissionAmountStringOPresent when PriceType is Gross, indicates the commission percentage.
currencyConversionstotalPriceArrayOProvided when any fee requires currency conversion, contains complete conversion information.
fromCurrencycurrencyConversionsStringO
toCurrencycurrencyConversionsStringO
ratecurrencyConversionsStringO
appliedTocurrencyConversionsStringO
referenceCodecurrencyConversionsStringOThe code(under service fee details node or tax fee details) for reference which this currencyConversions applied to.
originalAmountcurrencyConversionsStringO
convertedAmountcurrencyConversionsStringO
settlementPricestotalPriceArrayM[Since v2.0] For multi-currency, this node will return all eligible settlement currency quotations.
totalBaseAmountsettlementPricesStringM[Since v2.0]
totalTaxFeeAmountsettlementPricesStringM[Since v2.0] 
taxFeeDetailssettlementPricesArrayO[Since v2.0] 
codetaxFeeDetailsStringO[Since v2.0]  The tax name
taxCodetaxFeeDetailsStringO[Since v2.0] The tax code
amounttaxFeeDetailsStringO[Since v2.0]
typetaxFeeDetailsStringO[Since v2.0]Enum values: 
  • AirlineTax - Standard airline taxes
  • VAT - Value added tax
  • Other - Other tax types
totalServiceFeeAmountsettlementPricesStringO[Since v2.0] 
serviceFeeDetailssettlementPricesArrayO[Since v2.0] 
codeserviceFeeDetailsStringO[Since v2.0]  All service fees related to flight booking - including those charged by non-airline suppliers, DerbySoft.
amountserviceFeeDetailsStringO[Since v2.0]
typeserviceFeeDetailsStringO[Since v2.0]Enum values: 
  • Supplier - Supplier service fee 
  • DS - DerbySoft service fee
currencysettlementPricesStringO[Since v2.0] 
sourcesettlementPricesStringO[Since v2.0] 
exchangeRatesettlementPricesStringO[Since v2.0]
promotionDetailInfosettlementPricesObjectO[Since v2.0]  Promotion details for this settlement price. Returned when a promotion is applied.
promoCodepromotionDetailInfoStringM[Since v2.0]  The promotion code applied to this offer.
originalBaseAmountpromotionDetailInfoStringM[Since v2.0]  The base fare amount before the promotion discount is applied.
discountAmountpromotionDetailInfoStringM[Since v2.0]  The discount amount applied to the original base fare amount.
currencypromotionDetailInfoStringM[Since v2.0]
passengerFaresoffersArrayM
paxTypepassengerFaresStringM
pricepassengerFaresObjectO
baseAmountpriceStringO
currencypriceStringO
taxFeeAmountpriceStringO
taxFeeDetailspriceArrayO
codetaxFeeDetailsStringOThe tax name
taxCodetaxFeeDetailsStringO[Since v2.0]  The tax code
amounttaxFeeDetailsStringO
typetaxFeeDetailsStringOEnum values: 
  • AirlineTax - Standard airline taxes 
  • VAT - Value added tax 
  • Other - Other tax types
totalAmountpriceStringO
totalServiceFeeAmountpriceStringO
serviceFeeDetailspriceArrayO
codeserviceFeeDetailsStringOAll service fees related to flight booking - including those charged by non-airline suppliers, DerbySoft.
amountserviceFeeDetailsStringO
typeserviceFeeDetailsStringOEnum values: 
  • Supplier - Supplier service fee 
  • DS - DerbySoft service fee
includedInTotalserviceFeeDetailsStringO
  • true - Already included in TotalAmount 
  • false - Not included in TotalAmount, requires additional payment
currencytotalPriceStringM
priceTypetotalPriceStringOEnum values: 
  • Net - Net price, base fare excludes commission 
  • Gross - Gross price, base fare includes commission
commissionAmounttotalPriceObjectO
amountcommissionAmountStringOPresent when PriceType is Gross, indicates the commission amount included in the base fare.
commissionRatecommissionAmountStringOPresent when PriceType is Gross, indicates the commission percentage.
currencyConversionstotalPriceArrayOProvided when any fee requires currency conversion, contains complete conversion information.
fromCurrencycurrencyConversionsStringO
toCurrencycurrencyConversionsStringO
ratecurrencyConversionsStringO
appliedTocurrencyConversionsStringO
referenceCodecurrencyConversionsStringOThe code(under service fee details node or tax fee details) for reference which this currencyConversions applied to.
originalAmountcurrencyConversionsStringO
convertedAmountcurrencyConversionsStringO
promotionDetailInfopriceObjectO[Since v2.0]  Promotion details for this passenger fare. Returned when a promotion is applied.
promoCodepromotionDetailInfoStringM[Since v2.0] The promotion code applied to this passenger fare.
originalBaseAmountpromotionDetailInfoStringM**[Since v2.0]** The passenger base fare amount before the promotion discount is applied.
discountAmountpromotionDetailInfoStringM[Since v2.0]  The discount amount applied to the original passenger base fare amount.
currencypromotionDetailInfoStringM[Since v2.0]
settlementPricespriceArrayM[Since v2.0]  For multi-currency, this node will return all eligible settlement currency quotations.
totalBaseAmountsettlementPricesStringM[Since v2.0]
totalTaxFeeAmountsettlementPricesStringM[Since v2.0]
taxFeeDetailssettlementPricesArrayO[Since v2.0]
codetaxFeeDetailsStringO[Since v2.0] The tax name
taxCodetaxFeeDetailsStringO[Since v2.0] The tax code
amounttaxFeeDetailsStringO[Since v2.0] 
typetaxFeeDetailsStringO[Since v2.0]Enum values:
  • AirlineTax - Standard airline taxes
  • VAT - Value added tax Other - Other tax types
totalServiceFeeAmountsettlementPricesStringO[Since v2.0] 
serviceFeeDetailstotalPriceArrayO[Since v2.0]
codeserviceFeeDetailsStringO[Since v2.0]  All service fees related to flight booking - including those charged by non-airline suppliers, DerbySoft.
amountserviceFeeDetailsStringO[Since v2.0] 
typeserviceFeeDetailsStringO[Since v2.0]  Enum values:
  • Supplier - Supplier service fee
  • DS - DerbySoft service fee
currencysettlementPricesStringO[Since v2.0]
sourcesettlementPricesStringO[Since v2.0] 
exchangeRatesettlementPricesStringO[Since v2.0] 
promotionDetailInfosettlementPricesObjectO[Since v2.0]  Promotion details for this settlement price. Returned when a promotion is applied.
promoCodepromotionDetailInfoStringM[Since v2.0]  The promotion code applied to this passenger fare.
originalBaseAmountpromotionDetailInfoStringM[Since v2.0] The passenger base fare amount before the promotion discount is applied.
discountAmountpromotionDetailInfoStringM[Since v2.0]  The discount amount applied to the original passenger base fare amount.
currencypromotionDetailInfoStringM[Since v2.0] 
supportedDocumentTypepassengerFaresStringOTravel Document Types 
  • P: Passport
passengerIdentifyDocumentsRequiredpassengerFaresBooleanO
fareComponentspassengerFaresArrayM
onwardTripfareComponentsObjectM
segmentInfosonwardTripArrayM
segmentSequencesegmentInfosStringO
fareBasisCodesegmentInfosStringO
bookingCodesegmentInfosStringO
amenitiessegmentInfosObjectO
wifiamenitiesObjectO
availablewifiStringOBoolean value: true/false
seatamenitiesObjectO
typeseatStringO
legroomseatStringO
poweramenitiesObjectO
availablepowerStringOBoolean value: true/false
conditionsonwardTripArrayO
freeServicesonwardTripArrayO
serviceTypefreeServicesStringOThe category of the ancillary service: 
  • Meal
  • Priority Boarding
  • Special Assistance
  • Seat
  • Sport Equipment
  • Carbon Offset
descfreeServicesStringO
serviceNamefreeServicesStringO[Since v2.0] 
needSelectionfreeServicesStringO[Since v2.0] Selection Requirement Indicator. Indicates whether the included complimentary service requires explicit selection during booking or pre-booking (e.g., true for choosing seat designator/meal type; false for automatic benefits like priority boarding).
ssrCodefreeServicesStringO[Since v2.0]  Standard SSR Code. Transparently carries the underlying Special Service Request code
limitedPerPsgfreeServicesStringO[Since v2.0] 
freeBaggagesonwardTripArrayO
typeCodefreeBaggagesStringO
descTextfreeBaggagesStringO
ssrCode[Since v2.0] 
maximumDimensionAllowancefreeBaggagesObjectO
heightMeasuremaximumDimensionAllowance
lengthMeasuremaximumDimensionAllowance
linearMeasuremaximumDimensionAllowance
widthMeasuremaximumDimensionAllowance
unitOfMeasurementmaximumDimensionAllowance
pieceAllowancefreeBaggages
totalQtypieceAllowance
weightAllowancefreeBaggages
maximumWeightMeasureweightAllowance
weightUnitOfMeasurementweightAllowance
totalWeightMeasureweightAllowance
priceonwardTripObjectO[Since v2.0]  Added to return onward trip price and return trip price. The structure is same with passengerFare.price
returnTripfareComponentsObjectM
ssrsoffersArrayOSSRS node is designed to return available optional paid ancillary services that passengers can purchase in addition to their flight ticket
servicessrsObjectM
serviceNameserviceStringMThe commercial name of the service as displayed to passengers
serviceTypeserviceStringMThe category of the ancillary service:
  • Baggage
  • Meal
  • Priority Boarding
  • Special Assistance
  • Seat
  • Sport Equipment
availabilityserviceStringOIndicates current available numbers of the service
dataserviceOrderObjectO
baggageAssociationsdataObjectOThis node is ONLY present when serviceType = 'BAGGAGE'. Contains baggage-specific details
baggageIdbaggageAssociationsStringO
typeCodebaggageAssociationsStringOType of baggage
  • CheckedIn
  • CarryOn
descTextbaggageAssociationsStringO
maximumDimensionAllowancebaggageAssociationsObjectO
heightMeasuremaximumDimensionAllowanceStringOMaximum allowed height of the baggage
lengthMeasuremaximumDimensionAllowanceStringOMaximum allowed length of the baggage.
linearMeasuremaximumDimensionAllowanceStringOMaximum allowed linear dimensions (sum of dimensions)
widthMeasuremaximumDimensionAllowanceStringOMaximum allowed width of the baggage
unitOfMeasurementmaximumDimensionAllowanceStringOUnit of measurement for dimensions (e.g., CM, IN)
pieceAllowancebaggageAssociationsObjectO
totalQtypieceAllowanceStringMTotal number of baggage pieces allowed
weightAllowancebaggageAssociationsStringM
maximumWeightMeasureweightAllowanceStringMMaximum allowed weight per baggage piece
weightUnitOfMeasurementweightAllowanceStringMUnit of measurement for weight (e.g., KG, LB)
totalWeightMeasureweightAllowanceStringOTotal maximum weight allowed for the baggage allowance. Used when the allowance is based on total weight across pieces.
seatdataObjectO
seatIdseatStringO
designatorseatStringOReferred to as airline code
deckseatStringOIndicates the level or deck of the aircraft where the seat is located.
  • Main: for the primary cabin deck
  • Upper: for the upper deck
rowNoseatStringOSpecifies the row number of the seat
colNoseatStringOSpecifies the column position or seat letter within the row
seatTypesseatArrayOThe characteristics and features of the seat. This field uses standardized codes:
  • WINDOW
  • AISLE
  • EXIT
  • MIDDLE
  • EXTRA_LEG_ROOM
  • HANDICAP_ACCESSIBLE: wheelchair accessible seat
servicePsgFaressrs
paxTypeservicePsgFare
unitPriceservicePsgFare
totalAmountunitPrice
servicePsgFareunitPrice
eligibleTripsssrsObjectMIndicates which specific trip segments this service applies to. Multiple serviceOffers are returned when a service is available for different trips.
onwardTripeligibleTripsObjectO
segmentSequenceonwardTripArrayOSegment sequence numbers in the onward trip that this service applies to
returnTripeligibleTripsObjectO
segmentSequenceonwardTripArrayOSegment sequence numbers in the return trip that this service applies to
eligibleLegssrsObjectOFor multi-leg segments (flights with stopovers), specifies which specific leg within a segment the service applies to. Empty for non-stop flights.
legSequenceeligibleLegStringM
errorrootObjectO
  • Each search result consists of two primary components: the trip information (tripinfo) and the available offers.
    • The tripinfo section primarily contains the itinerary details, including but not limited to departure and arrival times, marketing carrier, and operating carrier.
    • The offers section, meanwhile, provides the comprehensive pricing for the entire itinerary (e.g., the total cost for one adult and one child if requested), a breakdown of fares by passenger type, along with details on bundled services and the associated change and cancellation policies.
  • OfferID Persistence
    • The offerId within the offer object is a mandatory unique identifier for the specific itinerary.
    • You must store this value. It is a required reference key for subsequent API calls, specifically the OfferPrice and OrderCreate requests, to uniquely identify the chosen offer.