FareNabber

FareNabber is a low fare search subscription service to find priced itinerary options to match traveler specific search criteria. A wide range of criteria can be applied to the search, including travel date range and a minimum or maximum price. Once the search criteria is met, FareNabber nabs the itinerary options and pushes the results to the customer for a purchase decision.

Note: This service requires activation, please contact your Sabre Account Representative for assistance.

Sample use case: Offer a new fare alert service for your travelers. .

API Information

Target Audience
Sabre Travel Network
Current Version
1.0.0
Authentication
Sessionless Token
Method/Endpoint
POST /v1.0/AirShopping/FareNabberSubscriptions
GET /v1.0/AirShopping/FareNabberSubscriptions/{Subscription hash id}
PUT /v1.0/AirShopping/FareNabberSubscriptions/{Subscription hash id}
DELETE /v1.0/AirShopping/FareNabberSubscriptions/{Subscription hash id}

Resources

Ready to try the APIs?

Ready to get your hands dirty?

 Register Try the APIs

Ready to launch?

Ready to step up to the production level service? We're standing by to fit you for your spacesuit.

Request Production Key

Subscription Creation Request

ParentElementName

type object

Parent description:

  • priceCurrency, String
  • pcc, String
  • expiryDate, String
  • online, Boolean
  • nonstop, Boolean
  • SubscriptionLegs, Array
  • SubscriptionPassengers, Array
  • PreferredAirlines, Array
priceCurrency

String

Price currency for minPrice and maxPrice specified both in subscription and legs.

Sample value: "priceCurrency": "EUR",

pcc

String

Pseudo City Code

Sample value: "pcc": "E8KE",

expiryDate

String

Date after which subscription will be deleted. Can be empty or omitted (as expiry date will be used departure date of the first leg, when leg uses date range-end of that range).

Sample value: "expiryDate": "2016-12-30",

online

Boolean

Indicates if connections should be only online.

Sample value: "online": false,

nonstop

Boolean

Indicates if flights can't have stopovers. Can be ommited-default value false.

Sample value: "nonstop": false,

SubscriptionLegs

Array

SubscriptionLegs

Sample value:

"SubscriptionLegs": [ { "departureDateFrom": "2016-11-05", "departureTimeFrom": "1200", "departureDateTo": "2016-11-12", "days": null, "departureTimeWindow": null, "arrivalTimeWindow": null, "origin": "JFK", "destination": "LAS" } ]
SubscriptionLegs[].departureDateFrom

String

In case of specific date subscription this specifies flight departure date, when using with departureDateTo as days range specifies start of that range

Sample value: departureDateFrom": "2016-11-05",

SubscriptionLegs[].departureTimeFrom

String

Used for specific date subscription, specifies flight departure time, defaults as 0000

Sample value: "departureTimeFrom": "1200",

SubscriptionLegs[].departureDateTo

String

End of date range, in case of specific date subscription leave empty or omit completely and use only departureDateTimeFrom

Sample value: "departureDateTo": "2016-11-12",

SubscriptionLegs[].days

String

Specify which days of week to consider for departure. Value format: First letter of the name of the day or '_', eg. 'SMT___S' means we are interested in departing at Saturday, Sunday, Monday or Tuesday. Can be empty or omitted (specifies all days of week)

Sample value: "days": "SMT___S",

SubscriptionLegs[].departureTimeWindow

String

Format: HHMMHHMM (from-to). Can be empty or omitted (search flight with departure on every hour)

Sample value: "departureTimeWindow": HHMMHHMM,

SubscriptionLegs[].arrivalTimeWindow

Integer

Format: HHMMHHMM (from-to). Can be empty or omitted (search flight with arrival on every hour)

Sample value: "arrivalTimeWindow": "10002100",

SubscriptionLegs[].origin

String

origin

Sample value: "origin": "JFK",

SubscriptionLegs[].destination

Integer

destination

Sample value: "destination": "LAS"

PreferredAirlines

String

Operating carrier of this flight

Sample value: "PreferredAirlines": "UA"

SubscriptionPassengers

Array

Subscription Passengers

Sample value:

"SubscriptionPassengers": [ { "passengerType": "ADT", "maxPrice": 50.0, "minPrice": 0, "numberOfPassengers": 1 } ]
SubscriptionPassengers[].passengerType

String

Type of passenger (ADT, CNN etc.)

Sample value: "passengerType": "ADT",

SubscriptionPassengers[].maxPrice

Number

Max price per this type of passenger.

Sample value: "maxPrice": 50.0,

SubscriptionPassengers[].minPrice

Number

Min price per this type of passenger can be omitted (then minPrice=0).

Sample value: "minPrice": 0,

SubscriptionPassengers[].numberOfPassengers

Integer

Number of passengers of this type

Sample value: "numberOfPassengers": 1

PreferredAirlines

Array

Array of preffered airlines; pattern: "^([A-Z]|[0-9]){2}$"

Sample value: "PreferredAirlines": [UA]

Subscription Retrieval Request

Subscription Retrieval is requested by a direct call to the API with a GET HTTP method with the subscription hash id referenced in the URL.

Subscription Modification Request

Subscription Modification is requested by a direct call to the API with a PUT HTTP method with the subscription hash id referenced in the URL and a full overlay od the Subscription Retrieval JSON message in the message body.

Subscription Deleting Request

Subscription Deleting is requested by a direct call to the API with a DELETE HTTP method with the subscription hash id referenced in the URL.

Low Fare Notification

lowFareNotification

Array

Array of notifications indicating finding lower fare for given subscription.

  • flights, Array
  • pricesPerPassenger, Array
  • hashId, String
  • numberOfLegs, Integer
  • numberOfPassengers, Integer
  • pcc, String
  • totalItinPrice, Integer
  • currency, String
flights

Array

Details related to flights contained in itinerary proposed.

Sample value:

"flights": [ { "airEquipType": "319", "arrivalDateTime": "2016-11-15T16:06:00", "departureDateTime": "2016-11-15T14:43:00", "destination": "LAX", "legNumber": 0, "mktCarrier": "AA", "mktFlightNumber": 1133, "opCarrier": "AA", "opFlightNumber": 1133, "origin": "LAS", "validatingCarrier": "AA" } ]
flights[].arrivalDateTime

String

Date and time of flight arrival.

Sample value: "arrivalDateTime": "2016-11-15T16:06:00",

flights[].departureDateTime

String

Date and time of flight departure.

Sample value: "departureDateTime": "2016-11-15T14:43:00",

flights[].destination

String

Destination of this flight.

Sample value: "destination": "LAX",

flights[].legNumber

Integer

Number of leg to which this flight belongs to

Sample value: "legNumber": 0,

flights[].mktCarrier

String

Marketing carrier of this flight.

Sample value: "mktCarrier": "AA",

flights[].mktFlightNumber

Integer

Marketing flight number.

Sample value: "mktFlightNumber": 1133,

flights[].opCarrier

String

Operating carrier of this flight.

Sample value: "opCarrier": "AA",

flights[].opFlightNumber

Integer

Operating flight number.

Sample value: "opFlightNumber": 1133,

flights[].validatingCarrier

String

Validating carrier of this flight.

Sample value: "validatingCarrier": "AA",

flights[].airEquipType

String

Equipment code.

Sample value: "airEquipType": "319",

flights[].origin

String

Origin of this flight.

Sample value: "origin": "LAS",

pricesPerPassenger

Array

What passenger types were considered and what is the price per passenger for each passenger type.

Sample value:

"pricesPerPassenger": [ { "additionalInfos": [ "flights" table, first element to first flight, etc. { "availabilityBreak": true, "bookingCode": "O" } ], "numberOfPassengers": 1, "passengerType": "ADT", "passengerTypePrice": 41.87, "passengerTypePriceCurrency": "EUR" } ],
pricesPerPassenger[].numberOfPassengers

Integer

Number of passengers of this type.

Sample value: "numberOfPassengers": 1,

pricesPerPassenger[].passengerType

String

Type of passengers.

Sample value: "passengerType": "ADT",

pricesPerPassenger[].passengerTypePrice

number

Price per single passenger of this flight.

Sample value: "passengerTypePrice": 41.87,

pricesPerPassenger[].passengerTypePriceCurrency

String

Currency of price

Sample value: "passengerTypePriceCurrency": "EUR",

pricesPerPassenger[].additionalInfos

Array

List of flight additional information corresponding to flights Array with respected order.

Sample value:

"additionalInfos": [ { "availabilityBreak": true, "bookingCode": "O" } ],
pricesPerPassenger[].additionalInfos[].availabilityBreak

Boolean

Availability break.

Sample value: "availabilityBreak": true,

pricesPerPassenger[].additionalInfos[].bookingCode

Integer

Booking Code.

Sample value: "bookingCode": "O",

hashId

String

Allows to identify subscription.

Sample value: "hashId": "wHZ_VyYf9sEQ2kC9UEzeaUcUkCs=",

numberOfLegs

Integer

Number of legs.

Sample value: "numberOfLegs": 1,

numberOfPassengers

Integer

Number of passengers.

Sample value: "numberOfPassengers": 1,

pcc

String

Pseudo City Code

Sample value: "pcc": "E8KE",

totalItinPrice

number

Total price for all passengers specified in subscription.

Sample value: "totalItinPrice": 41.87,

currency

String

currency

Sample value: "currency": "EUR",

Subscription Creation Response

value

String

hash id (subscription reference id, returned upon successful subsctiption creation)

Sample value: {"value":"VNRtkmdPHr5BtXGaINCXZDIIeVg="}

Example: request and response

Subscription Creation Request Example

POST /v1.0/AirShopping/FareNabberSubscriptions
{
  "priceCurrency": "EUR",
  "pcc": "E8KE",
  "SubscriptionPassengers": [
    {
      "passengerType": "ADT",
      "maxPrice": 50.0,
      "numberOfPassengers": 1
    }
  ],
  "SubscriptionLegs": [
    {
      "departureDateFrom": "2017-05-04",
      "origin": "JFK",
      "destination": "LAS"
    }
  ]
}

Subscription Creation Response Example

HTTP/1.1 200 OK
{"value":"VNRtkmdPHr5BtXGaINCXZDIIeVg="}

Subscription Retrieval Request Example

GET /v1.0/AirShopping/FareNabberSubscriptions/{Subscription id}

Subscription Retrieval Response Example

HTTP/1.1 200 OK
{
   "priceCurrency": "EUR",
   "pcc": "E8KE",
   "expiryDate": "2017-05-04",
   "nonstop": false,
   "online": false,
   "PreferredAirlines": [],
   "SubscriptionPassengers": [   {
      "passengerType": "ADT",
      "maxPrice": 50,
      "minPrice": 0,
      "numberOfPassengers": 1
   }],
   "SubscriptionLegs": [   {
      "departureDateFrom": "2017-05-04",
      "departureTimeFrom": "0000",
      "departureDateTo": null,
      "days": null,
      "departureTimeWindow": null,
      "arrivalTimeWindow": null,
      "origin": "JFK",
      "destination": "LAS",
      "PreferredAirlines": []
   }]
}

Subscription Modification Request Example

PUT /v1.0/AirShopping/FareNabberSubscriptions/{Subscription id}
{
   "priceCurrency": "EUR",
   "pcc": "E8KE",
   "expiryDate": "2017-05-04",
   "nonstop": false,
   "online": false,
   "PreferredAirlines": [],
   "SubscriptionPassengers": [   {
      "passengerType": "ADT",
      "maxPrice": 100,
      "minPrice": 0,
      "numberOfPassengers": 1
   }],
   "SubscriptionLegs": [   {
      "departureDateFrom": "2017-05-04",
      "departureTimeFrom": "0000",
      "departureDateTo": null,
      "days": null,
      "departureTimeWindow": null,
      "arrivalTimeWindow": null,
      "origin": "JFK",
      "destination": "LAS",
      "PreferredAirlines": []
   }]
}

Subscription Modification Response Example

HTTP/1.1 204 No Content

Subscription Delete Request Example

DELETE /v1.0/AirShopping/FareNabberSubscriptions/{Subscription id}

Subscription Delete Response Example

HTTP/1.1 204 No Content

Low Fare Notification Example

{
    "lowFareNotification": [
      {
        "currency": "EUR", 
        "flights": [
          {
            "airEquipType": "320", 
            "arrivalDateTime": "2016-12-06T23:08:00", 
            "departureDateTime": "2016-12-06T20:10:00", 
            "destination": "LAS", 
            "legNumber": 0, 
            "mktCarrier": "B6", 
            "mktFlightNumber": 611, 
            "opCarrier": "B6", 
            "opFlightNumber": 611, 
            "origin": "JFK", 
            "validatingCarrier": "B6"
          }, 
          {
            "airEquipType": "321", 
            "arrivalDateTime": "2016-12-18T05:29:00", 
            "departureDateTime": "2016-12-17T21:45:00", 
            "destination": "JFK", 
            "legNumber": 1, 
            "mktCarrier": "B6", 
            "mktFlightNumber": 948, 
            "opCarrier": "B6", 
            "opFlightNumber": 948, 
            "origin": "LAS", 
            "validatingCarrier": "B6"
          }
        ], 
        "hashId": "JviYe4kJfijG9Jg_IOSsDBCTS1A=", 
        "numberOfLegs": 2, 
        "numberOfPassengers": 1, 
        "pcc": "E8KE", 
        "pricesPerPassenger": [
          {
            "additionalInfos": [
              {
                "availabilityBreak": true, 
                "bookingCode": "P"
              }, 
              {
                "availabilityBreak": true, 
                "bookingCode": "P"
              }
            ], 
            "numberOfPassengers": 1, 
            "passengerType": "ADT", 
            "passengerTypePrice": 214.96, 
            "passengerTypePriceCurrency": "EUR"
          }
        ], 
        "totalItinPrice": 214.96
      }
    ]
}

Expiry Notification Examples

{
  "expiryNotification": [
    {
      "hashId": "CD8EPV8O1HtDpj-xRVMU-WwaGj4=",
      "pcc": "E8KE",
      "reason": "Subscription Expired"
    }
  ],
}
{
  "expiryNotification": [
    {
      "hashId": "CD8EPV8O1HtDpj-xRVMU-WwaGj4=",
      "pcc": "E8KE",
      "reason": "Flight dates are in past"
    }
  ],
}

Errors

A general HTTP status code is always returned. For information about the error response format, see the: Sabre APIs: common errors page.

A client should verify whether a request was successful by writing code to the following:

Status 404 Not Found

"Subscription with hash code {subscription} not found!",

503 Service Unavailable

"Unknown error occurred"

Docs Navigation