Promise based wrapper for the Skyscanner travel APIs.
$ npm install skyscannerjs
import {API} from "skyscannerjs";
const apiKey = "s3r3t4PIk3y";
const api = new API(apiKey);
api.flights.livePrices.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;
});
api.flights.livePrices.poll(session).then((response) => {
const itineraries = response.data.Itineraries;
const legs = response.data.legs;
...
});
api.flights.livePrices.bookingDetails.session(session, {
outboundlegid: "",
inboundlegid: ""
})
.then((response) => {
// URL to poll the session.
const location = response.headers.location;
});
api.flights.livePrices.bookingDetails.poll(session, itinerary).then((response) => {
const options = response.data.BookingOptions;
const places = response.data.Places;
...
});
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;
...
});
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;
...
});
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;
...
});
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;
...
});
api.carHire.livePrices.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;
});
api.carHire.livePrices.poll(session).then((response) => {
const cars = reponse.data.cars;
...
});
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;
});
api.hotels.livePrices.poll(session).then((response) => {
const hotels = response.data.hotels;
const status = response.data.status;
...
});
api.hotels.livePrices.details.session(session, {
HotelIds: "1,2,3"
})
.then((response) => {
// URL to poll the session.
const location = response.headers.location;
});
api.hotels.livePrices.details.poll(session, {
HotelIds: "1,2,3"
})
.then((response) => {
...
});
api.hotels.autosuggest({
market: "UK",
currency: "GBP",
locale: "en-GB",
query: "pari"
})
.then((reponse) => {
const results = response.data.results;
const places = response.data.places;
...
});
api.reference.currencies().then((response) => {
const currencies = response.data.Currencies;
...
});
api.reference.locales().then((response) => {
const locales = response.data.Locales;
...
});
For example locale
can be equal to en-US
, the best way is to get supported locales for this query.
api.reference.countries(locale).then((response) => {
const countries = response.data.Countries;
...
});
api.locationAutosuggest({
market: "UK",
currency: "GBP",
locale: "en-GB",
query: "ed"
})
.then((response) => {
const places = response.data.Places;
...
});