Skip to content

Flex Flight Specific Search (Premium)

Request

This is an additional premium feature, not activated by default. Please contact your Travelport representative for more information on how to activate.
With TripServices Premium Flex Flight Specific Search full payload Point of Sales functionality, Online Travel Agencies (OTA) and Travel Management Companies (TMC) can expand their offer options for customers based on the point of sale of their branch agencies. They can select the offer that is more convenient even if the offer is in a different geographic location.

TripServices Premium Flex Flight Specific Search full payload Point of Sales functionality is supported for GDS content. The customer can send up to 3 Pseudo City Codes (PCCs) in PricingModifiersAir/MultiPricingAgency. Premium Flex Search is supported for a maximum of two O&Ds and will be ignored when more than two SpecificFlightCriteria objects are sent in the request. The functionality will be available to selective TripServices Search customers. The customer can request this new functionality via their account representative.

The request returns additional upsells, up to 99, for any product/s returned by Search or Next Leg Search. The reference payload sends an identifier referencing a previous response and the offer and product identifiers. The full payload request does not reference a previous Search response. GDS only, not supported for NDC. Any CabinPreference in the initial Search request is applied to any subsequent Next Leg Search and reference Flight Specific Search requests. To use the Flight Specific Search reference payload request, your initial Search request must send offersPerPage to invoke caching if that Search was journey-based (leg-based search results are always cached). The Flight Specific Search response uses the same structure and returns the same objects as the Search response. The differences are, One instance of CatalogProductOffering (id o1) is returned for each offer sent in the request. One instance of ReferenceListProduct/Product is returned for each product sent in the request.

Customers can use the Accept Header to choose whether the TripServices Premium Flex Flight Specific Search full payload response is aggregated or streamed.
Stream Header Key “Accept” Value “application/stream+json”.
When customers request streamed Premium Flex Flight Specific Search full payload responses, multiple CatalogProductOfferingsResponse are returned consecutively, each including TermsAndConditionsAir and PricingAgency with the applicable PCC.
Aggregate Header Key “Accept” Value “application/json”.
When customers request aggregated Premium Flex Flight Specific Search full payload responses, offers from each PCC are combined into a single CatalogProductOfferingsResponse. Each offer includes its respective TermsAndConditionsAir and PricingAgency.

References in the response have been updated to clearly distinguish offers by PCC.

  • id = “f1o1”, “f1o2”, ... for the first offer received, “f2o1”, “f2o2”, ... for the second offer received, and so on.

    • Please note: Customers should not assume that CatalogProductOffering “id” will follow a sequential pattern (e.g., f1, f2, f3) in aggregated Flex Search responses. Implementations must not rely on this ordering when consuming the data.
  • CombinabilityCode = “f1j0”, “f1j1”, ... for the first offer received, “f2j0”, “f2j1”, ... for the second offer received, and so on.

  • ProductRef = “f1p0”, “f1p1”, ... for the first offer received, “f2p0”, “f2p1”, ... for the second offer received, and so on.

  • BrandRef = ”f1b0”, “f1b1”, ... for the first offer received, “f2b0”, “f2b1”, ... for the second offer received, and so on.

  • flightRefs = ”f1s1”, “f1s2”, ... for the first offer received, “f2s1”, “f2s2”, ... for the second offer received, and so on.

  • termsAndConditionsRef = ”f1T0”, “f1T1”, ... for the first offer received, “f2T0”, “f2T1”, ... for the second offer received, and so on.

Security
bearerAuth
Headers
TraceIdstring, [ 10 .. 89 ] characters

Identifier used to correlate Air API invocations across a multi-call business flows.

Example:TraceID_123456789
XAUTH_TRAVELPORT_ACCESSGROUPstring, = 36 characters([a-zA-Z-0-9-_]*)

Identifies the Travelport access group with which the caller is associated

Example:19Y88702-C27A-4E5D-829A-89D7016688B1
travelportPlusSessionIdentifierstring, [ 0 .. 100 ] characters([a-zA-Z-0-9-_]*)

travelportPlusSessionIdentifier used to maintain an established agency session

Example:49f58f5f-c443-43b4-9f5d-be405fd00a01
TVP-PCC-Corestring^[a-zA-Z\d]{3,4}_\w{2}$

Allows user to pass PCC instead of Access Group ID

Example:DU7_1G
Bodyapplication/jsonrequired

Premium Flex Flight Specific Search request payload.

@typestringrequired

Discriminator. No child classes

Example:"CatalogProductOfferingsQueryBuildOptions"
BuildOptionsobject(BuildOptions)required
curl -i -X POST \
  https://api.pp.travelport.net/11/air/catalog/search/catalogproductofferings/buildpremiumflexoptions \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'TVP-PCC-Core: DU7_1G' \
  -H 'TraceId: TraceID_123456789' \
  -H 'XAUTH_TRAVELPORT_ACCESSGROUP: 19Y88702-C27A-4E5D-829A-89D7016688B1' \
  -H 'travelportPlusSessionIdentifier: 49f58f5f-c443-43b4-9f5d-be405fd00a01' \
  -d '{
    "@type": "CatalogProductOfferingsQueryBuildOptions",
    "BuildOptions": {
      "@type": "BuildOptionsFromProducts",
      "maxNumberOfUpsellsToReturn": 99,
      "BuildFromProductsRequest": {
        "@type": "BuildFromProductsRequestAir",
        "PassengerCriteria": [
          {
            "@type": "PassengerCriteria",
            "number": 1,
            "age": 25,
            "passengerTypeCode": "ADT"
          }
        ],
        "ProductCriteriaAir": [
          {
            "SpecificFlightCriteria": [
              {
                "flightNumber": "405",
                "carrier": "QF",
                "departureDate": "2026-11-02",
                "departureTime": "06:30:00",
                "arrivalDate": "2026-11-02",
                "arrivalTime": "08:05:00",
                "from": "SYD",
                "to": "MEL",
                "classOfService": "E",
                "cabin": "Economy",
                "segmentSequence": 1,
                "brandTier": "1",
                "AvailabilitySourceCode": "Q",
                "ContentSource": "GDS"
              }
            ]
          },
          {
            "SpecificFlightCriteria": [
              {
                "flightNumber": "422",
                "carrier": "QF",
                "departureDate": "2026-11-09",
                "departureTime": "09:00:00",
                "arrivalDate": "2026-11-09",
                "arrivalTime": "10:25:00",
                "from": "MEL",
                "to": "SYD",
                "classOfService": "E",
                "cabin": "Economy",
                "segmentSequence": 2,
                "brandTier": "1",
                "AvailabilitySourceCode": "Q",
                "ContentSource": "GDS"
              }
            ]
          }
        ],
        "PricingModifiersAir": {
          "@type": "PricingModifiersAir",
          "fareSelection": {
            "@type": "FareSelectionDetail",
            "fareType": "PrivateFaresOnly"
          },
          "MultiPricingAgency": [
            "DU7",
            "EA9"
          ]
        },
        "CustomResponseModifiersAir": {
          "SearchRepresentation": "Journey",
          "includeFareCalculationInd": false
        }
      }
    }
  }'

Responses

OK - Successful Response - 200

Bodyapplication/json
CatalogProductOfferingsResponseobject(CatalogProductOfferingsResponse)

Top level object for Search response. Includes CatalogProductOfferings, Result, and ReferenceList.

Response
{ "CatalogProductOfferingsResponse": { "CatalogProductOfferings": null, "@type": "response", "transactionId": "49f58f5f-c443-43b4-9f5d-be405fd00a01", "traceId": "TraceID_123456", "correlationId": "49f58f5f-c443-43b4-9f5d-be405fd00a01", "reservationStatus": "Success", "Result": { "@type": "Result", "status": "Complete", "Error": [ … ], "Warning": [ … ] }, "Identifier": { "value": "A0656EFF-FAF4-456F-B061-0161008D7C4E", "authority": "TVPT" }, "NextSteps": { "baseURI": "www.travelport.com", "id": "5", "NextStep": [ … ] }, "ReferenceList": [ null ], "CurrencyRateConversion": [ { … } ], "Pagination": { "@type": "Pagination", "page": 1, "pageSize": 20, "totalPages": 5, "totalItems": 100 } } }