Travel Seasonality

The Travel Seasonality API returns a traffic volume rating for each week of the year for a given destination.

API Information

Target Audience
Sabre Travel Network
Current Version
v1
Authentication
Sessionless Token
Method/Endpoint
GET /v1/historical/flights/{destination}/seasonality

In detail: the API uses the Travel Insight Engine to retrieve booking data to calculate peak and off-peak travel periods for a given airport or multi-airport city (MAC) code available in the Sabre® cache. If a MAC is used as a destination, results will represent all airports belonging to the MAC.

In total, each request returns a booked traffic volume rating of low, medium or high for each week (1-52) of the next year for a given destination. Each week is compared with the traffic volume of the other 51 weeks. The API then calculates whether that week is high or low seasonality, e.g., week 32 is compared with the 1st, 2nd, 3rd... 33rd, 34th, 35th... 52nd weeks.

Ratings for past weeks will be for the following year. For example, if at the time of the request, the current week is week #33 in 2015, then the ratings returned for the past (1-32) weeks will be for the weeks in the following year, i.e., 2016. If a week number has not passed, then the remaining week numbers will be for the weeks in the current year, e.g. the current week is #33, then weeks 34-52 will be in 2015.

To get the future weeks that begin after the date of the request, sort the response by WeekStartDate.

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

Business use case

You could use this API to create a graphical heat map for a given destination, e.g., "NYC," the multi-airport city (MAC) code for New York City. From this, travelers can see the peak and off peak travel periods for New York City, and hence, the least expensive week in the month to fly.

Definition of weeks and a new year

The 12 previous months of bookings have either 52 or 53 weeks, depending on the calendar. The 52 future weeks begin with the week that follows the API request. The travel seasonality rating does not use the current week because the data is not complete. A week is defined as Monday through Sunday. The first day of a week is Monday. A year begins with the first week that includes both January 4 and a Thursday in January. Because a week is defined as Monday through Sunday, it is possible for the first week of a year to include dates from the previous year. In the response, weeks are numbered consecutively from 1 to 52 or 53, beginning with the first week (Week 1) of a year.

Data used for the Travel Seasonality API

  • Bookings made via the Sabre GDS for travel to major destination airports throughout the world during the 52 weeks before an API request.
  • All passenger types
  • All cabin types: economy, first class, business, and premium economy
  • All flight types: nonstop, direct, connecting, and flights with stops
  • Point of sale: No limitations on locations from which bookings are made.

Request

Path Variable

destination

The 3-letter IATA destination airport or multi-airport city (MAC) code

Sample value: ELP

Response

DestinationLocation

object

Returns the specified 3-letter IATA destination airport or multi-airport city (MAC) code

Seasonality

array

Repeats associated seasonality information 52-53 times:

  • YearWeekNumber, number
  • WeekStartDate, string
  • WeekEndDate, string
  • NumberOfObservations, string
  • SeasonalIndicator, string
YearWeekNumber

number

The week number in the year from 1-52 or 53

See usage notes: for the definition of weeks and a new year.

WeekStartDate

string

The first date of the week that YearWeekNumber identifies

Data format: YYYY-MM-DD

Note: To get the future weeks that begin after the date of the request, sort the response by WeekStartDate.

WeekEndDate

string

The last date of the week that YearWeekNumber identifies

Data format: YYYY-MM-DD

NumberOfObservations

string

The volume of flights booked during a given year for the specified destination airport or multi-airport city (MAC) code

Valid values:

  • GreaterThan10000–more than 10000 flights were booked
  • LessThan10000–less than 10000 (and greater than 1000) flights were booked
  • LessThan1000–less than 1000 flights were booked

If a MAC is used as a destination, then results will represent all airports belonging to the MAC.

SeasonalityIndicator

string

The weekly traffic volume rating for the specified destination airport or multi-airport city (MAC) code

Each week is compared with the traffic volume of the other 51 weeks

Valid values:

  • low–booked traffic volume via the Sabre GDS to a destination were in the lowest 30%, when compared with the traffic volumes for each of the other 51 weeks.
  • high–booked traffic volume via the Sabre GDS to a destination were in the highest 30%, when compared with the traffic volumes for each of the other 51 weeks.
  • medium–booked traffic volume via the Sabre GDS to a destination were between 30 and 70%, when compared with the traffic volumes for each of the other 51 weeks.

If a MAC is used as a destination, then results will represent all airports belonging to the MAC.

Overall response links

Link nodes

array

self

object

Returns the URL of the request that generated the response

linkTemplate

object

Formats a Travel Seasonality API request with placeholders for every parameter in a request

Sample code

Request

This example demonstrates a request and response for weekly traffic ratings for booked travel to "ELP" (El Paso International).

GET https://api.havail.sabre.com/v1/historical/flights/ELP/seasonality

Response

{
    DestinationLocation: "ELP",
    Seasonality: [{
        WeekEndDate: "2016-01-10T00:00:00",
        YearWeekNumber: 1,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2016-01-04T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2016-01-17T00:00:00",
        YearWeekNumber: 2,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2016-01-11T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2016-01-24T00:00:00",
        YearWeekNumber: 3,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2016-01-18T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2016-01-31T00:00:00",
        YearWeekNumber: 4,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2016-01-25T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2016-02-07T00:00:00",
        YearWeekNumber: 5,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2016-02-01T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2016-02-14T00:00:00",
        YearWeekNumber: 6,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2016-02-08T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2016-02-21T00:00:00",
        YearWeekNumber: 7,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2016-02-15T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2016-02-28T00:00:00",
        YearWeekNumber: 8,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2016-02-22T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2016-03-06T00:00:00",
        YearWeekNumber: 9,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2016-02-29T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2016-03-13T00:00:00",
        YearWeekNumber: 10,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2016-03-07T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-03-15T00:00:00",
        YearWeekNumber: 11,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-03-09T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-03-22T00:00:00",
        YearWeekNumber: 12,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-03-16T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-03-29T00:00:00",
        YearWeekNumber: 13,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-03-23T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-04-05T00:00:00",
        YearWeekNumber: 14,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-03-30T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-04-12T00:00:00",
        YearWeekNumber: 15,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-04-06T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-04-19T00:00:00",
        YearWeekNumber: 16,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-04-13T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2015-04-26T00:00:00",
        YearWeekNumber: 17,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-04-20T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-05-03T00:00:00",
        YearWeekNumber: 18,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-04-27T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-05-10T00:00:00",
        YearWeekNumber: 19,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-05-04T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-05-17T00:00:00",
        YearWeekNumber: 20,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-05-11T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-05-24T00:00:00",
        YearWeekNumber: 21,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-05-18T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-05-31T00:00:00",
        YearWeekNumber: 22,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-05-25T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-06-07T00:00:00",
        YearWeekNumber: 23,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-06-01T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-06-14T00:00:00",
        YearWeekNumber: 24,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-06-08T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-06-21T00:00:00",
        YearWeekNumber: 25,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-06-15T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-06-28T00:00:00",
        YearWeekNumber: 26,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-06-22T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2015-07-05T00:00:00",
        YearWeekNumber: 27,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-06-29T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2015-07-12T00:00:00",
        YearWeekNumber: 28,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-07-06T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-07-19T00:00:00",
        YearWeekNumber: 29,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-07-13T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2015-07-26T00:00:00",
        YearWeekNumber: 30,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-07-20T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-08-02T00:00:00",
        YearWeekNumber: 31,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-07-27T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2015-08-09T00:00:00",
        YearWeekNumber: 32,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-08-03T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-08-16T00:00:00",
        YearWeekNumber: 33,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-08-10T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-08-23T00:00:00",
        YearWeekNumber: 34,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-08-17T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-08-30T00:00:00",
        YearWeekNumber: 35,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-08-24T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2015-09-06T00:00:00",
        YearWeekNumber: 36,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-08-31T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2015-09-13T00:00:00",
        YearWeekNumber: 37,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-09-07T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-09-20T00:00:00",
        YearWeekNumber: 38,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-09-14T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-09-27T00:00:00",
        YearWeekNumber: 39,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-09-21T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-10-04T00:00:00",
        YearWeekNumber: 40,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-09-28T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-10-11T00:00:00",
        YearWeekNumber: 41,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-10-05T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-10-18T00:00:00",
        YearWeekNumber: 42,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-10-12T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-10-25T00:00:00",
        YearWeekNumber: 43,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-10-19T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-11-01T00:00:00",
        YearWeekNumber: 44,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-10-26T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-11-08T00:00:00",
        YearWeekNumber: 45,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-11-02T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-11-15T00:00:00",
        YearWeekNumber: 46,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-11-09T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-11-22T00:00:00",
        YearWeekNumber: 47,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-11-16T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-11-29T00:00:00",
        YearWeekNumber: 48,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-11-23T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2015-12-06T00:00:00",
        YearWeekNumber: 49,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-11-30T00:00:00",
        SeasonalityIndicator: "High"
    }, {
        WeekEndDate: "2015-12-13T00:00:00",
        YearWeekNumber: 50,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-12-07T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-12-20T00:00:00",
        YearWeekNumber: 51,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-12-14T00:00:00",
        SeasonalityIndicator: "Medium"
    }, {
        WeekEndDate: "2015-12-27T00:00:00",
        YearWeekNumber: 52,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-12-21T00:00:00",
        SeasonalityIndicator: "Low"
    }, {
        WeekEndDate: "2016-01-03T00:00:00",
        YearWeekNumber: 53,
        NumberOfObservations: "GreaterThan10000",
        WeekStartDate: "2015-12-28T00:00:00",
        SeasonalityIndicator: "Low"
    }],
    Links: [{
        rel: "self",
        href: "https://api.havail.sabre.com/v1/historical/flights/ELP/seasonality"
    }, {
        rel: "linkTemplate",
        href: "https://api.havail.sabre.com/v1/historical/flights/<destination>/seasonality"
    }]
}

Usage notes

Country and airport codes

City Pairs Lookup API

To get a list of our supported city pairs of origin and destination airports, use the City Pairs Lookup API. You can pass any of these origin and destination airport codes in a Travel Seasonality API request.

Multi-Airport City API

To get a list of city codes that are served by more than one airport, use the Multi-Airport City Lookup API. These multi-airport city codes can be used with applicable REST APIs.

Travel Seasonality Airports Lookup API

To get a list of our supported destination airports, use the Travel Seasonality Airports Lookup API. You can pass any of these destination airports in a Travel Seasonality API request.

Errors

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

Status 404 NOT FOUND

No results were found

The service cannot find data to fulfill the parameters in the request. For example, data is not available for the destination.

The destination in the request is not a valid IATA airport code.

The destination is not supported.

Docs Navigation