README
SkyscannerJS
Promise based wrapper for the Skyscanner travel APIs.
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;
});
Poll a flight living pricing session
api.flights.livePricing.poll(session).then((response) => {
const itineraries = response.data.Itineraries;
const legs = response.data.legs;
...
});
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;
});
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;
...
});
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;
...
});
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;
...
});
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;
...
});
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;
...
});
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;
});
Poll a car hire live pricing session
api.carHire.livePricing.poll(session).then((response) => {
const cars = reponse.data.cars;
...
});
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;
});
Poll the hotels live pricing session
api.hotels.livePricing.poll(session).then((response) => {
const hotels = response.data.hotels;
const status = response.data.status;
...
});
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;
});
Poll a hotel details session
api.hotels.livePrices.details.poll(session, {
HotelIds: "1,2,3"
})
.then((response) => {
...
});
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;
...
});
Get all supported currencies
api.reference.currencies().then((response) => {
const currencies = response.data.Currencies;
...
});
Get all supported locales
api.reference.locales().then((response) => {
const locales = response.data.Locales;
...
});
Get all supported countries
api.reference.countries().then((response) => {
const countries = response.data.Countries;
...
});
Use the location autosuggest service
api.locationAutosuggest({
market: "UK",
currency: "GBP",
locale: "en-GB",
query: "ed"
})
.then((response) => {
const places = response.data.Places;
...
});