Search API Reference
POST |
catalog/search/catalogproductofferings Base path: Pre-production https://api.pp.travelport.com/11/air/ Production https://api.travelport.com/11/air/ |
Related Content: Air Shopping Guide, Search Workflow Diagrams, Next Leg Search API Reference
The Search API is the first step in the JSON API travel booking workflow. Send a Search request to return offers for flights between specific locations.
Request
Also see Authorization and Common Headers.
Headers
Header Field |
Description |
Required |
---|---|---|
Setting to return either a journey- or leg-based response:
Planned for deprecation. Best practice is not to use IsJourney but instead send the payload object CustomResponseModifiersAir/SearchRepresentation. If both IsJourney and SearchRepresentation are sent and have contradictory values, Search uses the value in SearchRepresentation and disregards IsJourney.
|
Optional If not sent default is true. |
|
taxBreakdown |
Setting whether to return a tax breakdown for each offer. Send with a value of true to return a tax breakdown or false not to return it. GDS only; not supported for NDC. |
Optional If not sent default is true. |
Query Parameters
None.
Request Body
Basic Search Request
The minimum search request detailed below sends itinerary and passenger details.
Object |
Description |
Required |
||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
CatalogProductOfferingsQueryRequest
|
Top level object. |
Required |
||||||||||
CustomResponseModifiersAir |
Includes SearchRepresentation and optional indicators.
|
Optional |
||||||||||
|
Send SearchRepresentation to specify either a journey- or leg-based response. Supported values:
This setting does not affect one-way itineraries. The IsJourney header parameter, used in 22.11.21 and earlier to specify leg/journey responses, remains available but will be deprecated in a future release. Customers should update to SearchRepresentation as soon as feasible. If IsJourney and SearchRepresentation are both sent and have contradictory values, Search uses the value in SearchRepresentation and disregards IsJourney.
Next Leg Search requests, and Flight Specific Search requests for less than the full itinerary, are supported only after a leg-based Search, not a journey-based Search. If these requests follow a journey-based Search request, the error message "Next Leg Search is supported only for Leg Based Customers" or "Partial Flight Specific Search is supported only for Leg Based Customers" is returned.
|
Optional If not sent a journey-based response is returned |
||||||||||
|
Boolean. Indicator to return Boolean. Indicator to return flight amenities from ATPCO RouteHappy data:
If requested, amenities are returned in ReferenceListAmenity. Search 24.11.46.4 and later.
|
Optional |
||||||||||
|
Boolean. Indicator to exclude baggage fees, carry on fees, and embargo information from the response. Baggage quantity or weight is returned instead.
GDS only; not supported for NDC.
|
Optional If not sent baggage fees, carry on fees, and embargo information are returned as applicable |
||||||||||
|
Boolean. Indicator to exclude a surcharge breakdown from the response. Baggage quantity or kilos is returned instead.
GDS only; not supported for NDC.
|
Optional |
||||||||||
|
Boolean. Indicator to request the return of the fare calculation ladder.
GDS only; not supported for NDC or in the full payload Flight Specific Search request.
|
Optional |
||||||||||
|
Boolean. Indicator to request the return of CO2 emission data in the Search and Next Leg Search responses.
These warning messages may be returned in the following scenarios for each:
|
Optional |
||||||||||
CatalogProductOfferingsRequest
|
Object to set response-wide options. Includes PassengerCriteria and SearchCriteriaFlight objects. |
Required |
||||||||||
|
This object is not in use and is ignored if sent. |
Not used |
||||||||||
|
Number. Sets whether to invoke caching so that journey-based search results can be referenced by subsequent reference payload requests. Set to any number equal to or greater than 1. No maximum value. If offersPerPage is not sent for a journey-based search, the results are not cached and the response does not return a transaction identifier. Does not affect leg-based search results, which are cached by default. If your workflow subsequently references a journey-based search result, the Search request must send offersPerPage set to any positive number. This setting invokes caching so that search results can be referenced later. A journey-based search returns all legs of the itinerary, while a leg-based search returns one leg at a time and is cached by default. If a journey-based Search request does not send offersPerPage, the reference payload requests for Flight Specific Search, AirPrice, and Add Offer will fail.
|
Optional If not sent caching is not invoked for journey-based search results |
||||||||||
|
String. Supports requesting both or either GDS or NDC content. Supported values are:
Send both values to return aggregated GDS and NDC content: "contentSourceList" : [ "GDS", "NDC"], |
Optional If not sent only GDS content is returned |
||||||||||
|
Number. Returns the specified number of upsell fares for each base fare, up to 4, or as many are filed by the airline if fewer than 4. This value carries over to any follow-on Next Leg Search request. Note the following differences for GDS and NDC:
Upsells are not returned in a specific object but rather are presented along with the base fare as a higher level of service, usually a branded fare.
Values greater than 4 do not return an error message but return a maximum of 4 upsells per base fare.
The number of upsells that can be requested are limited for multi-city itineraries: 4 to 6 O&Ds (supported only for GDS) are limited to 1 upsell; 3 O&Ds are limited to 2 upsells; and 1 or 2 O&Ds (one-way or round-trip itineraries) can have up to 4 upsells.
|
Optional |
||||||||||
Array. Defines the type of passenger to search for. Send one PassengerCriteria for each passenger type code (PTC). Search supports up to 9 total passengers.
A maximum of 6 PTCs are supported for GDS. NDC does not have a PTC limitation.
A maximum of 6 O&D pairs are supported for GDS regardless of whether branded fare and upsells are requested.
May include the optional CustomerLoyalty and TravelerGeographicLocation objects. |
Required |
|||||||||||
|
String. The passenger type code for the passengers on the itinerary. Common PTCs are:
See the Tools page to download a full list of PTCs. When running a multiple passenger search for NDC on Qantas, Qantas supports only these PTCs: ADT, CHD, CNN, INF. Sending any other PTC may result in an error at ticketing.
|
Required |
||||||||||
|
Number. The number of passengers with this PTC. |
Required |
||||||||||
|
Number. The age of the passenger. Notes on PTC and age
|
Optional |
||||||||||
|
Boolean. true returns only offers for the specified PTC. If no offers for that PTC are available, the error message "No Offers Found for channel [Identifier]" is returned. GDS only; not supported for NDC.
|
Optional Default is false |
||||||||||
Optional object for sending customer loyalty information, such as for a frequent flyer program. If CustomerLoyalty is sent in the Search request, it must also be sent in the AirPrice request and the Add Traveler request. Because some carriers validate frequent traveler data through the workflow, failing to send the same CustomerLoyalty details, even if invalid, may cause a booking failure. If an invalid number is sent, the response returns the warning message M INVALID FQTV NAME OR NUMBER - {carrier code} and the JSON APIs cache the invalid number to prevent a potential booking failure.
|
Optional |
|||||||||||
|
String. Customer loyalty number. |
Required |
||||||||||
|
String. Customer loyalty program carrier code. |
Required |
||||||||||
|
String. Customer loyalty member name; up to 128 characters are supported. For discounted offers to be returned, the name must be sent as LAST FIRST; e.g., in the example below SMITH is the last name and JORDAN is the first name.
"cardHolderName": "SMITH JORDAN " |
Required |
||||||||||
TravelerGeographicLocation |
Optional object for requesting local citizen/local resident fares for Spain and associated islands. You must also send a PTC relevant to the local resident fares; e.g., ADR for adult resident, CHR for child resident.
Note that any discount applied via the TravelerGeographicLocation objects below will apply to all travelers, not only to the traveler in this instance of PassengerCriteria. If the discount is to apply only to an individual traveler, that traveler requires a separate search and book workflow.
|
Optional |
||||||||||
|
String. IATA code specifying the location relevant to the local citizen//local resident fare. |
Optional |
||||||||||
|
String. The type of location. Supported values are
|
Optional |
||||||||||
|
Optional string for resident code, used to handle Spanish residency fares for NDC, which requires this code in addition to the city of residence specified in value above. Note that any discount applied will apply to all travelers, not only to the traveler in this instance of PassengerCriteria. Supported/validated only for NDC to support local citizen fares.
|
Optional |
||||||||||
|
Boolean. Send with a value of true if request qualifies for special large family resident discount: Special large families (4 or more children) from Spain, from the EU/EEA or of any other nationality, whose residency in Spain is recognized and who are in possession of a large-family certificate issued by the autonomous community in which they live. Supported/validated only for NDC to support local citizen fares.
|
Optional |
||||||||||
|
Boolean. Send with a value of true if request qualifies for general large family resident discount: General large families (up to 3 children) from Spain, from the EU/EEA or of any other nationality, whose residency in Spain is recognized and who are in possession of a large-family certificate issued by the autonomous community in which they live. Supported/validated only for NDC to support local citizen fares.
|
Optional |
||||||||||
PaymentCriteria |
Optional object to send the BIN of the credit card to be used for payment. Sending the BIN returns OB fees in the response, which are ticketing and form of payment (FOP) fees, including credit card fees. Returned in an instance of Price/PriceBreakdown/Fees/Fee with a feeCode of OB. Includes IssuerIdentificationNumber. |
Optional |
||||||||||
|
String, 6 to 11 digit number. Send the BIN of the credit card to be used for payment. |
Required if PaymentCriteria sent |
||||||||||
|
Array. Each instance defines one leg of the itinerary by specifying an origin and destination (O&D) pair, aka departure and arrival location, for that leg. Send one instance of SearchCriteriaFlight for each leg of the itinerary. You must specify all O&D pairs for all legs of the itinerary, even for a leg-based search.
Includes From and To objects. Search, Next Leg Search, and Flight Specific Search support up to six O&D pairs for both GDS and NDC. If more are sent Search returns the error "No Offers found for the channel." Note this affects the number of upsells that can be returned:
|
Required |
||||||||||
|
String. Date of departure in YYYY-MM-DD format (e.g., departureDate="2024-12-06"). |
Required |
||||||||||
|
String. Optional to send a time to search for flights departing close to that specified time. HH:MM:SS format (e.g., departureTime="18:00:00"). departureTime is required on a same-day flight, i.e., when searching for multiple legs on the same day.
When departure time is sent for NDC content, Search returns NDC offers with flights between 2 hours before and 2 hours after the departure time. E.g., for departureTime of 10:00:00, Search returns available flights between 8:00 and 12:00. For NDC content, if multiple time options are sent in the same instance of SearchCriteriaFlight, they are applied in the order DepartureTimeRange (see below), departureTime, and arrivalTime.
|
Optional |
||||||||||
|
String. Date of arrival in YYYY-MM-DD format (e.g., departureDate="2024-12-06"). Cannot be used with departureDate. |
Required |
||||||||||
|
String. Optional to send a time to search for flights arriving close to that specified time. HH:MM:SS format (e.g., departureTime="18:00:00"). Cannot be used with departureTime. For NDC, when sending arrivalTime, an arrival window of plus or minus 2 hours from the value in arrivalTime is applied to the search. Supported for NDC only on carriers AA, UA, BA, LHG, QF.
|
Optional |
||||||||||
From |
Object. |
Required |
||||||||||
|
String. The IATA airport or city code for the departure airport/city for this leg. |
Required |
||||||||||
|
String. Optional enumeration specifying whether to restrict the search based on the city/airport code sent in value. Supported values:
Possible options and behavior are as follows. Note that these behaviors are for availability selection only. Actual content may vary based on calculated price and diversity. While supported for NDC in the search APIs, not all NDC carriers may support all options.
|
Optional |
||||||||||
To |
Object |
Required |
||||||||||
|
String. The IATA location code for the arrival city/airport for this leg. |
Required |
||||||||||
|
String. Optional enumeration specifying whether to restrict the search based on the city/airport code sent in value. Supported values:
See the table in From/cityOrAirport above for options and behavior. |
Optional |
||||||||||
DepartureTimeRange |
Object. Supports searching by a departure time window for any leg of the itinerary. |
Optional |
||||||||||
|
String in HH-MM format. The start time of the departure time window to search. Either start or end is required. |
Optional |
||||||||||
|
String in HH-MM format. The end time of the departure time window to search. Either start or end is required. |
Optional |
||||||||||
ArrivalTimeRange |
Object. Supports searching by an arrival time window at the destination. GDS only, not supported for NDC.
|
Optional |
||||||||||
|
String in HH-MM format. The start time of the arrival time window to search. |
Optional |
||||||||||
|
String in HH-MM format. The end time of the arrival time window to search. |
Optional |
SearchModifiersAir (optional journey modifiers)
Add one or more optional modifiers to filter search results by criteria related to the journey itself. All journey modifiers are in CatalogProductOfferingsQueryRequest/CatalogProductOfferingsRequest/SearchModifiersAir. Any modifiers sent in the initial Search request are applied to any subsequent Next Leg Search request.
Object |
Description |
Required |
---|---|---|
SearchModifiersAir |
Object for optional journey modifiers. All modifiers apply to the entire itinerary, not at the leg level, unless otherwise specified with legSequence per below.
|
Optional |
|
Boolean to exclude ground transportation from the response. By default, the response may return ground transportation options such as trains and buses, depending on the routing. You can exclude from the search results either all ground transportation or only train options. Supported values are:
GDS only, not supported for NDC.
In the response, ground transportation options are identified in ReferenceList/Flight by the TRN, TRS, or BUS equipment codes. |
Optional |
|
Boolean. true excludes itineraries that require changing airports during connections. Default of false may return itineraries that require change of airport. |
Optional |
ConnectionPreferences |
Supports searching by connection preferences. Search 24.11.40.3 and later. GDS only, not supported for NDC.
Show Example ConnectionPreference
This example excludes the return of flights that connect through LON, MIL, or ROM on the first leg of the itinerary.
|
Optional |
|
String. Requests only itineraries that do not exceed a set length of time between flights on the same leg. Applies to all connections on the itinerary. Use the format PT{x}H, in which P is the duration designator, T is the time designator, and {x}H is the number of hours the connection should not exceed (e.g., "MaxOvernightDuration" : "PT3H"). For minutes use {x}H{x}M. For details see the ISO-8601 standard in https://en.wikipedia.org/wiki/ISO_8601#Durations GDS only, not supported for NDC.
|
Optional |
|
String. Limits the duration of any overnight connection in the results. For connecting flights, if the first flight in the connection arrives on one calendar date and the connecting flight is on another calendar date, this constitutes an overnight connection. See MaxConnectionDuration for supported format. GDS only, not supported for NDC.
|
Optional |
|
String. Optional enumeration specifying whether to restrict the search based on the city/airport code sent in value. Supported values:
See cityOrAirport above for behavior. |
Optional |
|
Use to apply preference to only specific legs of the itinerary; see legSequence below. Do not send if requesting preference at itinerary level. |
Optional |
|
String. The type of connection preference. Supported values are:
Only one preference type can be requested for an origin/destination pair. |
Required |
|
String. Three-letter IATA code for the connecting location/s for this preference. For example, if you specify three locations, any flights meeting any one or more of those locations will be permitted/preferred/prohibited per the specified preferenceType. |
Required |
CarrierPreference |
Array. Specify preferences around a specific airline or multiple airlines. You can limit results to one or more carriers, exclude results from one or more carriers, or weight toward one or more carriers. Only one carrier preference type is allowed per request, but there is no limit to the number of carriers that can be permitted, prohibited, or preferred. Any preferences sent in the initial Search request are applied to any subsequent Next Leg Search request. |
Optional |
|
String. The type of carrier preference. Supported values are:
|
Required |
|
String. One or more carrier codes to permit, prohibit, or prefer. Preferred alliances are also supported; send the alliance code (e.g., /*A) instead of the carrier code. |
Required |
|
Use to apply the carrier/alliance preference to only specific legs of the itinerary; see legSequence below. Do not send if requesting preference at itinerary level. GDS only; not supported for NDC. |
Optional |
Array. Requests a fare based on the cabin class. Only one cabin preferenceType (Permitted, Preferred, PreferredWithUpgrade) is allowed per request, but there is no limit to the number of cabins that can be sent. Any CabinPreference in the initial Search request is applied to any subsequent Next Leg Search and reference Flight Specific Search requests.
|
Optional |
|
|
String. A space-delimited list of cabins. Supported values are (no default):
|
Required |
|
Supported values:
Sending a mix of preferenceType values is not supported. For example, you cannot send an instance of CabinPreference with a preferenceType of Permitted and another instance with preferenceType of Prohibited. In this case the results default to the Preferred preference.
|
Required |
legSequence |
If requesting a preference at the leg level, use legSequence to specify the sequence of the leg that the preference should apply to. You can apply the preference to only some legs of the itinerary, or different preferences to different legs. The following example excerpt shows one instance of CabinPreference applied to legs 1 and 4, and another instance that applies to legs 2 and 3. To apply a preference to the entire itinerary, do not send legSequence. Leg level preference is supported only for CarrierPreference, CabinPreference, and ClassOfServicePreference.
GDS only; not supported for NDC.
Show Example CabinPreference applied to itinerary
Show Example CabinPreference at leg level - single cabin preference on two legs
Show Example CabinPreference at leg level - different cabin preference for different legs
|
Optional |
ClassOfServicePreference
|
Array. Specifies preferences around a class of service. Includes PreferenceType. GDS only; not supported for NDC.
|
Optional |
|
Use to apply preference to only specific legs of the itinerary; see legSequence above. Do not send if requesting preference at itinerary level. |
Optional |
|
One or more classes of service to permit or prohibit. |
Required |
|
Supported values:
Optionally, you can apply a ClassOfServicePreference to one or more legs with legSequence per above. To apply a preference to the entire itinerary, do not send legSequence.
|
Optional |
ConnectionPreferences |
Top level object for connection preferences. Must be sent with @type “ConnectionPreferencesAir” when sending FlightType. If the @type value is not sent, FlightType is ignored for GDS; for NDC, a time out error is returned.
|
Optional |
FlightType |
Object. Specifies search preferences about connections and stops. |
Optional |
|
String. The connection type to limit the search at. Supported values are (no default):
Each value returns the specified type and all higher types. For example, StopDirect could return both flights that stop without a change of planes (StopDirect) and non-stop direct flights (NonStopDirect). SingleConnection or DoubleConnection will not exclude StopDirect flights from the journey. For example, SingleConnection could return an itinerary with two flight numbers, and either of these flights could have intermediate stops. |
Optional |
|
Boolean. true omits interline connections from results. The default of false allows interline connections in results. An interline connection is when connecting flights from multiple carriers are handled by one carrier per an agreement between those carriers. GDS only, not supported for NDC (NDC does not support interline connections). When a product contains multiple interline air segments, only the brand of the significant carrier is returned in the brand details, not the validating/plating carrier's brand information. The IATA rules for determining the significant carrier on an itinerary are based on the areas in which the transportation takes place. |
Optional Default is false |
ProductInclusionPreference |
Object. Limits the offers returned to only fares that include in the price the brand attributes specified in Classification. The response also returns information about other brand attributes, and those brand attributes may be included, chargeable, or not offered. |
Optional |
|
String. Send one or more of the following values to return only fares that include those attributes in the price. For example, sending CarryOn returns only fares that include a carry-on bag in the price.
If any brand attributes are sent other than the supported attributes listed above, ProductInclusionPreference is ignored and the lowest fares are returned regardless of associated brand attributes.
See Branded Fares and Upsells for details. |
Required if ProductInclusionPreference sent |
CustomResponseModifiersAir |
Object. Sends additional modifiers. May include BrandAttributeInclusion. |
Optional |
|
Boolean. Sets whether to return change and cancel penalties: true omits penalty information from the search response. If not sent, or set to false, the response returns a Penalties object with change and penalty details for each offer, if the carrier returns that information. GDS only, not supported for NDC.
|
Optional Default is false |
|
Boolean. Sets whether to return unbundled fares:
GDS only, not supported for NDC.
|
Optional Default is false |
BrandAttributeInclusion |
Object. Supports returning only information about the brand attributes specified in Classification below and does not return any other brand attributes for those fares. The specified brand attributes returned may be included, chargeable, or not offered. |
Optional |
|
String. Send one or more of the following values to return information about only the specified attributes. Fares may include other attributes but information about them is not returned. Supported values:
See Branded Fares and Upsells for details. Includes AdditionalClassification. |
Required |
|
String. Can be sent to filter out the specified additional brand attributes. Supported values:
|
Optional |
PricingModifiersAir (optional pricing modifiers)
Add one or more optional modifiers to filter search results by pricing criteria. All pricing modifiers are in CatalogProductOfferingsQueryRequest/CatalogProductOfferingsRequest/PricingModifiersAir.
Object |
Description |
Required |
---|---|---|
PricingModifiersAir |
Object for optional pricing modifiers. May include FareSelection, FareSelectionDetail, and OrganizationInformation. |
Optional |
|
String. Send the currency type to return if you want to override the default currency specified with your PCC. For a list of currency codes, see the Universal API Reference Data file linked from Tools. |
Optional |
|
String. The IATA location code for the city. Overrides the sell city of the requester to specify an alternate sale location and return fares based on that location. GDS only, not supported for NDC.
|
Optional |
|
String. The IATA location code for the city. Overrides the ticketing city of the requester to specify an alternate ticket location and return fares based on that location. GDS only, not supported for NDC.
|
Optional |
|
String, 2-10 characters supported. Overrides the ticketing PCC associated with your account to specify an alternate PCC and return fares based on that PCC. GDS only, not supported for NDC.
|
Optional |
|
String, 2-10 characters supported. Use to send a faring PCC for which a selective access or code group agreement exists between that PCC and the PCC associated with your account. The following combinations of PricingPCC and FareSelection/fareType=PrivateFaresOnly (see immediately below) return results as follows:
GDS only, not supported for NDC.
|
Optional |
|
Boolean. Send as true to request split ticketing, which returns outbound and inbound one-way fares in addition to round trip options. This may result in lower fares than the same or similar round-trip itinerary. If sent with false or not sent, split ticketing options are not returned. The Search response returns offers in the following order:
The response identifies the one-way outbound and one-way inbound offers with CombinabilityCode j0. The round trip offers are identified with CombinabilityCode values starting with j1 and incremented by one. Only the following are in scope for split ticketing:
Split ticketing is not supported for round-trip leg-based offerings, virtual interlining, or NDC. If requested in those scenarios, Search ignores the split ticketing indicator, returns a normal Search response, and returns in the Result object the warning message Split Ticketing is not supported and has been ignored. Available only in the Search, Price, and Fare Rules APIs, and for customers specifically provisioned for split ticketing. Split ticket itineraries cannot yet be booked or ticketed.
If your account is not configured for split ticketing, sending includeSplitPaymentInd returns a normal Search response and the warning message User is not authorized for Split Ticketing Shop. Please contact support.
GDS only, not supported for NDC.
|
Optional |
|
Number between 0 and 99. Send with includeSplitPaymentInd above to configure the split ticketing response. By default, Search divides the split ticketing response into 34% round-trip offerings and the remainder as outbound and inbound one-way fares. To change this percentage, send SplitPaymentOfferings with a percentage value of round trip offers to return. |
Optional |
returnMostRestrictiveBrandInd |
Boolean. Allows you to choose whether to return information for either the most restrictive brand or the brand on the most significant segment on the itinerary, when there are different brands on the segments of a connecting flight. Supported values:
GDS only, not supported for NDC.
|
Optional If not sent default is false |
Object. May include FareSelectionDetail, RefundOptions, and ChangeOptions objects. Search 23.11.24 and later support sending up to 12 refundability and changeability options in FareSelection. In earlier versions and for NDC, up to 6 FareSelection options are supported.
Key value pair:
The response identifies the type of fare returned for each Product in PassengerFlight/FlightProduct @fareType. Possible values in the response are AirlinePrivateFare, AgencyPrivateFare, NetFare, or PublicFare. |
Optional |
|
FareQualifierString |
NDC only, carriers BA and AF/KLM only; not supported for GDS.
Optional object for NDC only to request specific private leisure fares on specific carriers as follows. Although this a string object that can support any value, send the appropriate string for the type of leisure fare requested per below. For NDC carrier AirFrance/KLM (AF/KLM), when requesting private fares (fareType=PrivateFaresOnly) for Tour Fares, Visit Friends and Relatives, or Consolidator fares, send FareQualifierString with one of the following corresponding values:
For NDC carrier British Airways (BA), send when requesting private fares (fareType=PrivateFaresOnly) for the following types of specific leisure fares, send FareQualifierString with one of the following strings:
To support additional private fares, FareQualiferString supports the following strings for the following specific carriers: AF:
KL:
BA:
IB:
Show Example excerpt
|
Optional |
FareQualifier |
NDC only, carrier AF/KLM only; not supported for GDS.
Best practice is to send FareQualifierString above; however, this FareQualifier enumeration is also supported. If both are sent, the value in FareQualifierString is applied and any value in FareQualifier is ignored.
Optional object supported only for NDC carrier AirFrance/KLM (AF/KLM) when requesting private fares (fareType=PrivateFaresOnly) for the following types of specific private fares, sent in value as follows:
Show Example excerpt
|
Optional |
FareSelectionDetail |
Object to request fares with specific restrictions. GDS only; not supported for NDC. No NDC content is returned if any of the following are sent with true.
The response does not currently return any indicators about these conditions. |
Optional |
|
Boolean. true prevents the return of fares that require advance purchase. Default is false. |
Optional |
|
Boolean. true prevents the return of fares that require a maximum stay. Default is false. |
Optional |
|
Boolean. true prevents the return of fares that require a minimum stay. Default is false. |
Optional |
|
Boolean. true prevents the return of fares that are not fully refundable. Default is false. |
Optional |
ChangeOptions |
Supports requesting only fares that meet certain change criteria. Key value pair:
You cannot send both RefundOptions and ChangeOptions, or more than one value in changeTypes. If so, Search ignores the refund or change options sent and the result includes all fares regardless of change and/or refund status.
GDS only; not supported for NDC.
|
Optional |
RefundOptions |
Supports requesting only fares that meet certain refund criteria. Key value pair:
You cannot send both RefundOptions and ChangeOptions, or more than one value in refundTypes. If so, Search ignores the refund or change options sent and the result includes all fares regardless of change and/or refund status.
GDS only; not supported for NDC.
|
Optional |
OrganizationInformation
|
Object. Includes OrganizationIdentifier. |
Optional |
OrganizationIdentifier
|
Array of account codes to return negotiated fares. The response returns an instance of TermsAndConditions/OrganizationInformation/OrganizationIdentifier for each account code sent. Qantas supports only one account code. If multiple codes are sent, only the first code is processed.
For NDC only, if the account code/corporate ID number is sent as a pricing modifier in OrganizationIdentifier in the Search request, that number is retained and sent at workbench commit without having to enter it in any additional step after Search. The account code/corporate ID number is returned in the workbench commit and reservation retrieve responses. NDC only; not supported for GDS. |
Optional |
|
String. Supported values:
|
Required |
|
String. The account code to apply. For GDS, up to 15 account codes are supported. For NDC, one account code per carrier is supported. |
Required |
|
String. The IATA code for the airline on which the account code is applicable. |
Optional |
|
Boolean. Optional indicator to limit the fares returned to only fares filed for that account code. Send set to true, along with one or more account codes in OrganizationIdentifier/value per above. If sending multiple account codes, send each instance with accountCodeFaresOnlyInd set to true. If not sent the default is false.
GDS only; not supported for NDC.
|
Optional |
PromotionalCode |
Any promotional code. NDC only; not supported for GDS. |
Optional |
|
String. The promotional code to apply. |
Required |
|
String. The IATA code for the airline on which the promotional code is applicable. |
Required |
ManualFareAdjustment |
Search 24.11.46.3 and later.
GDS only, not supported for NDC.
Number up to 2 decimal places. Send to manually adjust the base fare amount on all fares. You can adjust the base fare for all PTCs or only specified PTCs. You can increase or decrease the base fare by either an amount or a percentage. Send with @type value ManualFareAdjustmentDiscount to decrease the base fare. Send with @type value ManualFareAdjustmentIncrease to increase the fare. If the PCC currency and the country of origin currency are different, then the amount or percentage is applied to the filed amount base fare that is converted into the PCC currency.
Show Example excerpt
The following excerpted PricingModifiersAir object increases the base fare by an amount of 10.5 for ADT passengers, and discounts the base fare by 5% for CHD passengers.
|
Optional |
|
Send the PTC or PTCs to be increased or decreased. This increases or decreases the fare for all passengers with the PTC/s. If not sent, ManualFareAdjustment applies to all PTCs sent in PassengerCriteria. |
Optional |
|
Send to adjust the base fare for the specified PTC/s by the percentage sent in Percent as follows:
|
Either AmountPercentPercent or AmountPercentAmount is required if ManualFareAdjustment is sent |
|
Send to adjust the base fare for the specified PTC/s by the amount sent in Amount as follows:
|
Either AmountPercentPercent or AmountPercentAmount is required if ManualFareAdjustment is sent |
TaxExemption |
Search 24.11.46.3 and later.
GDS only, not supported for NDC.
Marks as tax exempt either all taxes, only specific tax codes, or all taxes in specific countries. Send either allTaxesExemptInd orthe key value pairs countries and taxCodes per below. TaxExemption supports up to nine values for countries, or nine values for taxCodes, or up to nine values in countries and taxCodes combined. If sent, the response returns any exempt taxes with exemptInd as true and the value as 0. |
Optional |
countries |
Array. One or more two-letter alphanumeric codes for the countries in which the taxCodes sent are tax exempt. |
Optional |
taxCodes |
Array. One or more two-letter alphanumeric tax codes to mark as exempt. |
Optional |
|
Boolean. Send with true to mark all taxes in the response as exempt. Do not send if false; instead, use countries and taxCodes to specify which taxes to exempt. |
Optional |
SearchControlConsoleChannelID
The Search API supports the Travelport Content Optimizer (formerly known as Search Control Console/SCC) for GDS content only. Travel agency administrators use Content Optimizer to create business rules for filtering certain air shopping results. If your client's application does not use Content Optimizer, do not use these attributes. Contact your Travelport representative if you would like additional information.
Object |
Description |
Required |
---|---|---|
SearchControlConsoleChannelID |
Object for Content Optimizer/SCC attributes. Do not send if you do not use Content Optimizer. Send either the value or the sccType. If both values are sent, the sccType is applied.
|
Optional |
|
String for the Content Optimizer channel ID. |
Required if sccType is not sent |
|
String for the Content Optimizer type. |
Required if value is not sent |
Response
CatalogProductOfferingsResponse and CatalogProductOfferings
The tables in this section break down the Search response into several of its objects to list all information in each. The Next Leg Search and Flight Specific Search responses share this structure. See the Air Shopping Guide for a response diagram and description.
CatalogProductOfferingsResponse
Object | Description |
---|---|
CatalogProductOfferingsResponse |
Top level object for Search response. Includes CatalogProductOfferings, Result, ReferenceList. Key value pairs:
|
CatalogProductOfferings
CatalogProductOfferings is the top level object that groups all the offers in the response. Each instance of CatalogProductOffering is one offer.
Object | Description |
---|---|
CatalogProductOfferings |
Top level object that groups all offers. Includes Identifier and CatalogProductOffering objects. |
Identifier |
Returns identifier for the entire response. Key value pairs:
Must be sent in any subsequent Next Leg Search request. as well as other steps in the booking workflow.
If your workflow subsequently references a journey-based search result, the Search request must send offersPerPage set to any positive number. This setting invokes caching so that search results can be referenced later. A journey-based search returns all legs of the itinerary, while a leg-based search returns one leg at a time and is cached by default. If a journey-based Search request does not send offersPerPage, the reference payload requests for Flight Specific Search, AirPrice, and Add Offer will fail.
|
Array. Each instance of CatalogProductOffering returns one offer on one leg of the itinerary. In the JSON Search APIs, an offer is a product available at a specific price under a set of terms and conditions. A product is the flight or connecting flights for one leg of the itinerary, plus a service level that includes the cabin class and any fare codes that may apply. At booking, the selected offer from the Search response - including the flight/s, service level, price, terms and conditions, and brand if applicable - is converted into a single Offer object that is subsequently returned for that booking. A leg-based Search response returns instance/s of CatalogProductOffering on only the first leg, indicated by sequence value 1. A journey-based Search response returns instance/s for all legs, each indicated with sequence values 1 or 2, or 3 for the third leg of multi-city itineraries. In a Next Leg Search response, the first instance of CatalogProductOffering is the offer chosen for the first leg (sequence 1). Subsequent instance/s are offers on the second leg (sequence value 2). Includes Departure, Arrival, Brand, and ProductBrandOptions objects. May include UpsellOffering for NDC. Key value pairs:
|
|
|
IATA code for departure airport or city for this leg of the itinerary. |
|
IATA code for arrival airport or city for this leg of the itinerary. |
|
Lists reference numbers for brands returned. Only one instance of Brand is returned if no upsells are returned for that offer. |
This specific object is returned in Search for NDC only; it is not used to return upsells in general. Not supported for GDS. |
The UpsellOffering object is returned for NDC offers on United Airlines (UA) only when dynamic bundle fares (DBF) are available. UA DBFs are returned by default when available and NDC content has been requested. Not returned for GDS or other NDC carriers. The UpsellOffering object is used for DBFs only, not to return general upsells. Upsells are returned for all carriers both GDS and NDC if requested with maxNumberOfUpsellsToReturn and if filed by the carrier. Upsells are not returned in a specific object but rather are presented along with the base fare as a higher level of service, usually a branded fare.
At this time support for booking DBFs is under development and they cannot be booked.
Show Example UpsellOffering instance
|
|
Array. Each instance groups the products available on this offer. Includes ProductBrandOffering. |
ProductBrandOffering
Object | Description |
---|---|
ProductBrandOffering |
Returns the one and only one product in this offer and related details about it. Search returns the indicator bestMatchInd with a value of true when all brand attributes requested in ProductInclusionPreference\Classification are available for a fare. Not returned if false. If no upsells are available or requested, each ProductBrandOptions returns only one instance of ProductBrandOffering - one per product. This instance is the base fare and usually has brand b0. In this case, every product in one offer shares the same price, brand, and terms and conditions. If upsells are returned, each ProductBrandOptions returns multiple instances of ProductBrandOffering - one per brand. In this case, each brand in one offer shares the same price but not necessarily products or terms and conditions. See Offers with and without Upsells in the Air Shopping Guide for layout diagrams. Includes Product, Brand, TermsAndConditions, CombinabilityCode, BestCombinablePrice, Price. |
For all customers, this release returns a standard Identifier object in ProductBrandOffering for leg-based search responses when both GDS and NDC content is requested. Not returned for journey-based search responses or when only NDC or only GDS content is requested. |
|
|
The bestMatchInd indicator is returned with a value of true when all brand attributes requested in ProductInclusionPreference\Classification are available for a fare. Not returned if false. |
MatchedAttributes |
If ProductInclusionPreference\Classification was sent in the request, the number of those requested attributes that are available for this fare. |
Product |
Array. Search returns one instance of Product. Includes productRef. |
|
Reference id that matches this product to the identifier in ReferenceListFlight/Product. To find flight details for a product, use the ProductRef id to identify the product in ReferenceListProduct/Product, and use the flight numbers (e.g., s3, s4) to match to flight information in ReferenceListFlight/Flight. |
Brand |
Brand id for brand in this instance of ProductBrandOffering. Includes BrandRef. |
|
Reference id that matches to brand in ReferenceListBrand/Brand. |
TermsAndConditions |
Terms and conditions applicable to this instance of ProductBrandOffering. |
|
Reference id that matches to identifier in ReferenceListFlightTermsAndConditions/TermsAndConditions. |
CombinabilityCode |
Code/s for the product/s on the other leg of the itinerary that can be combined with this product for the lowest available fare. See Combinable Codes and Best Combinable Price for details. |
BestCombinablePrice |
Price details for the full itinerary when this product is combined with any other product sharing a CombinabilityCode. For example, if p6 on the outbound and p24 on the inbound both have a CombinabilityCode value of j2, both products return the same BestCombinablePrice when combined for the itinerary. Includes the same objects as listed next for Price. Note that ProductBrandOffering/Price returns the price for just the product on this leg, while the values in BestCombinablePrice/PriceBreakdown apply to the combined price of any outbound and inbound products sharing a CombinabilityCode value.
|
CurrencyCode |
Currency code in which prices are returned in. Key value pairs:
|
Price |
See Price object below. |
Returns CO2 emissions data for the Search and Next Leg Search responses. Includes Actual, Typical, and Variance objects. If CO2 data is not available for a flight or route, only available data is returned and these objects may be returned blank. CO2 data is not returned for non-flight segments (equipment codes BUS, HOV, LCH, LMO, TRN, TRS). Show Example CO2EmissionsData instance
|
|
Actual |
Actual carbon emissions for the flight/s in this product (one leg of the itinerary). Key value pairs:
|
Typical |
Typical carbon emissions for the flight/s in this product (one leg of the itinerary). Key value pairs:
|
Variance |
The variance of CO2 emission from the typical emission value represented as a percent. If positive, the CO2 emission is higher than the industry average. If negative, it is lower than the industry average. |
Price
In the Search response, the Price object returns the price point that applies to all products in this offer (if no upsells are returned) or each of the same brand in this offer (if upsells are returned).
Object | Description |
---|---|
Price |
Returns price details for the instance of Offer in which it is returned. Key value pair:
Includes Base, TotalTaxes, TotalFees, TotalPrice, CurrencyCode, and PriceBreakdown objects. Price is a common object in the model. Not all objects in this table may be returned in this specific response.
These objects apply only to airfare prices. In a Reservation Retrieve, Price objects for other types of offers on a booking, such as seats and ancillaries, generally include only the CurrencyCode, Base, and TotalPrice objects.
|
CurrencyCode |
The currency in which the price is returned. Unless changed in the request, the currency is the default associated with your provisioned PCC from Travelport. Key value pairs:
|
Base |
Number. Base price for all passengers with this PTC before taxes and fees. |
TotalTaxes |
Number. Sum of all taxes for this price. |
TotalFees |
Sum of all fees in this price. |
TotalPrice |
Total price Base price for all passengers with this PTC including base cost, taxes, and fees. |
PriceBreakdown |
Array. Price breakdown for fare by PTC, one instance returned for each PTC type. Key value pairs:
Includes the Amount object. For GDS may return FiledAmount, FareCalculation, and/or Commission per below. For NDC may return Discount per below. AirReservation 24.11.37.8 and later. In Reservation Retrieve, includes the TravelerRefs object to identify the traveler associated with this instance of PriceBreakdown.
Each PriceBreakdownAir object returns pricing for one passenger of a single PTC. On multi-passenger itineraries, refer to TotalPrice for a total price for the itinerary. |
Amount |
Includes CurrencyCode (same as listed above), Base, Taxes, Fees, and Total objects. |
Base |
Base cost for one passenger of this PTC type. |
Includes TotalTaxes (sum of all individual taxes) and an array of Tax objects for individual taxes. |
|
|
Sum total of all taxes for one passenger of this PTC type. |
|
Array of Tax objects for individual taxes. Key value pairs:
|
Fees or FeesDetail |
Provides breakdown of fees, if applicable. Includes TotalFees object to return sum of any fees for that PTC. May include array of Fee objects to break down individual fees. |
|
Array for individual fees, if applicable. Key value pairs:
If OB-T fees are part of the price, those are detailed here. OB-T fees are ticketing fees independent of the form of payment. They are defined by the carrier and can be based on any of multiple criteria. |
Total |
Total of base cost and all fees and taxes for one passenger of this PTC type. |
TravelerRefs |
AirReservation 24.11.37.8 and later.
Returned only in Reservation Retrieve to identify the traveler associated with this instance of PriceBreakdown in case of multiple offers on the booking. |
NetBaseAmount |
Net ticket data (NTD) is returned in the AirPrice, AirReservation, Exchange Search, and Reservation Retrieve responses for any fare that has a private fare component (fareType is AgencyPrivateFare). When NTD is returned, TermsAndConditionsFuill includes FareGuaranteePolicy to return the fare calculation indicator for the fare. When NTD is returned, PriceBreakdown may include NetBaseAmount. Key value pairs:
Because NDC does not support net fares, NTD is not supported for NDC.
|
FiledAmount |
AirPrice 24.11.37 and later. Returned in AirPrice only. GDS only; not supported for NDC.
Returned when the origin currency is not the same as the PCC currency to show the currency in which the base fare has been filed. The fare returned in PriceBreakdown/Amount (above) is the equivalent currency in the PCC currency. Key value pairs:
|
FareCalculation |
Returned in AirPrice, Reservation Retrieve, and Exchange Search. GDS only; not supported for NDC.
For each PTC, when available, FareCalculation returns the fare calculation ladder for all public and private fare types filed by an agency or an airline. Returned as a string with unlimited bytes. |
Surcharges |
Surcharges is returned in the Search response if surcharges apply to this offer. Includes the following: approximateInd: Surcharge amounts are approximate if true. TotalSurcharges: Monetary amount of surcharge total, up to 4 decimal places. Includes Surcharge object. Not supported for NDC. NDC does not return surcharges.
Surcharges can be omitted from the Search response with the optional excludeSurchargesInd.
|
Surcharge |
Returned in Surcharges. Key value pairs: currencyCode: Currency code surcharges are returned in. purpose: Possible values:
decimalPlace: Number of decimal places in currency. value: Amount of surcharge. |
Returned only in the responses for the Search APIs and AirPrice. GDS only; not supported for NDC. Any commission filed by an airline in a CAT35 fare is returned in PriceBreakdownAir/Commission. The amount is either a percent of the fare component (@type CommissionPercent and the Percent object) or an amount (@type CommissionAmount with Amount @value). |
|
Discount |
Returned only in search responses. NDC only; not supported for GDS.
Returned for a fare discounted off the published price, such as a promotional discount. Not returned for privately negotiated discounts such as private fares. Key value pairs: description: Text description of this discount. currencyCode: Currency code discount is returned in. decimalPlace: Number of decimal places in the currency the discount is returned in. value: Actual amount of the discount. |
Result
Result returns any error and warning messages. See Error Messages for a listing.
Object | Description |
---|---|
Result |
Includes objects for any warning or error message returned. May include Warning and/or Error objects. |
Error |
Returns error message details in the StatusCode, Message, and SourceCode objects. |
Warning |
Returns warning message details in the Message and SourceCode objects. |
|
The HTTP standard response code for the message. |
|
The text of any error message returned. |
|
The error or warning code returned by the provider or host system. |
ReferenceList
ReferenceList consolidates all the details about flights, products, brands, and terms and conditions returned in CatalogProductOfferings.
Object | Description | |
---|---|---|
ReferenceList |
Top level object for the consolidated flight, product, terms and conditions, and brand information referenced in the offers in CatalogProductOfferings. Returns one instance each of types ReferenceListFlight, ReferenceListProduct, ReferenceListTermsAndConditions, ReferenceListBrand, and, if RouteHappy flight amenities were requested, ReferenceListAmenity. |
ReferenceList/ReferenceListFlight
Object | Description |
---|---|
ReferenceListFlight |
Returns an array of Flight objects that match to the flights that make up a product. ReferenceListFlight is a common object in the model. Not all objects in this table may be returned in this specific API. |
Flight |
One instance for one flight. Key value pairs:
For GDS, the Flight id is formatted as the letter ‘s’+ unique numeric value, as in s1. For NDC, the Flight id is formatted as the two letter NDC carrier code + s+ unique numeric value, as in QFs1. Includes Departure, Arrival, AvailabilitySourceCode, and IntermediateStop objects. |
Departure |
Departure details. Key value pairs are the location, date, time, and terminal of departure. |
Arrival |
Arrival details. Key value pairs are the location, date, time, and terminal of arrival. |
Returned to assist in troubleshooting. Returned in Search, Air Availability, Exchange Search, AirPrice, and AirReservation commit responses. Recommended to be sent in the AirPrice Full Payload and Add Offer Full Payload requests. Supported values and definitions for AvailabilitySourceCode are as follows:
|
|
IntermediateStop |
Returned if the flight has a technical stop but does not incur a change in flight number. Returned only in Search and Exchange Search responses. Key value pairs:
|
Object | Description |
---|---|
ReferenceListProduct |
Returns details for the products returned in offers. Includes the Product object. |
Product |
Array. One instance for each product id. Key value pairs:
Includes FlightSegment and PassengerFlight objects. |
FlightSegment |
Array. One instance for each flight segment in the product. Key value pairs:
Includes Flight object. |
Flight |
Array. One instance for each flight in the product. Includes FlightRef. |
|
Unique identifier for this flight. Matches to identifier in ReferenceListFlight/Flight. |
PassengerFlight |
Returns PTC and class/fare information for each PTC requested. One instance of Passenger Flight is returned for each PTC requested. Key value pairs:
Includes the FlightProduct object. |
FlightProduct |
Product details for this flight. Key value pairs:
|
Brand |
The brand reference id for the fare. |
Object | Description |
---|---|
ReferenceListTermsAndConditions |
Returns terms and conditions details for sets of terms and conditions referenced in offers. |
TermsAndConditions |
Array. Each instance is one set of terms and conditions applicable to any ProductBrandOffering with this id. Key value pairs:
May include CustomerLoyaltyCredit, FareRuleInfo, BaggageAllowance, ValidatingAirline, PaymentTimeLimit, Penalties objects. |
FareRuleInfo |
Returned only for NDC.
Key value pairs:
|
CustomerLoyaltyCredit |
Returned only if CustomerLoyalty sent in the request. Returns information sent in the request and other details including the miles earned for this flight. Includes the ProductRef, CustomerLoyalty, Earned, and Status objects. Show CustomerLoyaltyCredit excerpt
|
BaggageAllowance |
If provided by the carrier, any baggage information. Key value pairs:
Includes ProductRef, BaggageItem, SegmentSequenceList, and Text objects. Baggage fees and embargo information can be excluded from the Search response with the excludeBaggageFeesInd indicator (GDS only).
Show Example BaggageAllowance excerpt for baggage allowance by piece
Show Example BaggageAllowance excerpt for baggage allowance by weight
|
ProductRef (BaggageAllowance/ProductRef) |
The Product id/s to which this allowance applies. |
BaggageItem |
As returned by the carrier, baggage allowance details. Key value pairs:
May include Measurement, BaggageFee, Text objects. |
BaggageFee |
For paid baggage, cost for this item of baggage:
|
Text |
String. Any free text provided by carrier for baggage terms. Examples:
When the baggage allowance is based on pieces, Text returns 0P, 1P, 2P, or 3P, defined as follows, for FirstCheckedBag, SecondCheckedBag, and/or CarryOn (see BaggageAllowance row above for examples):
|
Measurement |
Measurement details for BaggageItem as applicable. Key value pairs:
Baggage measurements are not always returned.
NDC returns quantity and Measurement info for FirstCheckedBag, SecondCheckedBag and CarryOn, when returned by the NDC carrier.
NDC returns measurements in structured format in the Search response when the NDC carrier returns them this way. Otherwise, the measurements are returned in Text. For GDS baggage measurements are returned in Text.
|
SegmentSequenceList |
Segment sequence values to which this baggage allowance applies. |
ValidatingAirline |
Array. Each instance lists in a nested ValidatingAirline object a carrier on which the ticket is issued. |
PaymentTimeLimit |
GDS only; not supported for NDC.
String. The local (per the point of sale) date and time by which the offer must be ticketed in YYY-MM-DDTHH:MM:SS format. |
Penalties |
Returns change and cancel penalties for this set of terms and conditions. For GDS, Penalties returns CAT16 penalty details; NDC penalty rules are not necessarily filed in a specific category (CAT). Returned by default. Not returned if the optional excludePenaltiesInd indicator is sent with a value of true, which omits penalty information from the response; excludePenaltiesInd is supported only for GDS, not NDC. Includes the PassengerTypeCodes object and either or both the Change and Cancel objects. Not all NDC carriers return penalty details. Some NDC carriers may not return Penalty/amount when a change is permitted, which means there is no charge for the change.
Show Example Response excerpt with penalties
The example excerpt below shows a Penalties object returning both Change and Cancel objects.
|
Change |
Returned in Penalties object with type ChangePermitted if a change is permitted after booking. Key value pairs:
Includes PenaltyAppliesTo and Penalty objects. |
Cancel |
Returned in Penalties object with type CancelPermitted if a cancellation is permitted after booking. Key value pairs:
Includes PenaltyAppliesTo and Penalty objects. |
PenaltyAppliesTo |
Returned in Change and Cancel objects to specify what the change or cancel penalty applies to. Supported values:
Returns ProductRefs, PenaltyAppliesTo, Penalty objects. |
ProductRefs |
List of product reference numbers to which these penalties apply, if applicable. |
SegmentSequence |
List of segment sequence numbers to which these penalties apply, if applicable. |
Penalty |
Returned in Change and Cancel objects to specify either a percentage or amount for a change or cancel penalty. Penalty @type PenaltyPercent returns the following: Percent: Percent of fare charged for the penalty. Penalty @type PenaltyAmount returns the following: Amount: Amount of penalty fee:
Some NDC carriers may not return Penalty/amount when a change is permitted, which means there is no charge for the change.
|
PassengerTypeCodes |
PTCs to which the penalties returned apply. |
TourCodes |
Search 24.11.46.1 and later only. GDS only; not supported for NDC.
Any tour code applicable to this fare, per PTC. Includes TravelerIdentifierRef and TourCode objects. A tour code is a carrier specified and agreed code for a negotiated fare. It is used by the BSP or ARC data processing center to perform a series of calculations that may be based on the itinerary, agency code, dates, and other transaction attributes. The tour code can help identify airline-specific incentive payments such as commissions for fares that offer the most revenue. Show Example excerpt for tour codes for multiple PTCs
In the following example, a different tour code is returned for each of two PTCs.
|
TravelerIdentifierRef |
Traveler PTCs to which this tour code applies. Key value pairs:
|
TourCode |
Tour code value. Key value pairs:
|
TicketingAgency |
If TicketingPCC was sent in the request to override the default ticketing agency, TicketingAgency returns the PCC of the overriding agency. If no override request was made, TicketingAgency returns the default PCC. GDS only; not supported for NDC. Includes Code and ProductRef objects. |
Code |
PCC of the overriding or default ticket agency. |
ProductRef |
Product references to which this ticketing agency PCC applies. |
PricingAgency |
If PricingPCC was sent in the request to override the default pricing agency, PricingAgency returns the PCC of the overriding agency. Not returned if no override request was made. GDS only; not supported for NDC. Includes Code object. |
Code |
PCC of any overriding pricing agency. |
Object | Description |
---|---|
ReferenceListBrand |
Returns an array of ReferenceListBrand objects that match to brand ids returned in other places in the response. Search returns branded fares by default when available. For more about brands see Branded Fares and Upsells in the Air Shopping Guide. |
Brand (ReferenceListBrand/Brand) |
Array. Each instance provides details for one BrandRef id. Key value pairs:
Includes Identifier and BrandAttribute objects. May include ImageURL. |
Identifier (ReferenceListBrand/Brand/Identifier) |
Brand identifier information. Key value pairs:
|
Array of features that are included, chargeable, or not offered for this brand. Contains one or more instances of the two paired key value pairs classification and inclusion:
The following subattributes are returned if filed by the carrier; AirPrice 24.11.30 and later:
With the Brand 23.11.2 release the following Brand subattributes are returned if filed by the carrier:
May return the following:
|
|
AdditionalBrandAttribute |
Array of additional features that are included or chargeable for this brand. An additional brand attribute is returned only for brands that have that attribute associated with it. Contains one or more instances of the two paired key value pairs classification and inclusion:
With the Brand 23.11.2 release the following Brand subattributes are returned if filed by the carrier:
|
ImageURL |
URL for an image for the brand, when available. |
If amenities were requested in the Search, Next Leg Search, or Flight SpecificSearch requests with the includeFlightAmenitiesInd, the response includes ReferenceListAmenity to list all amenities across all flights in all offers. Flights cross-reference these amenities in FlightSegment/amenityRefs.
Object | Description |
---|---|
ReferenceListAmenity |
If flight amenities were requested (includeFlightAmenitiesInd=true), the response returns ReferenceLIstAmenity to list all available amenities across all flights. Flight amenities are provided by ATPCO as RouteHappy data. ATPCO flight amenities do not support the Premium Business cabin. If the fare is in Premium Business, Travelport's system does not look for flight amenities. All other cabins are supported.
If flight amenity data is not available, the warning message FLIGHT AMENITY DATA IS TEMPORARILY UNAVAILABLE is returned in the Result object.
This could be due to a time out or some other issue while accessing the flight amenities data.
|
Amenity |
Array. One instance for each specific amenity. Key value pairs:
Includes Category and Text objects. |
Category |
String. The flight amenity category. Flight amenity categories are as follows and may include the following data as provided by ATPCO:
|
Text |
A description of the amenity in the following key value pairs:
|
Example Request
The following example requests a GDS round-trip journey-based search, which will return flight options for both legs of the itinerary. No additional search requests are required. It also sends a preference of Preferred for carrier UA, and requests a maximum of one upsell to return. As required for any journey-based round-trip search that will be referenced later in the workflow, this request sends offersPerPage set to any positive number to invoke caching to support subsequent reference-based requests.
{
"CatalogProductOfferingsQueryRequest": {
"CatalogProductOfferingsRequest": {
"@type": "CatalogProductOfferingsRequestAir",
"maxNumberOfUpsellsToReturn": 1,
"offersPerPage": 15,
"contentSourceList": [
"GDS"
],
"PassengerCriteria": [
{
"@type": "PassengerCriteria",
"number": 1,
"age": 25,
"passengerTypeCode": "ADT"
}
],
"SearchCriteriaFlight": [
{
"@type": "SearchCriteriaFlight",
"departureDate": "2024-01-20",
"From": {
"value": "DEN"
},
"To": {
"value": "ORD"
}
},
{
"@type": "SearchCriteriaFlight",
"departureDate": "2024-01-27",
"From": {
"value": "ORD"
},
"To": {
"value": "DEN"
}
}
],
"SearchModifiersAir": {
"@type": "SearchModifiersAir",
"CarrierPreference": [
{
"@type": "CarrierPreference",
"preferenceType": "Preferred",
"carriers": [
"UA"
]
}
]
}
}
}
}
The following example sends a request for a one-way NDC search with a carrier preference of Permitted for SQ.
{
"CatalogProductOfferingsQueryRequest": {
"CatalogProductOfferingsRequest": {
"@type": "CatalogProductOfferingsRequestAir",
"maxNumberOfUpsellsToReturn": 4,
"offersPerPage": 10,
"contentSourceList": [
"NDC"
],
"PassengerCriteria": [
{
"number": 1,
"passengerTypeCode": "ADT"
}
],
"SearchCriteriaFlight": [
{
"departureDate": "2024-01-21",
"From": {
"value": "HKG"
},
"To": {
"value": "SIN"
}
}
],
"SearchModifiersAir": {
"CarrierPreference": [
{
"preferenceType": "Permitted",
"carriers": [
"SQ"
]
}
]
}
}
}
}
The following example sends PTCs for a one-way GDS search for one adult and one child, plus modifiers requesting a search by departure time range and preferences for business class, refundable, and nonstop fares, No upsells are requested.
{
"CatalogProductOfferingsQueryRequest": {
"CatalogProductOfferingsRequest": {
"@type": "CatalogProductOfferingsRequestAir",
"maxNumberOfUpsellsToReturn": 0,
"contentSourceList": [
"GDS"
],
"PassengerCriteria": [
{
"@type": "PassengerCriteria",
"number": 1,
"passengerTypeCode": "ADT",
"TravelerGeographicLocation": {
"travelerGeographicLocationType": "City",
"value": "LON"
}
},
{
"@type": "PassengerCriteria",
"number": 1,
"passengerTypeCode": "CNN",
"age": 8
}
],
"SearchCriteriaFlight": [
{
"@type": "SearchCriteriaFlight",
"departureDate": "2024-12-13",
"DepartureTimeRange": {
"start": "10:00:00",
"end": "13:00:00"
},
"From": {
"value": "LGW"
},
"To": {
"value": "SIN"
}
},
{
"@type": "SearchCriteriaFlight",
"departureDate": "2024-12-20",
"DepartureTimeRange": {
"start": "07:00:00",
"end": "11:00:00"
},
"From": {
"value": "SIN"
},
"To": {
"value": "LGW"
}
}
],
"SearchModifiersAir": {
"@type": "SearchModifiersAir",
"CabinPreference": [
{
"@type": "CabinPreference",
"preferenceType": "Permitted",
"cabins": [
"Business"
]
}
],
"ConnectionPreferences": [
{
"@type": "ConnectionPreferencesAir",
"FlightType": {
"connectionType": "NonStopDirect"
}
}
]
},
"PricingModifiersAir": {
"@type": "PricingModifiersAir",
"currencyCode": "USD",
"FareSelection": {
"refundableOnlyInd": true
}
}
}
}
}
The following example requests a GDS round-trip leg-based search, which will return flight options for only the first leg of the itinerary, as requested with SearchRepresentation = Leg. This request must be followed by a Next Leg Search request, see the Next Leg Search API Reference for the follow-on request example. It also sends a preference of Permitted for carrier UA, and requests up to four upsells. Unlike journey-based searches, it does not need to send offersPerPage to invoke caching because leg-based search results are cached by default.
{
"CatalogProductOfferingsQueryRequest": {
"CatalogProductOfferingsRequest": {
"@type": "CatalogProductOfferingsRequestAir",
"maxNumberOfUpsellsToReturn": 4,
"contentSourceList": [
"GDS"
],
"PassengerCriteria": [
{
"@type": "PassengerCriteria",
"number": 1,
"age": 25,
"passengerTypeCode": "ADT"
}
],
"SearchCriteriaFlight": [
{
"@type": "SearchCriteriaFlight",
"departureDate": "2024-12-21",
"From": {
"value": "SYD"
},
"To": {
"value": "MEL"
}
},
{
"@type": "SearchCriteriaFlight",
"departureDate": "2024-12-28",
"From": {
"value": "MEL"
},
"To": {
"value": "SYD"
}
}
],
"SearchModifiersAir": {
"@type": "SearchModifiersAir",
"CarrierPreference": [
{
"@type": "CarrierPreference",
"preferenceType": "Permitted",
"carriers": [
"QF"
]
}
]
},
"CustomResponseModifiersAir": {
"@type": "CustomResponseModifiersAir",
"SearchRepresentation": "Leg"
}
}
}
}
The following example sends the includeSplitPaymentInd indicator to request split ticketing.
{
"CatalogProductOfferingsQueryRequest": {
"CatalogProductOfferingsRequest": {
"@type": "CatalogProductOfferingsRequestAir",
"offersPerPage": 999,
"contentSourceList": [
"GDS"
],
"maxNumberOfUpsellsToReturn": 0,
"PassengerCriteria": [
{
"number": 1,
"passengerTypeCode": "ADT"
},
{
"number": 1,
"passengerTypeCode": "INF"
}
],
"SearchCriteriaFlight": [
{
"departureDate": "2024-10-23",
"From": {
"value": "SYD"
},
"To": {
"value": "CHC"
}
},
{
"departureDate": "2024-10-27",
"From": {
"value": "CHC"
},
"To": {
"value": "SYD"
}
}
],
"PricingModifiersAir": {
"includeSplitPaymentInd": true
}
}
}
}
Example Response
Round-trip journey-based response with carrier preference
The following example response excerpt is for the request above for a round-trip journey-based search. For brevity, this excerpt was edited to remove the ReferenceList object, and all but two instances of ProductBrandOffering in each of the two instances of CatalogProductOffering, one for the outbound and another for the inbound flight options. See the developer toolkits for full examples. The base fare and each upsell are each returned in an instance of ProductBrandOffering, usually with BrandRef b0 for the base fare and BrandRef b1+ for upsells.
{
"CatalogProductOfferingsResponse": {
"@type": "CatalogProductOfferingsResponse",
"transactionId": "c7bcdc50-8eb5-4918-8ff2-f30b2a0abec2:ppnd1003",
"CatalogProductOfferings": {
"@type": "CatalogProductOfferings",
"Identifier": {
"value": "c344ad1f-df72-4ac9-be52-c5fff60e7f67"
},
"CatalogProductOffering": [
{
"@type": "CatalogProductOffering",
"sequence": 1,
"id": "o1",
"Departure": "DEN",
"Arrival": "ORD",
"Brand": [
{
"@type": "BrandID",
"BrandRef": "b0"
},
{
"@type": "BrandID",
"BrandRef": "b1"
},
{
"@type": "BrandID",
"BrandRef": "b2"
}
],
"ProductBrandOptions": [
{
"@type": "ProductBrandOptions",
"flightRefs": [
"s1"
],
"ProductBrandOffering": [
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 153,
"TotalTaxes": 35.6,
"TotalFees": 0,
"TotalPrice": 188.6,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 153,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 35.6,
"Tax": [
{
"taxCode": "AY",
"value": 8.9
},
{
"taxCode": "US",
"value": 12
},
{
"taxCode": "XF",
"value": 7.1
},
{
"taxCode": "ZP",
"value": 7.6
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 188.6
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p0"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T0"
},
"CombinabilityCode": [
"j1"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 306,
"TotalTaxes": 70.2,
"TotalPrice": 376.2,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 306,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 70.2,
"Tax": [
{
"taxCode": "AY",
"value": 17.8
},
{
"taxCode": "US",
"value": 23
},
{
"taxCode": "XF",
"value": 14.2
},
{
"taxCode": "ZP",
"value": 15.2
}
]
},
"Total": 376.2
}
}
]
}
},
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 271,
"TotalTaxes": 44.6,
"TotalFees": 0,
"TotalPrice": 315.6,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 271,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 44.6,
"Tax": [
{
"taxCode": "AY",
"value": 8.9
},
{
"taxCode": "US",
"value": 21
},
{
"taxCode": "XF",
"value": 7.1
},
{
"taxCode": "ZP",
"value": 7.6
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 315.6
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b1"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p8"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T1"
},
"CombinabilityCode": [
"j2"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 541,
"TotalTaxes": 87.8,
"TotalPrice": 628.8,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 541,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 87.8,
"Tax": [
{
"taxCode": "AY",
"value": 17.8
},
{
"taxCode": "US",
"value": 40.6
},
{
"taxCode": "XF",
"value": 14.2
},
{
"taxCode": "ZP",
"value": 15.2
}
]
},
"Total": 628.8
}
}
]
}
}
]
},
{
"@type": "ProductBrandOptions",
"flightRefs": [
"s39",
"s40"
],
"ProductBrandOffering": [
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 343,
"TotalTaxes": 73.2,
"TotalFees": 0,
"TotalPrice": 416.2,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 343,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 73.2,
"Tax": [
{
"taxCode": "AY",
"value": 17.8
},
{
"taxCode": "US",
"value": 26
},
{
"taxCode": "XF",
"value": 14.2
},
{
"taxCode": "ZP",
"value": 15.2
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 416.2
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p204"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T44"
},
"CombinabilityCode": [
"j23"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 495,
"TotalTaxes": 99.1,
"TotalPrice": 594.1,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 495,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 99.1,
"Tax": [
{
"taxCode": "AY",
"value": 17.8
},
{
"taxCode": "US",
"value": 37.2
},
{
"taxCode": "XF",
"value": 21.3
},
{
"taxCode": "ZP",
"value": 22.8
}
]
},
"Total": 594.1
}
}
]
}
},
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 440,
"TotalTaxes": 80.2,
"TotalFees": 0,
"TotalPrice": 520.2,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 440,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 80.2,
"Tax": [
{
"taxCode": "AY",
"value": 17.8
},
{
"taxCode": "US",
"value": 33
},
{
"taxCode": "XF",
"value": 14.2
},
{
"taxCode": "ZP",
"value": 15.2
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 520.2
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b1"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p205"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T45"
},
"CombinabilityCode": [
"j24"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 710,
"TotalTaxes": 115.2,
"TotalPrice": 825.2,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 710,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 115.2,
"Tax": [
{
"taxCode": "AY",
"value": 17.8
},
{
"taxCode": "US",
"value": 53.3
},
{
"taxCode": "XF",
"value": 21.3
},
{
"taxCode": "ZP",
"value": 22.8
}
]
},
"Total": 825.2
}
}
]
}
}
]
}
]
},
{
"@type": "CatalogProductOffering",
"sequence": 2,
"id": "o2",
"Departure": "ORD",
"Arrival": "DEN",
"Brand": [
{
"@type": "BrandID",
"BrandRef": "b0"
},
{
"@type": "BrandID",
"BrandRef": "b1"
},
{
"@type": "BrandID",
"BrandRef": "b2"
}
],
"ProductBrandOptions": [
{
"@type": "ProductBrandOptions",
"flightRefs": [
"s41"
],
"ProductBrandOffering": [
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 153,
"TotalTaxes": 34.6,
"TotalFees": 0,
"TotalPrice": 187.6,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 153,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 34.6,
"Tax": [
{
"taxCode": "AY",
"value": 8.9
},
{
"taxCode": "US",
"value": 12
},
{
"taxCode": "XF",
"value": 7.1
},
{
"taxCode": "ZP",
"value": 7.6
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 187.6
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p16"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T2"
},
"CombinabilityCode": [
"j1"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 306,
"TotalTaxes": 70.2,
"TotalPrice": 376.2,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 306,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 70.2,
"Tax": [
{
"taxCode": "AY",
"value": 17.8
},
{
"taxCode": "US",
"value": 23
},
{
"taxCode": "XF",
"value": 14.2
},
{
"taxCode": "ZP",
"value": 15.2
}
]
},
"Total": 376.2
}
}
]
}
},
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 270,
"TotalTaxes": 43.2,
"TotalFees": 0,
"TotalPrice": 313.2,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 270,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 43.2,
"Tax": [
{
"taxCode": "AY",
"value": 8.9
},
{
"taxCode": "US",
"value": 21
},
{
"taxCode": "XF",
"value": 7.1
},
{
"taxCode": "ZP",
"value": 7.6
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 313.2
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b1"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p23"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T3"
},
"CombinabilityCode": [
"j2"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 541,
"TotalTaxes": 87.8,
"TotalPrice": 628.8,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 541,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 87.8,
"Tax": [
{
"taxCode": "AY",
"value": 17.8
},
{
"taxCode": "US",
"value": 40.6
},
{
"taxCode": "XF",
"value": 14.2
},
{
"taxCode": "ZP",
"value": 15.2
}
]
},
"Total": 628.8
}
}
]
}
}
]
},
{
"@type": "ProductBrandOptions",
"flightRefs": [
"s43"
],
"ProductBrandOffering": [
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 152,
"TotalTaxes": 25.9,
"TotalFees": 0,
"TotalPrice": 177.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 152,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 25.9,
"Tax": [
{
"taxCode": "US",
"value": 12
},
{
"taxCode": "XF",
"value": 7.1
},
{
"taxCode": "ZP",
"value": 7.6
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 177.9
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p208"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T46"
},
"CombinabilityCode": [
"j23"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 495,
"TotalTaxes": 99.1,
"TotalPrice": 594.1,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 495,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 99.1,
"Tax": [
{
"taxCode": "AY",
"value": 17.8
},
{
"taxCode": "US",
"value": 37.2
},
{
"taxCode": "XF",
"value": 21.3
},
{
"taxCode": "ZP",
"value": 22.8
}
]
},
"Total": 594.1
}
}
]
}
},
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 270,
"TotalTaxes": 35,
"TotalFees": 0,
"TotalPrice": 305,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 270,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 35,
"Tax": [
{
"taxCode": "US",
"value": 21
},
{
"taxCode": "XF",
"value": 7.1
},
{
"taxCode": "ZP",
"value": 7.6
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 305
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b1"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p210"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T47"
},
"CombinabilityCode": [
"j24"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 710,
"TotalTaxes": 115.2,
"TotalPrice": 825.2,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 710,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 115.2,
"Tax": [
{
"taxCode": "AY",
"value": 17.8
},
{
"taxCode": "US",
"value": 53.3
},
{
"taxCode": "XF",
"value": 21.3
},
{
"taxCode": "ZP",
"value": 22.8
}
]
},
"Total": 825.2
}
}
]
}
}
]
}
]
}
]
},
...
}
One-way NDC search response with carrier preference
The following example response is for a one-way NDC search with a carrier preference of Permitted for SQ. For brevity, this excerpt was edited to remove the ReferenceList object, and all but two instances of ProductBrandOffering in CatalogProductOffering. See the developer toolkits for full examples.
{
"CatalogProductOfferingsResponse": {
"@type": "CatalogProductOfferingsResponse",
"transactionId": "7f868951-3008-4302-8964-3a5b3c0af21b:ppnd1003",
"CatalogProductOfferings": {
"@type": "CatalogProductOfferings",
"Identifier": {
"value": "756765be-3659-4d4f-9d6a-87979d5b3c3d"
},
"CatalogProductOffering": [
{
"@type": "CatalogProductOffering",
"sequence": 1,
"id": "SQ_CPO0",
"Identifier": {
"authority": "SQ",
"value": "U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4N3xTUV9DUE8w"
},
"Departure": "HKG",
"Arrival": "SIN",
"Brand": [
{
"@type": "BrandID",
"BrandRef": "SQb1"
}
],
"ProductBrandOptions": [
{
"@type": "ProductBrandOptions",
"ProductBrandOffering": [
{
"@type": "ProductBrandOffering",
"Identifier": {
"authority": "SQ",
"value": "U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny0xfFNQMkYtMTU1NTU1MzI2NzIyMjM5NzE5ODd8MjAyMy0xMi0yMVQxNDoyODowMHxBRFQ6U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny0xLTF8U1F8QVBJSm91cm5leVR5cGU6Sm91cm5leQ=="
},
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 252,
"TotalTaxes": 33.9,
"TotalFees": 0,
"TotalPrice": 285.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 252,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 285.9
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "SQb1"
},
"Product": [
{
"@type": "ProductID",
"productRef": "SQp0"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "SQt0"
},
"CombinabilityCode": [
"SQ__CC01"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 252,
"TotalTaxes": 33.9,
"TotalPrice": 285.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"Base": 252,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 285.9
}
}
]
}
},
{
"@type": "ProductBrandOffering",
"Identifier": {
"authority": "SQ",
"value": "U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny01fFNQMkYtMTU1NTU1MzI2NzIyMjM5NzE5ODd8MjAyMy0xMi0yMVQxNDoyODowMHxBRFQ6U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny01LTF8U1F8QVBJSm91cm5leVR5cGU6Sm91cm5leQ=="
},
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 334,
"TotalTaxes": 33.9,
"TotalFees": 0,
"TotalPrice": 367.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 334,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 367.9
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "SQb2"
},
"Product": [
{
"@type": "ProductID",
"productRef": "SQp4"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "SQt1"
},
"CombinabilityCode": [
"SQ__CC05"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 334,
"TotalTaxes": 33.9,
"TotalPrice": 367.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"Base": 334,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 367.9
}
}
]
}
},
{
"@type": "ProductBrandOffering",
"Identifier": {
"authority": "SQ",
"value": "U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny0xMXxTUDJGLTE1NTU1NTMyNjcyMjIzOTcxOTg3fDIwMjMtMTItMjFUMTQ6Mjg6MDB8QURUOlNQMkYtMTU1NTU1MzI2NzIyMjM5NzE5ODctMTEtMXxTUXxBUElKb3VybmV5VHlwZTpKb3VybmV5"
},
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 579,
"TotalTaxes": 33.9,
"TotalFees": 0,
"TotalPrice": 612.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 579,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 612.9
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "SQb4"
},
"Product": [
{
"@type": "ProductID",
"productRef": "SQp8"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "SQt2"
},
"CombinabilityCode": [
"SQ__CC09"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 579,
"TotalTaxes": 33.9,
"TotalPrice": 612.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"Base": 579,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 612.9
}
}
]
}
}
]
},
{
"@type": "ProductBrandOptions",
"ProductBrandOffering": [
{
"@type": "ProductBrandOffering",
"Identifier": {
"authority": "SQ",
"value": "U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny00fFNQMkYtMTU1NTU1MzI2NzIyMjM5NzE5ODd8MjAyMy0xMi0yMVQxNDoyODowMHxBRFQ6U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny00LTF8U1F8QVBJSm91cm5leVR5cGU6Sm91cm5leQ=="
},
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 295,
"TotalTaxes": 33.9,
"TotalFees": 0,
"TotalPrice": 328.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 295,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 328.9
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "SQb1"
},
"Product": [
{
"@type": "ProductID",
"productRef": "SQp3"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "SQt0"
},
"CombinabilityCode": [
"SQ__CC04"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 295,
"TotalTaxes": 33.9,
"TotalPrice": 328.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"Base": 295,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 328.9
}
}
]
}
},
{
"@type": "ProductBrandOffering",
"Identifier": {
"authority": "SQ",
"value": "U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny02fFNQMkYtMTU1NTU1MzI2NzIyMjM5NzE5ODd8MjAyMy0xMi0yMVQxNDoyODowMHxBRFQ6U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny02LTF8U1F8QVBJSm91cm5leVR5cGU6Sm91cm5leQ=="
},
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 334,
"TotalTaxes": 33.9,
"TotalFees": 0,
"TotalPrice": 367.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 334,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 367.9
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "SQb2"
},
"Product": [
{
"@type": "ProductID",
"productRef": "SQp5"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "SQt1"
},
"CombinabilityCode": [
"SQ__CC06"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 334,
"TotalTaxes": 33.9,
"TotalPrice": 367.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"Base": 334,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 367.9
}
}
]
}
},
{
"@type": "ProductBrandOffering",
"Identifier": {
"authority": "SQ",
"value": "U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny0xMnxTUDJGLTE1NTU1NTMyNjcyMjIzOTcxOTg3fDIwMjMtMTItMjFUMTQ6Mjg6MDB8QURUOlNQMkYtMTU1NTU1MzI2NzIyMjM5NzE5ODctMTItMXxTUXxBUElKb3VybmV5VHlwZTpKb3VybmV5"
},
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 579,
"TotalTaxes": 33.9,
"TotalFees": 0,
"TotalPrice": 612.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 579,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 612.9
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "SQb4"
},
"Product": [
{
"@type": "ProductID",
"productRef": "SQp9"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "SQt2"
},
"CombinabilityCode": [
"SQ__CC10"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 579,
"TotalTaxes": 33.9,
"TotalPrice": 612.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"Base": 579,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 612.9
}
}
]
}
},
{
"@type": "ProductBrandOffering",
"Identifier": {
"authority": "SQ",
"value": "U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny05fFNQMkYtMTU1NTU1MzI2NzIyMjM5NzE5ODd8MjAyMy0xMi0yMVQxNDoyODowMHxBRFQ6U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny05LTF8U1F8QVBJSm91cm5leVR5cGU6Sm91cm5leQ=="
},
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 542,
"TotalTaxes": 33.9,
"TotalFees": 0,
"TotalPrice": 575.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 542,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 575.9
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "SQb3"
},
"Product": [
{
"@type": "ProductID",
"productRef": "SQp12"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "SQt3"
},
"CombinabilityCode": [
"SQ__CC13"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 542,
"TotalTaxes": 33.9,
"TotalPrice": 575.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"Base": 542,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 575.9
}
}
]
}
},
{
"@type": "ProductBrandOffering",
"Identifier": {
"authority": "SQ",
"value": "U1AyRi0xNTU1NTUzMjY3MjIyMzk3MTk4Ny0xNnxTUDJGLTE1NTU1NTMyNjcyMjIzOTcxOTg3fDIwMjMtMTItMjFUMTQ6Mjg6MDB8QURUOlNQMkYtMTU1NTU1MzI2NzIyMjM5NzE5ODctMTYtMXxTUXxBUElKb3VybmV5VHlwZTpKb3VybmV5"
},
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 907,
"TotalTaxes": 33.9,
"TotalFees": 0,
"TotalPrice": 940.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 907,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 940.9
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "SQb5"
},
"Product": [
{
"@type": "ProductID",
"productRef": "SQp15"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "SQt4"
},
"CombinabilityCode": [
"SQ__CC16"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 907,
"TotalTaxes": 33.9,
"TotalPrice": 940.9,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"Base": 907,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 33.9
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 940.9
}
}
]
}
}
]
}
]
}
]
},
}
}
One-way search response with modifiers and no upsells
The following example is the response to the example request above for one adult and one child and preferences for business class, refundable, and nonstop fares, No upsells were returned per the request.
{
"CatalogProductOfferingsResponse": {
"@type": "CatalogProductOfferingsResponse",
"transactionId": "dc159446-e309-4b5f-a5f9-b4776c2f6d34:ppnd1001",
"CatalogProductOfferings": {
"@type": "CatalogProductOfferings",
"CatalogProductOffering": [
{
"@type": "CatalogProductOffering",
"sequence": 1,
"id": "o1",
"Departure": "LHR",
"Arrival": "SIN",
"Brand": [
{
"@type": "BrandID",
"BrandRef": "b0"
}
],
"ProductBrandOptions": [
{
"@type": "ProductBrandOptions",
"flightRefs": [
"s1"
],
"ProductBrandOffering": [
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 7200.13,
"TotalTaxes": 660.6,
"TotalFees": 0,
"TotalPrice": 7860.73,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 4114.36,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 330.3
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 4444.66
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "CNN",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 3085.77,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 330.3
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 3416.07
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p0"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T0"
},
"CombinabilityCode": [
"j1"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 14401,
"TotalTaxes": 751.4,
"TotalPrice": 15152.4,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 8229,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 375.7
},
"Total": 8604.7
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "CNN",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 6172,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 375.7
},
"Total": 6547.7
}
}
]
}
}
]
}
]
},
{
"@type": "CatalogProductOffering",
"sequence": 2,
"id": "o2",
"Departure": "SIN",
"Arrival": "LHR",
"Brand": [
{
"@type": "BrandID",
"BrandRef": "b0"
}
],
"ProductBrandOptions": [
{
"@type": "ProductBrandOptions",
"flightRefs": [
"s2"
],
"ProductBrandOffering": [
{
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 7200.87,
"TotalTaxes": 90.8,
"TotalFees": 0,
"TotalPrice": 7291.67,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 4114.64,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 45.4
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 4160.04
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "CNN",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 3086.23,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 45.4
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 3131.63
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p1"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T1"
},
"CombinabilityCode": [
"j1"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 14401,
"TotalTaxes": 751.4,
"TotalPrice": 15152.4,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 8229,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 375.7
},
"Total": 8604.7
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "CNN",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "USD"
},
"Base": 6172,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 375.7
},
"Total": 6547.7
}
}
]
}
}
]
}
]
}
]
},
"Result": {
"@type": "Result"
},
"ReferenceList": [
{
"@type": "ReferenceListFlight",
"Flight": [
{
"@type": "FlightDetail",
"distance": 6748,
"duration": "PT12H55M",
"carrier": "SQ",
"number": "317",
"equipment": "388",
"id": "s1",
"Departure": {
"@type": "DepartureDetail",
"terminal": "2",
"location": "LHR",
"date": "2024-12-13",
"time": "10:55:00"
},
"Arrival": {
"@type": "ArrivalDetail",
"terminal": "0",
"location": "SIN",
"date": "2024-12-14",
"time": "07:50:00"
},
"AvailabilitySourceCode": "S"
},
{
"@type": "FlightDetail",
"distance": 6748,
"duration": "PT14H20M",
"carrier": "SQ",
"number": "308",
"equipment": "388",
"id": "s2",
"Departure": {
"@type": "DepartureDetail",
"terminal": "3",
"location": "SIN",
"date": "2024-12-20",
"time": "09:00:00"
},
"Arrival": {
"@type": "ArrivalDetail",
"terminal": "2",
"location": "LHR",
"date": "2024-12-20",
"time": "15:20:00"
},
"AvailabilitySourceCode": "S"
}
]
},
{
"@type": "ReferenceListProduct",
"Product": [
{
"@type": "ProductAir",
"totalDuration": "PT12H55M",
"id": "p0",
"Quantity": 9,
"FlightSegment": [
{
"@type": "FlightSegment",
"sequence": 1,
"Flight": {
"@type": "FlightID",
"FlightRef": "s1"
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "J",
"cabin": "Business",
"fareBasisCode": "J11GBR",
"fareType": "AirlinePrivateFare",
"fareTypeCode": "BR",
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
}
}
]
},
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "CNN",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "J",
"cabin": "Business",
"fareBasisCode": "J11GBR",
"fareType": "AirlinePrivateFare",
"ticketDesignator": "CH25",
"fareTypeCode": "BR",
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
}
}
]
}
]
},
{
"@type": "ProductAir",
"totalDuration": "PT14H20M",
"id": "p1",
"Quantity": 9,
"FlightSegment": [
{
"@type": "FlightSegment",
"sequence": 1,
"Flight": {
"@type": "FlightID",
"FlightRef": "s2"
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "J",
"cabin": "Business",
"fareBasisCode": "J11GBR",
"fareType": "AirlinePrivateFare",
"fareTypeCode": "BR",
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
}
}
]
},
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "CNN",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1
],
"classOfService": "J",
"cabin": "Business",
"fareBasisCode": "J11GBR",
"fareType": "AirlinePrivateFare",
"ticketDesignator": "CH25",
"fareTypeCode": "BR",
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
}
}
]
}
]
}
]
},
{
"@type": "ReferenceListTermsAndConditions",
"TermsAndConditions": [
{
"@type": "TermsAndConditionsAir",
"id": "T0",
"BaggageAllowance": [
{
"@type": "BaggageAllowanceDetail",
"url": "http://VIEWTRIP.TRAVELPORT.COM/BAGGAGEPOLICY/SQ",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "FirstCheckedBag",
"ProductRef": [
"p0"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 2,
"Measurement": [
{
"measurementType": "Weight",
"unit": "Kilograms",
"value": 40
}
],
"Text": "CHGS MAY APPLY IF BAGS EXCEED TTL WT ALLOWANCE"
}
],
"SegmentSequenceList": [
1
]
},
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "CarryOn",
"ProductRef": [
"p0"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 2,
"BaggageFee": {
"code": "USD",
"approximateInd": true,
"value": 0
},
"Text": "CARRYON HAND BAGGAGE ALLOWANCE"
}
],
"SegmentSequenceList": [
1
],
"Text": [
"2P"
]
},
{
"@type": "BaggageAllowanceDetail",
"url": "http://VIEWTRIP.TRAVELPORT.COM/BAGGAGEPOLICY/SQ",
"passengerTypeCodes": [
"CNN"
],
"baggageType": "FirstCheckedBag",
"ProductRef": [
"p0"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 2,
"Measurement": [
{
"measurementType": "Weight",
"unit": "Kilograms",
"value": 40
}
],
"Text": "CHGS MAY APPLY IF BAGS EXCEED TTL WT ALLOWANCE"
}
],
"SegmentSequenceList": [
1
]
},
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"CNN"
],
"baggageType": "CarryOn",
"ProductRef": [
"p0"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 2,
"BaggageFee": {
"code": "USD",
"approximateInd": true,
"value": 0
},
"Text": "CARRYON HAND BAGGAGE ALLOWANCE"
}
],
"SegmentSequenceList": [
1
],
"Text": [
"2P"
]
}
],
"ValidatingAirline": [
{
"@type": "ValidatingAirline",
"ValidatingAirline": "SQ"
}
],
"PaymentTimeLimit": "2024-11-28T23:59:00Z",
"Penalties": [
{
"@type": "Penalties",
"Change": [
{
"@type": "ChangePermitted",
"penaltyTypes": [
"Anytime"
],
"PenaltyAppliesTo": "PerTicket",
"Penalty": [
{
"@type": "PenaltyAmount",
"Amount": {
"value": 0
}
}
]
}
],
"Cancel": [
{
"@type": "CancelPermitted",
"penaltyTypes": [
"Anytime"
],
"PenaltyAppliesTo": "PerTicket",
"Penalty": [
{
"@type": "PenaltyAmount",
"Amount": {
"code": "USD",
"minorUnit": 2,
"value": 200
}
}
]
}
],
"PassengerTypeCodes": [
"ADT"
]
},
{
"@type": "Penalties",
"Change": [
{
"@type": "ChangePermitted",
"penaltyTypes": [
"Anytime"
],
"PenaltyAppliesTo": "PerTicket",
"Penalty": [
{
"@type": "PenaltyAmount",
"Amount": {
"value": 0
}
}
]
}
],
"Cancel": [
{
"@type": "CancelPermitted",
"penaltyTypes": [
"Anytime"
],
"PenaltyAppliesTo": "PerTicket",
"Penalty": [
{
"@type": "PenaltyAmount",
"Amount": {
"code": "USD",
"minorUnit": 2,
"value": 200
}
}
]
}
],
"PassengerTypeCodes": [
"CNN"
]
}
]
},
{
"@type": "TermsAndConditionsAir",
"id": "T1",
"BaggageAllowance": [
{
"@type": "BaggageAllowanceDetail",
"url": "http://VIEWTRIP.TRAVELPORT.COM/BAGGAGEPOLICY/SQ",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "FirstCheckedBag",
"ProductRef": [
"p1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 2,
"Measurement": [
{
"measurementType": "Weight",
"unit": "Kilograms",
"value": 40
}
],
"Text": "CHGS MAY APPLY IF BAGS EXCEED TTL WT ALLOWANCE"
}
],
"SegmentSequenceList": [
1
]
},
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"ADT"
],
"baggageType": "CarryOn",
"ProductRef": [
"p1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 2,
"BaggageFee": {
"code": "USD",
"approximateInd": true,
"value": 0
},
"Text": "CARRYON HAND BAGGAGE ALLOWANCE"
}
],
"SegmentSequenceList": [
1
],
"Text": [
"2P"
]
},
{
"@type": "BaggageAllowanceDetail",
"url": "http://VIEWTRIP.TRAVELPORT.COM/BAGGAGEPOLICY/SQ",
"passengerTypeCodes": [
"CNN"
],
"baggageType": "FirstCheckedBag",
"ProductRef": [
"p1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 2,
"Measurement": [
{
"measurementType": "Weight",
"unit": "Kilograms",
"value": 40
}
],
"Text": "CHGS MAY APPLY IF BAGS EXCEED TTL WT ALLOWANCE"
}
],
"SegmentSequenceList": [
1
]
},
{
"@type": "BaggageAllowanceDetail",
"passengerTypeCodes": [
"CNN"
],
"baggageType": "CarryOn",
"ProductRef": [
"p1"
],
"BaggageItem": [
{
"@type": "BaggageItem",
"quantity": 2,
"BaggageFee": {
"code": "USD",
"approximateInd": true,
"value": 0
},
"Text": "CARRYON HAND BAGGAGE ALLOWANCE"
}
],
"SegmentSequenceList": [
1
],
"Text": [
"2P"
]
}
],
"ValidatingAirline": [
{
"@type": "ValidatingAirline",
"ValidatingAirline": "SQ"
}
],
"PaymentTimeLimit": "2024-11-28T23:59:00Z",
"Penalties": [
{
"@type": "Penalties",
"Change": [
{
"@type": "ChangePermitted",
"penaltyTypes": [
"Anytime"
],
"PenaltyAppliesTo": "PerTicket",
"Penalty": [
{
"@type": "PenaltyAmount",
"Amount": {
"value": 0
}
}
]
}
],
"Cancel": [
{
"@type": "CancelPermitted",
"penaltyTypes": [
"Anytime"
],
"PenaltyAppliesTo": "PerTicket",
"Penalty": [
{
"@type": "PenaltyAmount",
"Amount": {
"code": "USD",
"minorUnit": 2,
"value": 200
}
}
]
}
],
"PassengerTypeCodes": [
"ADT"
]
},
{
"@type": "Penalties",
"Change": [
{
"@type": "ChangePermitted",
"penaltyTypes": [
"Anytime"
],
"PenaltyAppliesTo": "PerTicket",
"Penalty": [
{
"@type": "PenaltyAmount",
"Amount": {
"value": 0
}
}
]
}
],
"Cancel": [
{
"@type": "CancelPermitted",
"penaltyTypes": [
"Anytime"
],
"PenaltyAppliesTo": "PerTicket",
"Penalty": [
{
"@type": "PenaltyAmount",
"Amount": {
"code": "USD",
"minorUnit": 2,
"value": 200
}
}
]
}
],
"PassengerTypeCodes": [
"CNN"
]
}
]
}
]
},
{
"@type": "ReferenceListBrand",
"Brand": [
{
"@type": "Brand",
"name": "Business Flexi",
"tier": 10,
"shelfNumbers": [],
"id": "b0",
"Identifier": {
"value": "1136673"
},
"BrandAttribute": [
{
"@type": "BrandAttribute",
"classification": "Rebooking",
"inclusion": "Included",
"groupCode": "BF",
"subGroupCode": "VC",
"subCode": "059"
},
{
"@type": "BrandAttribute",
"classification": "SeatAssignment",
"inclusion": "Included",
"groupCode": "BF",
"subGroupCode": "SE",
"subCode": "050"
},
{
"@type": "BrandAttribute",
"classification": "CheckedBag",
"inclusion": "Included",
"groupCode": "BG",
"subCode": "0C8"
},
{
"@type": "BrandAttribute",
"classification": "Refund",
"inclusion": "Chargeable",
"groupCode": "BF",
"subGroupCode": "RF",
"subCode": "056"
}
],
"AdditionalBrandAttribute": [
{
"@type": "AdditionalBrandAttribute",
"groupCode": "BF",
"subGroupCode": "FR",
"subCode": "06M",
"Classification": "Mileage Accrual",
"Inclusion": "Included"
}
],
"ImageURL": [
"https://cdn.travelport.com/singaporeairlinesltd/SQ_general_large_45936.jpg"
]
}
]
}
]
}
}
Split ticketing response excerpt
The following example is an excerpt showing the PriceBreakdownAir object for a one-way offer for split ticketing; as indicated with the CombinabilityCode value of j0. This offer can be combined with any offer on the remaining leg of the itinerary that also has a CombinabilityCode value of j0.
... {
"@type": "ProductBrandOffering",
"Price": {
"@type": "PriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 209,
"TotalTaxes": 143.06,
"TotalFees": 0,
"TotalPrice": 352.06,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 190,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 143.06,
"Tax": [
{
"taxCode": "AU",
"value": 60
},
{
"taxCode": "WY",
"value": 32.16
},
{
"taxCode": "F1",
"value": 35.7
},
{
"taxCode": "KK",
"value": 15.2
}
]
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 333.06
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "INF",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 19,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 0
},
"Fees": {
"@type": "FeesDetail",
"TotalFees": 0
},
"Total": 19
}
}
]
},
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
},
"Product": [
{
"@type": "ProductID",
"productRef": "p0"
}
],
"TermsAndConditions": {
"@type": "TermsAndConditionsID",
"termsAndConditionsRef": "T0"
},
"CombinabilityCode": [
"j0"
],
"BestCombinablePrice": {
"@type": "BestCombinablePriceDetail",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 209,
"TotalTaxes": 143.06,
"TotalPrice": 352.06,
"PriceBreakdown": [
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "ADT",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 190,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 143.06,
"Tax": [
{
"taxCode": "AU",
"value": 60
},
{
"taxCode": "WY",
"value": 32.16
},
{
"taxCode": "F1",
"value": 35.7
},
{
"taxCode": "KK",
"value": 15.2
}
]
},
"Total": 333.06
}
},
{
"@type": "PriceBreakdownAir",
"quantity": 1,
"requestedPassengerType": "INF",
"Amount": {
"@type": "Amount",
"CurrencyCode": {
"decimalPlace": 2,
"value": "AUD"
},
"Base": 19,
"Taxes": {
"@type": "TaxesDetail",
"TotalTaxes": 0
},
"Total": 19
}
}
]
},
"CO2EmissionsData": {
"@type": "CO2EmissionsData",
"Actual": {
"measurementType": "Weight",
"unit": "Kilograms",
"value": 145
},
"Typical": {
"measurementType": "Weight",
"unit": "Kilograms",
"value": 165
},
"Variance": -12
}
}
Search response with flight amenities
The following example shows RouteHappy flight amenity data returned when flight amenities are requested in the Search request (includeFlightAmenitiesInd=true). For brevity, array data was removed from all objects except ReferenceListAmenity and ReferenceListProduct, which cross-references for each flight the amenities described in ReferenceListAmenity. This example is representative of flight amenity data that may be returned and does not include all amenity categories.
{
"CatalogProductOfferingsResponse": {
"@type": "CatalogProductOfferingsResponse",
"transactionId": "chintanTest",
"CatalogProductOfferings": {
"@type": "CatalogProductOfferings",
"Identifier": {
"value": "4ee825d5-75a6-4964-bd1d-a245197f4333"
},
"CatalogProductOffering": [...]
},
"Result": {
"@type": "Result"
},
"ReferenceList": [
{
"@type": "ReferenceListFlight",
"Flight": [...]
},
{
"@type": "ReferenceListProduct",
"Product": [
{
"@type": "ProductAir",
"totalDuration": "PT14H7M",
"id": "p0",
"Quantity": 1,
"FlightSegment": [
{
"@type": "FlightSegment",
"sequence": 1,
"connectionDuration": "PT2H14M",
"amenityRefs": [
"a6",
"a7",
"a8",
"a9",
"a13",
"a18",
"a20",
"a21"
],
"boundFlightsInd": true,
"Flight": {
"@type": "FlightID",
"FlightRef": "s4"
}
},
{
"@type": "FlightSegment",
"sequence": 2,
"connectionDuration": "PT1H",
"amenityRefs": [
"a6",
"a8",
"a9",
"a13",
"a14",
"a19",
"a20",
"a21"
],
"boundFlightsInd": true,
"Flight": {
"@type": "FlightID",
"FlightRef": "s5"
}
},
{
"@type": "FlightSegment",
"sequence": 3,
"amenityRefs": [
"a0",
"a15",
"a17",
],
"Flight": {
"@type": "FlightID",
"FlightRef": "s6"
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1,
2
],
"classOfService": "J",
"cabin": "First",
"fareBasisCode": "FNN09RFP",
"fareType": "PublicFare",
"fareTypeCode": "FCF",
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
}
},
{
"@type": "FlightProduct",
"segmentSequence": [
3
],
"classOfService": "F",
"cabin": "First",
"fareBasisCode": "FNN09RFP",
"fareType": "PublicFare",
"fareTypeCode": "FCF",
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
}
}
]
}
]
},
{
"@type": "ProductAir",
"totalDuration": "PT19H5M",
"id": "p1",
"Quantity": 3,
"FlightSegment": [
{
"@type": "FlightSegment",
"sequence": 1,
"connectionDuration": "PT2H49M",
"amenityRefs": [
"a6",
"a7",
"a8",
"a9",
"a13",
"a18",
"a20",
"a21"
],
"boundFlightsInd": true,
"Flight": {
"@type": "FlightID",
"FlightRef": "s10"
}
},
{
"@type": "FlightSegment",
"sequence": 2,
"connectionDuration": "PT5H42M",
"amenityRefs": [
"a4",
"a6",
"a8",
"a9",
"a13",
"a14",
"a19",
],
"boundFlightsInd": true,
"Flight": {
"@type": "FlightID",
"FlightRef": "s11"
}
},
{
"@type": "FlightSegment",
"sequence": 3,
"amenityRefs": [
"a0",
"a15",
"a17",
"a22",
"a25",
"a27",
"a28",
],
"Flight": {
"@type": "FlightID",
"FlightRef": "s12"
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1,
2
],
"classOfService": "J",
"cabin": "First",
"fareBasisCode": "FNN09RFP",
"fareType": "PublicFare",
"fareTypeCode": "FCF",
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
}
},
{
"@type": "FlightProduct",
"segmentSequence": [
3
],
"classOfService": "F",
"cabin": "First",
"fareBasisCode": "FNN09RFP",
"fareType": "PublicFare",
"fareTypeCode": "FCF",
"Brand": {
"@type": "BrandID",
"BrandRef": "b0"
}
}
]
}
]
},
{
"@type": "ProductAir",
"totalDuration": "PT14H7M",
"id": "p2",
"Quantity": 3,
"FlightSegment": [
{
"@type": "FlightSegment",
"sequence": 1,
"connectionDuration": "PT2H14M",
"amenityRefs": [
"a6",
"a7",
"a8",
"a9",
"a13",
"a18",
"a20",
"a21"
],
"boundFlightsInd": true,
"Flight": {
"@type": "FlightID",
"FlightRef": "s1"
}
},
{
"@type": "FlightSegment",
"sequence": 2,
"connectionDuration": "PT1H",
"amenityRefs": [
"a6",
"a8",
"a9",
"a13",
"a14",
"a19",
"a20",
"a21"
],
"boundFlightsInd": true,
"Flight": {
"@type": "FlightID",
"FlightRef": "s2"
}
},
{
"@type": "FlightSegment",
"sequence": 3,
"amenityRefs": [
"a0",
"a15",
"a17",
],
"Flight": {
"@type": "FlightID",
"FlightRef": "s3"
}
}
],
"PassengerFlight": [
{
"@type": "PassengerFlight",
"passengerQuantity": 1,
"passengerTypeCode": "ADT",
"FlightProduct": [
{
"@type": "FlightProduct",
"segmentSequence": [
1,
2
],
"classOfService": "J",
"cabin": "First",
"fareBasisCode": "FNN09RFP",
"fareType": "PublicFare",
"fareTypeCode": "FCF",
"Brand": {
"@type": "BrandID",
"BrandRef": "b1"
}
},
{
"@type": "FlightProduct",
"segmentSequence": [
3
],
"classOfService": "F",
"cabin": "First",
"fareBasisCode": "FNN09RFP",
"fareType": "PublicFare",
"fareTypeCode": "FCF",
"Brand": {
"@type": "BrandID",
"BrandRef": "b1"
}
}
]
}
]
},
]
},
{
"@type": "ReferenceListTermsAndConditions",
"TermsAndConditions": [...]
},
{
"@type": "ReferenceListBrand",
"Brand": [...]
},
{
"@type": "ReferenceListAmenity",
"Amenity": [
{
"@type": "Amenity",
"id": "a0",
"Category": "Beverage",
"Text": {
"language": "en",
"value": "Premium alcohol & beverages provided"
}
},
{
"@type": "Amenity",
"id": "a1",
"Category": "Aircraft",
"Text": {
"language": "en",
"value": "A320 (narrowbody)"
}
},
{
"@type": "Amenity",
"id": "a2",
"Category": "Aircraft",
"Text": {
"language": "en",
"value": "747 (jumbo)"
}
},
{
"@type": "Amenity",
"id": "a3",
"Category": "Layout",
"Text": {
"language": "en",
"value": "3-3 seat layout"
}
},
{
"@type": "Amenity",
"id": "a4",
"Category": "Aircraft",
"Text": {
"language": "en",
"value": "E175 (larger regional jet)"
}
},
{
"@type": "Amenity",
"id": "a5",
"Category": "Power",
"Text": {
"language": "en",
"value": "No power outlet"
}
},
{
"@type": "Amenity",
"id": "a6",
"Category": "Layout",
"Text": {
"language": "en",
"value": "1-2 seat layout"
}
},
{
"@type": "Amenity",
"id": "a7",
"Category": "Beverage",
"Text": {
"language": "en",
"value": "Alcohol & beverages provided"
}
},
{
"@type": "Amenity",
"id": "a8",
"Category": "Seat",
"Text": {
"language": "en",
"value": "Recliner seat (94 cm)"
}
},
{
"@type": "Amenity",
"id": "a9",
"Category": "Power",
"Text": {
"language": "en",
"value": "Power outlet"
}
},
{
"@type": "Amenity",
"id": "a10",
"Category": "WiFi",
"Text": {
"language": "en",
"value": "Basic web browsing"
}
},
{
"@type": "Amenity",
"id": "a11",
"Category": "Seat",
"Text": {
"language": "en",
"value": "76 cm seat pitch"
}
},
{
"@type": "Amenity",
"id": "a12",
"Category": "Entertainment",
"Text": {
"language": "en",
"value": "Streaming entertainment"
}
},
{
"@type": "Amenity",
"id": "a13",
"Category": "Entertainment",
"Text": {
"language": "en",
"value": "No entertainment"
}
},
{
"@type": "Amenity",
"id": "a14",
"Category": "Food",
"Text": {
"language": "en",
"value": "No food available"
}
},
{
"@type": "Amenity",
"id": "a15",
"Category": "Food",
"Text": {
"language": "en",
"value": "Meal provided"
}
},
{
"@type": "Amenity",
"id": "a16",
"Category": "WiFi",
"Text": {
"language": "en",
"value": "Chance of Wi-Fi (fee)"
}
},
{
"@type": "Amenity",
"id": "a17",
"Category": "Aircraft",
"Text": {
"language": "en",
"value": "777 (widebody)"
}
},
{
"@type": "Amenity",
"id": "a18",
"Category": "Food",
"Text": {
"language": "en",
"value": "Snacks provided"
}
},
{
"@type": "Amenity",
"id": "a19",
"Category": "Beverage",
"Text": {
"language": "en",
"value": "No beverages available"
}
},
{
"@type": "Amenity",
"id": "a20",
"Category": "Aircraft",
"Text": {
"language": "en",
"value": "CR9 (larger regional jet)"
}
},
{
"@type": "Amenity",
"id": "a21",
"Category": "WiFi",
"Text": {
"language": "en",
"value": "Email & messaging (fee)"
}
},
]
}
]
}
}