Flex Explore using Low Fare Shopping
Travelport Universal API has enhanced Low Fare Shopping to relax geographical constraints around real-time, live searching without compromising on accuracy. Flex Explore functionality allows searches from a single destination point to a wider geographical range.
The Flex Explore functionality is:
-
Available to Pseudo City Codes (PCCs) that are provisioned for Flex Explore on the provider. If a PCC sends a Flex Explore request, but is not provisioned on the provider, an error is returned.
-
Applicable for Air Pricing Solutions (AirPricingSolution) and Air Price Points (AirPricePoint) in the Low Fare Shopping response on Galileo (1G), Apollo (1V), and Worldspan (1P).
See Air Pricing Solutions and Low Fare Shopping by Air Price Points for details.
Important!
- Flex Explore functionality is available on Galileo (1G), Apollo (1V), and Worldspan (1P). Flex Explore is not supported by Airline Content Hub (ACH).
- Flex Explore does not return branded fares.
Schema
Located in Air.xsd:
Request
A Flex Explore request uses LowFareSearchReq and includes the FlexExploreModifiers element to specify the type of Low Fare Shopping request: Zone, Country, State, Destination, DistanceInMiles or DistanceInKilometers.
- Enter the minimum required data:
Information to identify the requestor, sent in BillingPointOfSaleInfo @OriginApplication.
- Elements from SearchAirLeg.
The Origin and Destination city/airport codes using typeLocation.
A departure or arrival date. The maximum days in advance for a search is 361.
A departure or arrival time.
Requests for multi-destination journeys that contain three or more destinations follow the same structure and logic as one-way or round-trip journeys.
Universal API automatically detects whether a location in a shop request is an Airport or City code by specifying the city or airport code in the in the @CityOrAirport attribute and indicating "true" or "false" whether the code in PreferCity is true = city or false = airport. For example, <CityOrAirport Code="GRU" PreferCity="true" />
Each instance of SearchAirLeg represents a request for a discrete leg of an air trip and identifies the departure and arrival dates, times, and locations for each leg of the trip:
Notes:
- A Passenger Type Code (PTC), sent in SearchPassenger @Code.
Note: Even if an age is included in the request, it is not sent for adult (ADT) passengers. It is sent for all other PTCs if specified in the request. See Low Fare Shopping with Passenger Types for details.
- Enter @SolutionResult="true" to return AirPricingSolution instead of AirPricePointList.
- Use the FlexExploreModifiers element to define the Flex Explore criteria.
- Type expands the Low Fare Shopping request to:
- Zone: The IATA-defined zones in which the destination city/airport is located.
- Country: The country in which the destination city/airport is located.
- State: The state or province in which the destination city/airport is located.
- Destination: Include multiple destinations in the search. If Type="Destination", then one or more destination city/airport codes must be included in @Destination.
- DistanceInMiles or DistanceInKilometers: The distance is calculated from a destination point and provides a radius for all the cities/airports, calculated from the destination point. The distance must be in a range (entered in @Radius) from 001 to 999 miles or kilometers.
Note: Destination is also referred to as "GoList".
- Radius: The Radius is applicable only when Type=“Distance”. The radius must be in a range from 001 to 999 miles. If the radius value is out of range, an error is returned:
- Destination: The Destination is applicable only when Type=“Destination”. This option supports a maximum of 60 destinations in the schema, including the destination point in the Low Fare Shopping request. Currently, up to 49 unique destinations may be priced and returned in the response. The number of destinations that are returned is dependent on the complexity of the transaction: how wide the search is, how many destinations are accessible, etc.
The distance should range between 1-999 miles.
The distance should range between 1-999 kilometers.
- Type expands the Low Fare Shopping request to:
Flex Explore is always applied in the final destination. For example, in a DEN-SEA-ORD Low Fare Shopping request, Flex Explore applies to the ORD destination.
Important!
Flex Explore cannot be combined with other flexible shopping options. If one or more flexible shopping options are included in a request that also includes Flex Explore modifiers, only the Flex Explore modifiers are sent in the request. The other flexible shopping options are ignored and warnings are returned.

In the code snippet below, the FlexExplore Destination modifier is used to add Narita and Sydney as flexible destinations. Therefore, routes to both Narita and Sydney, and any associated airports will be returned:
<air:FlexExploreModifiers Type="Destination">
<air:Destination>SYD</air:Destination>
<air:Destination>NRT</air:Destination>
</air:FlexExploreModifiers>

In the code snippet below, the FlexExplore modifier Type="Group" and a corresponding GroupName="MEXICOBEACH" allows up to 49 destinations associated to the group. In this example, @MaxSolutions limits the response to 15 options:
<air:AirSearchModifiers MaxSolutions="15" PreferNonStop="true">...</air:AirSearchModifiers>
<com:SearchPassenger xmlns:com="http://www.travelport.com/schema/common_v34_0" BookingTravelerRef="gr8AVWGCR064r57Jt0+8bA==" Code="ADT"/>
<air:FlexExploreModifiers GroupName="MEXICOBEACH" Type="Group"/>

In the code snippet below, the FlexExplore Radius modifier is used to return airports within a 350-mile radius of both the inbound and outbound destination. However, if there are no qualifying flights to other airports within radius radius of either the departure or destination, only flights for the requested airport are returned:
<air:FlexExploreModifiers> Radius="350" Type="DistanceInMiles"/>
Response
The maximum number of results is 300 solutions. The number of priced solutions per destination varies depending upon the number of destinations and the number of priced itineraries for each destination that were processed. For example:
- If there are at least 10 priced itineraries for each of 30 destinations, then each destination returns 10 solutions.
- If there are 30 destinations and:
- 28 destinations have 10 priced itineraries.
- 1 destination (Destination A) has 5 priced itineraries.
- 1 destination (Destination B) has more than 15 priced itineraries.
Then 28 destinations return 10 solutions, Destination A returns 5 solutions, and Destination B returns 15 solutions, for a total of 300 solutions.
Errors and Warnings
The following errors and warnings may be returned:
Warning or Error | Reason |
---|---|
Flex Explore modifier cannot be combined with Flex Days option. Flex Days option is ignored in the request. |
FlexExploreModifiers are used with other flexible shopping options. Only the Flex Explore modifiers are sent in the request. The other flexible shopping options are ignored. |
Flex Explore modifier cannot be combined with Flex Airports option. Flex Airports option is ignored in the request. |
FlexExploreModifiers are used with other flexible shopping options. Only the Flex Explore modifiers are sent in the request. The other flexible shopping options are ignored. |
Flex Explore modifier cannot be combined with Flex Weekend option. Flex Weekend option is ignored in the request. |
FlexExploreModifiers are used with other flexible shopping options. Only the Flex Explore modifiers are sent in the request. The other flexible shopping options are ignored. |
Flex Explore modifier cannot be combined with Flex Origin and Destination option. Flex Origin and Destination option is ignored in the request. |
FlexExploreModifiers are used with other flexible shopping options. Only the Flex Explore modifiers are sent in the request. The other flexible shopping options are ignored. |
Flex Explore modifier cannot be combined with Flex Days and Flex Weekend options. Flex Days and Flex Weekend options are ignored in the request. |
FlexExploreModifiers are used with other flexible shopping options. Only the Flex Explore modifiers are sent in the request. The other flexible shopping options are ignored. |
TRIP MAXIMUM EXCEEDED or UNABLE - FLEX EXPLORE NOT AVAIL FOR THIS ITIN |
FlexExploreModifiers are used with multi-stop or multi-leg itineraries. |
BRD/OFF POINTS MUST BE EQUAL or NO AVAILABILITY FOR THIS REQUEST |
FlexExploreModifiers are used with open jaw itineraries. |
*MAX NUMBER OF DESTINATIONS EXCEEDED * |
More than 60 Destinations are provided. |
The valid type with radius is DistanceInMiles and DistanceInKilometers. |
A Radius value is provided and Type is not DistanceInMiles or DistanceInKilometers. |
The radius is mandatory with type DistanceInMiles and DistanceInKilometers. |
The Type is DistanceInMiles or DistanceInKilometers, and a Radius value is not specified. |
The distance should range between 1-999 miles. The distance should range between 1-999 Kilometers. |
The Type is DistanceInMiles or DistanceInKilometers, and a Radius value is not between 1 and 999 miles or kilometers. |
The valid type with destination list is Destination. |
A destination list is provided in FlexExploreModifiers/Destination, and the Type is not Destination |
The destination list is mandatory with type Destination. |
The Type is Destination but a destination list is not specified in FlexExploreModifiers/Destination. |
Flex Explore is not supported with PricePoints. |
FlexExploreModifiers is sent with @SolutionResult="false" to the Worldspan provider. |
User is not provisioned for Flex Explore. | FlexExploreModifiers is sent to a provider that does not support the modifier. |
User is not authorized for Flex Explore. | FlexExploreModifiers is sent by a user that is not provisioned for Flex Explore. |