Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

Skyscanner Python SDK


As of May 1st, 2020, the project is deprecated and no longer maintained. The latest update in v1.1.5 includes changing the library to use a secure connection when calling Skyscanner's APIs as this is required for all users and http is no longer supported. The development of this SDK from that point on is fully abandoned.

As we cannot guarantee for how long it will continue working, you should not to use the SDK when starting new projects. If it is already in use in your projects, please upgrade to its latest version and keep in mind that due to planned changes in our Skyscanner APIs it may not work as expected after July 2020.

You will need to contact us to request an API key to use our APIs via the following form:

We receive a large number of requests and although we do our best to reply to all we cannot guarantee that your application will be successful.

Documentation Status

Skyscanner Python SDK for Skyscanner's API


  • Tested on Python 2.6, 2.7, 3.3, 3.4
  • Supports Flights, Hotels, and Carhire


At the command line:

$ easy_install skyscanner

Or, if you have virtualenvwrapper installed:

$ mkvirtualenv skyscanner
$ pip install skyscanner

Quick start

  1. Contact us to request an API key:

  2. If you don't already have one, create a Skyscanner account.

  3. Sign into your account and click 'Import Existing App' and use your API key to create an App

  4. Set your API Key in your code:

    from skyscanner.skyscanner import Flights
    flights_service = Flights('<Your API Key>')
  5. Get the flights live pricing result by writing a few lines of code:

    from skyscanner.skyscanner import Flights
    flights_service = Flights('<Your API Key>')
    result = flights_service.get_result(

Note that both the inbounddate and outbounddate might need to be updated.

More examples

For more example usage, refer to the SDK documentation or the API documentation.

Known Issues

  • Tests might appear to be broken sometimes, this is due to the throttling in the API. In such cases, you will see the following error in the build log:

    requests.exceptions.HTTPError: 429 Client Error: Too many requests in the last minute.
  • Please allow up to 15 minutes for your API key to be activated. Until it is activated you will get a 403 exception:

    requests.exceptions.HTTPError: 403 Client Error: Forbidden for url:<Your API key>