OpenAPI Specification
openapi: 3.1.0
info:
title: Sabre Bargain Finder Max Air Shopping Hotel Search 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: Hotel Search
description: Search and availability operations
paths:
/v2.0.0/offers/hotels:
post:
operationId: searchHotelAvailability
summary: Search hotel availability and rates
description: Searches for available hotels in a destination with real-time rate and availability data from Sabre GDS and SynXis distribution. Supports radius search, amenity filters, chain preferences, and rate type filters.
tags:
- Hotel Search
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HotelSearchRequest'
responses:
'200':
description: Hotel availability results
content:
application/json:
schema:
$ref: '#/components/schemas/HotelSearchResponse'
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/v2.0.0/offers/hotels/{hotelCode}/rates:
get:
operationId: getHotelRates
summary: Get room rates for a specific hotel
description: Retrieves detailed room types, rate plans, and pricing for a specific hotel property. Returns cancellation policies, deposit requirements, and available room inventory.
tags:
- Hotel Search
parameters:
- name: hotelCode
in: path
required: true
schema:
type: string
description: Sabre hotel property code (GDS property identifier)
example: HTL123456
- name: checkIn
in: query
required: true
schema:
type: string
format: date
example: '2026-06-15'
- name: checkOut
in: query
required: true
schema:
type: string
format: date
example: '2026-06-18'
- name: adults
in: query
required: false
schema:
type: integer
default: 1
example: 2
- name: currency
in: query
required: false
schema:
type: string
default: USD
responses:
'200':
description: Hotel room rates and availability
content:
application/json:
schema:
$ref: '#/components/schemas/HotelRatesResponse'
'404':
description: Hotel not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
schemas:
Address:
type: object
properties:
Street:
type: string
City:
type: string
StateProvince:
type: string
PostalCode:
type: string
CountryCode:
type: string
CitySearch:
type: object
required:
- CityCode
properties:
CityCode:
type: string
example: NYC
RadiusMiles:
type: integer
default: 5
HotelSearchResponse:
type: object
properties:
Hotels:
type: array
items:
$ref: '#/components/schemas/HotelSummary'
TotalResults:
type: integer
SearchId:
type: string
description: Session search identifier for subsequent requests
Rate:
type: object
properties:
Amount:
type: number
format: double
CurrencyCode:
type: string
example: USD
RoomType:
type: object
properties:
RoomTypeCode:
type: string
Name:
type: string
Description:
type: string
MaxOccupancy:
type: integer
BedConfiguration:
type: string
Rates:
type: array
items:
$ref: '#/components/schemas/RatePlan'
AirportSearch:
type: object
required:
- AirportCode
properties:
AirportCode:
type: string
example: DFW
RadiusMiles:
type: integer
default: 5
HotelSummary:
type: object
properties:
HotelCode:
type: string
Name:
type: string
ChainCode:
type: string
StarRating:
type: integer
minimum: 1
maximum: 5
Address:
$ref: '#/components/schemas/Address'
LowestRate:
$ref: '#/components/schemas/Rate'
Amenities:
type: array
items:
type: string
Images:
type: array
items:
type: object
properties:
Url:
type: string
Category:
type: string
HotelSearchRequest:
type: object
required:
- CheckIn
- CheckOut
- GeoSearch
properties:
CheckIn:
type: string
format: date
example: '2026-06-15'
CheckOut:
type: string
format: date
example: '2026-06-18'
GeoSearch:
oneOf:
- $ref: '#/components/schemas/AirportSearch'
- $ref: '#/components/schemas/CitySearch'
- $ref: '#/components/schemas/GeoCodeSearch'
Guests:
type: array
items:
type: object
properties:
Adults:
type: integer
minimum: 1
default: 1
MaxResults:
type: integer
default: 20
maximum: 100
SortBy:
type: string
enum:
- PRICE_LOWEST
- PRICE_HIGHEST
- STAR_RATING
- DISTANCE
GeoCodeSearch:
type: object
required:
- Latitude
- Longitude
properties:
Latitude:
type: number
format: double
example: 32.8998
Longitude:
type: number
format: double
example: -97.0403
RadiusMiles:
type: integer
default: 5
ErrorResponse:
type: object
properties:
status:
type: integer
errorCode:
type: string
message:
type: string
timeStamp:
type: string
format: date-time
RatePlan:
type: object
properties:
RatePlanCode:
type: string
RatePlanName:
type: string
DailyRate:
$ref: '#/components/schemas/Rate'
TotalRate:
$ref: '#/components/schemas/Rate'
Refundable:
type: boolean
CancellationPolicy:
type: string
MealsIncluded:
type: array
items:
type: string
HotelRatesResponse:
type: object
properties:
HotelCode:
type: string
Name:
type: string
Rooms:
type: array
items:
$ref: '#/components/schemas/RoomType'
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: Bearer token obtained from /v2/auth/token