OpenAPI Specification
openapi: 3.1.0
info:
title: Sabre Bargain Finder Max Air Shopping API
description: Sabre Bargain Finder Max (BFM) API provides low-fare search capabilities for air shopping, returning optimal flight itineraries with pricing across Sabre's global airline content inventory. Supports one-way, round-trip, and multi-city searches with ATPCO, LCC, and NDC content.
version: 4.0.0
contact:
name: Sabre Developer Support
url: https://developer.sabre.com/support
license:
name: Sabre Developer Agreement
url: https://developer.sabre.com/
servers:
- url: https://api.sabre.com
description: Sabre Production API
security:
- BearerAuth: []
tags:
- name: Air Shopping
description: Low-fare search and offer retrieval
paths:
/v4.0.0/offers/air-fares/bargain-finder-max:
post:
operationId: bargainFinderMaxSearch
summary: Search for lowest air fares
description: Performs a low-fare air shopping search returning ranked itinerary options across scheduled, charter, and low-cost carriers. Supports one-way, round-trip, open-jaw, and multi-destination itineraries with flexible date ranges, cabin preferences, and fare basis filters.
tags:
- Air Shopping
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/BFMRequest'
responses:
'200':
description: Successful low-fare search response
content:
application/json:
schema:
$ref: '#/components/schemas/BFMResponse'
'400':
description: Bad request — invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized — invalid or expired token
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'429':
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/v4.0.0/offers/air-fares/bargain-finder-max/re-shop:
post:
operationId: bargainFinderMaxReShop
summary: Re-shop a specific itinerary for updated pricing
description: Re-shops a previously selected itinerary to retrieve current pricing and availability before booking. Used to confirm fares prior to PNR creation.
tags:
- Air Shopping
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ReShopRequest'
responses:
'200':
description: Re-shop results with updated pricing
content:
application/json:
schema:
$ref: '#/components/schemas/BFMResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
BFMResponse:
type: object
properties:
OTA_AirLowFareSearchRS:
type: object
properties:
PricedItineraries:
type: object
properties:
PricedItinerary:
type: array
items:
$ref: '#/components/schemas/PricedItinerary'
Success:
type: object
Errors:
type: object
properties:
Error:
type: array
items:
$ref: '#/components/schemas/APIError'
OriginDestinationOption:
type: object
properties:
FlightSegment:
type: array
items:
$ref: '#/components/schemas/FlightSegment'
OriginDestinationInformation:
type: object
required:
- DepartureDateTime
- OriginLocation
- DestinationLocation
properties:
DepartureDateTime:
type: string
format: date-time
example: '2026-06-15T00:00:00'
OriginLocation:
type: object
required:
- LocationCode
properties:
LocationCode:
type: string
description: IATA airport or city code
example: DFW
DestinationLocation:
type: object
required:
- LocationCode
properties:
LocationCode:
type: string
description: IATA airport or city code
example: LHR
RPH:
type: string
description: Reference placeholder for itinerary leg
example: '1'
ReShopRequest:
type: object
required:
- OTA_AirLowFareSearchRQ
properties:
OTA_AirLowFareSearchRQ:
type: object
properties:
TPA_Extensions:
type: object
properties:
IntelliSellTransaction:
type: object
properties:
RequestType:
type: object
properties:
Name:
type: string
enum:
- 50ITINS
APIError:
type: object
properties:
Code:
type: integer
NodeList:
type: string
ShortText:
type: string
Type:
type: string
BFMRequest:
type: object
required:
- OTA_AirLowFareSearchRQ
properties:
OTA_AirLowFareSearchRQ:
type: object
required:
- OriginDestinationInformation
- TravelPreferences
- TravelerInfoSummary
properties:
OriginDestinationInformation:
type: array
minItems: 1
maxItems: 6
items:
$ref: '#/components/schemas/OriginDestinationInformation'
TravelPreferences:
$ref: '#/components/schemas/TravelPreferences'
TravelerInfoSummary:
$ref: '#/components/schemas/TravelerInfoSummary'
Version:
type: string
example: 4.0.0
PricedItinerary:
type: object
properties:
SequenceNumber:
type: integer
AirItinerary:
type: object
properties:
DirectionInd:
type: string
enum:
- OneWay
- Return
- OpenJaw
- Circle
OriginDestinationOptions:
type: object
properties:
OriginDestinationOption:
type: array
items:
$ref: '#/components/schemas/OriginDestinationOption'
AirItineraryPricingInfo:
type: object
properties:
ItinTotalFare:
type: object
properties:
BaseFare:
type: object
properties:
Amount:
type: number
CurrencyCode:
type: string
Taxes:
type: object
properties:
Tax:
type: array
items:
type: object
properties:
TaxCode:
type: string
Amount:
type: number
TotalFare:
type: object
properties:
Amount:
type: number
CurrencyCode:
type: string
FlightSegment:
type: object
properties:
DepartureAirport:
type: object
properties:
LocationCode:
type: string
ArrivalAirport:
type: object
properties:
LocationCode:
type: string
OperatingAirline:
type: object
properties:
Code:
type: string
FlightNumber:
type: string
Equipment:
type: array
items:
type: object
properties:
AirEquipType:
type: string
MarketingAirline:
type: object
properties:
Code:
type: string
DepartureDateTime:
type: string
format: date-time
ArrivalDateTime:
type: string
format: date-time
StopQuantity:
type: integer
ElapsedTime:
type: integer
description: Flight duration in minutes
ResBookDesigCode:
type: string
description: Booking class (RBD)
CabinClassCode:
type: string
TravelPreferences:
type: object
properties:
CabinPref:
type: array
items:
type: object
properties:
Cabin:
type: string
enum:
- Economy
- PremiumEconomy
- Business
- First
PreferLevel:
type: string
enum:
- Preferred
- Only
MaxStopsQuantity:
type: integer
minimum: 0
maximum: 3
example: 1
TPA_Extensions:
type: object
properties:
LookAheadDays:
type: object
properties:
Value:
type: integer
description: Number of days to search around departure date
example: 3
TicketingRestriction:
type: object
properties:
Value:
type: string
enum:
- ALL_TICKETS
- NONREF_ONLY
- REF_ONLY
ErrorResponse:
type: object
properties:
status:
type: integer
errorCode:
type: string
message:
type: string
timeStamp:
type: string
format: date-time
TravelerInfoSummary:
type: object
required:
- AirTravelerAvail
properties:
AirTravelerAvail:
type: array
items:
type: object
properties:
PassengerTypeQuantity:
type: array
items:
type: object
properties:
Code:
type: string
enum:
- ADT
- CHD
- INF
- INS
description: Passenger type code
Quantity:
type: integer
minimum: 1
PriceRequestInformation:
type: object
properties:
CurrencyCode:
type: string
example: USD
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: Bearer token obtained from /v2/auth/token