skyscannerjs

Promise based wrapper for the Skyscanner travel APIs.

Usage no npm install needed!

<script type="module">
  import skyscannerjs from 'https://cdn.skypack.dev/skyscannerjs';
</script>

README

SkyscannerJS

Promise based wrapper for the Skyscanner travel APIs.

npm version npm downloads CI status

Install

$ npm install skyscannerjs

Examples

Create an API object

import skyscanner from "skyscanner";
const apiKey = "s3r3t4PIk3y";
const api = new skyscanner.API(apiKey);

Create a flight live pricing session

api.flights.livePricing.session({
    country: "UK",
    currency: "GBP",
    locale: "en-GB",
    locationSchema: "Iata",
    originplace: "EDI",
    destinationplace: "LHR",
    outbounddate: "2016-06-13",
    adults: 1
})
.then((response) => {
    // URL to poll the session.
    const location = response.headers.location;                                     
});

Documentation

Poll a flight living pricing session

api.flights.livePricing.poll(session).then((response) => {
    const itineraries = response.data.Itineraries;
    const legs = response.data.legs;
    ...
});

Documentation

Create a flight booking details session

api.flights.livePricing.bookingDetails.session(session, {
    outboundlegid: "",
    inboundlegid: ""
})
.then((response) => {
    // URL to poll the session.
    const location = response.headers.location;                                     
});

Documentation

Poll a flight booking details session

api.flights.livePricing.bookingDetails.poll(session, itinerary).then((response) => {
    const options = response.data.BookingOptions;    
    const places = response.data.Places;
    ...
});

Documentation

Browse the quotes service

api.flights.browse.quotes({
    market: "UK",
    currency: "GBP",
    locale: "en-GB",
    originPlace: "EDI",
    destinationPlace: "LHR",
    outboundPartialDate: "2016-06-13",
    ip: "98.139.180.149"
})
.then((response) => {
    const quotes = response.data.Quotes;
    ...
});

Documentation

Browse the routes service

api.flights.browse.routes({
    market: "UK",
    currency: "GBP",
    locale: "en-GB",
    originPlace: "EDI",
    destinationPlace: "LHR",
    outboundPartialDate: "2016-06-13",
    ip: "98.139.180.149"
})
.then((response) => {
    const quotes = response.data.Quotes;
    const dates = response.data.Routes;
    ...
});

Documentation

Browse the dates service

api.flights.browse.dates({
    market: "UK",
    currency: "GBP",
    locale: "en-GB",
    originPlace: "EDI",
    destinationPlace: "LHR",
    outboundPartialDate: "2016-06-13",
    ip: "98.139.180.149"
})
.then((response) => {
    const quotes = response.data.Quotes;
    const dates = response.data.Dates;
    ...
});

Documentation

Browse the grid service

api.flights.browse.grid({
    market: "UK",
    currency: "GBP",
    locale: "en-GB",
    originPlace: "EDI",
    destinationPlace: "LHR",
    outboundPartialDate: "2016-06-13",
    ip: "98.139.180.149"
})
.then((response) => {
    const quotes = response.data.Quotes;
    const dates = response.data.Dates;
    ...
});

Documentation

Create a car hire live pricing session

api.carHire.livePricing.session({
    market: "UK",
    currency: "GBP",
    locale: "en-GB",
    pickupplace: "EDI",
    dropoffplace: "GLA",
    pickupdatetime: "2016-06-13T19:00",
    dropoffdatetime: "2016-06-14T19:00",
    driverage: 40,
    ip: "98.139.180.149"
})
.then((response) => {
    // URL to poll the session.
    const location = response.headers.location;
});

Documentation

Poll a car hire live pricing session

api.carHire.livePricing.poll(session).then((response) => {
    const cars = reponse.data.cars;
    ...
});

Documentation

Create a hotels live pricing session

api.hotels.livePrices.session({
    market: "UK",
    currency: "GBP",
    locale: "en-GB",
    entityId: "41.37,2.14-latlong",
    checkindate: "2016-06-13",
    checkoutdate: "2016-06-14",
    guests: 1,
    rooms: 1
})
.then((response) => {
    // URL to poll the session.
    const location = response.headers.location;
});

Documentation

Poll the hotels live pricing session

api.hotels.livePricing.poll(session).then((response) => {
    const hotels = response.data.hotels;
    const status = response.data.status;
    ...
});

Documentation

Create a hotel details session

api.hotels.livePrices.details.session(session, {
    HotelIds: "1,2,3"
})
.then((response) => {
    // URL to poll the session.
    const location = response.headers.location;
});

Documentation

Poll a hotel details session

api.hotels.livePrices.details.poll(session, {
    HotelIds: "1,2,3"
})
.then((response) => {
    ...                 
});

Documentation

Use the hotel autosuggest service

api.hotels.autosuggest({
    market: "UK",
    currency: "GBP",
    locale: "en-GB",
    query: "pari"
})
.then((reponse) => {
    const results = response.data.results;
    const places = response.data.places;
    ...
});

Documentation

Get all supported currencies

api.reference.currencies().then((response) => {
    const currencies = response.data.Currencies;
    ...
});

Documentation

Get all supported locales

api.reference.locales().then((response) => {
    const locales = response.data.Locales;
    ...
});

Documentation

Get all supported countries

api.reference.countries().then((response) => {
    const countries = response.data.Countries;
    ...
});

Documentation

Use the location autosuggest service

api.locationAutosuggest({
    market: "UK",
    currency: "GBP",
    locale: "en-GB",
    query: "ed"
})
.then((response) => {
    const places = response.data.Places;
    ...
});

Documentation