liteapi-nodejs
v3.0.0
Published
Start building travel apps with liteAPI. Instantly access millions of hotels to build new or existing apps and platforms.
Downloads
54
Maintainers
Readme
Table of Contents
Introduction
liteAPI is an innovative and robust collection of infrastructure APIs that cater to the travel industry. It is designed to empower developers, offering them the fastest way to build and launch comprehensive travel applications.
At the heart of LiteAPI's power is its extensive network of over 2 million properties worldwide. By incorporating LiteAPI into an app, developers can effortlessly tap into the vast inventory, allowing users to search and book accommodations at these properties.
But that's not all. With LiteAPI, monetization is made even more simple. Developers can generate revenue through their hospitality products by selling accommodations from LiteAPI's broad portfolio of properties. This means that not only can developers launch their products quickly, they can also start generating profits in no time.
LiteAPI opens up a range of powerful functions for travel and hospitality applications. Its features include:
Don't have an account yet? Sign Up Here.
Installing
Install the package using the following npm or yarn commands:
npm install liteapi-travel
# or
yarn add liteapi-travel
Usage
After you have installed the LiteAPI package, you need to configure it with your API key. The API key is available in the liteAPI Dashboard. Here's the step to add the API key to the package.
const liteApi = require('liteapi-travel')(YOUR_API_KEY);
Static data
Static data can be directly fetched from the functions below. Alternatively, LiteAPI also provides an option to download static data directly from the Github URL.
List of cities
The getCitiesByCountryCode function returns a list of city names from a specific country. The country codes must be in ISO-2 format. To get the country codes in ISO-2 for all countries please use the getCountries function.
const countryCode = "IT";
const result = await liteApi.getCitiesByCountryCode(countryCode);
Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- countryCode | string| Country code in iso-2 format (example: US) | [required]
An array of city objects containing the following properties:
Field | Type | Description ------|------|------------ city | string | The name of the city.
List of Countries
The getCountries function returns the list of countries available along with its ISO-2 code.
const result = await liteApi.getCountries();
The function does not need any additional parameter.
An array of country objects containing the following properties:
Field | Type | Description ------|------|------------ code | string | The country code in iso-2 format. name | string | The name of the country.
List of available currencies
The getCurrencies function returns all available currency codes along with its name and the list of supported countries that the currency applies to.
const result = await liteApi.getCurrencies();
This function does not need any additional parameters.
An array of currency objects containing the following properties:
| Name | Type | Description | | -------- | ----- | ----------------------------------------------------------- | | code | string | The currency code. | | currency | string | The name of the currency. | | countries | Array | An array of countries where the currency is used. |
List of hotels
The getHotels function returns a list of hotels available based on different search criteria. The minimum required information is the country code in ISO-2 format.
const countryCode = "IT";
const cityName = "Rome";
//Optional values
const offset = 1000;
const limit = 1000;
const longitude = "-115.16988";
const latitude = "36.12510";
const distance = 1000;
const result = await liteApi.getHotels(countryCode, cityName);
To utilize optional values, you can invoke the function as follows:
const result = await liteApi.getHotels(countryCode, cityName, offset, limit, longitude, latitude, distance)
Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- countryCode | string| country code ISO-2 code - example (US) | [required] cityName | string| name of the city | [required] offset | number| specifies the number of rows to skip before starting to return rows | [optional] limit | number| limit number of results (max 1000) | [optional] longitude | string | longitude geo coordinates | [optional] latitude | string | latitude geo coordinates | [optional] distance | number | distance in meters (min 1000m) | [optional]
An array of hotel objects containing the following properties:
| Name | Type | Description | | --------------- | ------ | --------------------------------------------------------------------------------------------------------- | | id | string | The unique identifier of the hotel. | | name | string | The name of the hotel. | | hotelDescription| string | The description of the hotel. | | currency | string | The currency used in the hotel. | | country | string | The country code of the hotel. | | city | string | The city where the hotel is located. | | latitude | number | The latitude coordinates of the hotel's location. | | longitude | number | The longitude coordinates of the hotel's location. | | address | string | The address of the hotel. | | zip | string | The postal code of the hotel. | | main_photo | string | The URL of the main photo of the hotel. | | stars | number | The star rating of the hotel. |
Hotel details
The getHotelDetails function returns all the static contents details of a hotel or property when given a hotel ID. The static content includes name, description, address, amenities, cancellation policies, images and more.
const hotelID = "lp24373";
const result = await liteApi.getHotelDetails(hotelID);
Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- hotelId | string| Unique ID of a hotel | [required]
| Name | Type | Description | | --------------- | ------ | --------------------------------------------------------------------------------------------------------- | | id | string | The unique identifier of the hotel. | | name | string | The name of the hotel. | | hotelDescription | string | The description of the hotel. | | checkinCheckoutTimes | Object | An object containing the check-in and check-out times of the hotel. | | checkout | string | The check-out time of the hotel. | | checkin | string | The check-in time of the hotel. | | hotelImages | Array | An array of hotel image objects containing the following properties: | | url | string | The URL of the hotel image. | | thumbnailUrl | string | The thumbnail URL of the hotel image. | | caption | string | The caption of the hotel image. | | order | string | The order of the hotel image (null if not applicable). | | defaultImage | boolean | Indicates whether the hotel image is the default image or not. | | currency | string | The currency used in the hotel. | | country | string | The country code of the hotel. | | city | string | The city where the hotel is located. | | starRating | number | The star rating of the hotel. | | location | Object | An object containing the latitude and longitude coordinates of the hotel's location. | | latitude | number | The latitude coordinate of the hotel's location. | | longitude | number | The longitude coordinate of the hotel's location. | | address | string | The address of the hotel. | | zip | string | The postal code of the hotel. | | chainId | string | The unique identifier of the hotel chain. | | hotelFacilities | Array | An array of hotel facilities offered by the hotel. |
Hotel reviews
The getHotelReviews function returns a list of reviews for a specific hotel identified by hotelId. The number of reviews returned is limited by the limit parameter.
const result = await liteApi.getHotelReviews("lp24373", 200);
Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- hotelId | string| Unique ID of a hotel | [required] limit | number| Number of reviews to retrieve | [required]
IATA code list
The getIataCodes function returns the IATA (International Air Transport Association) codes for all available airports along with the name of the airport, geographical coordinates and country code in ISO-2 format.
const result = await liteApi.getIataCodes();
This function does not need any additional parameters.
An array of IATA objects with the following properties:
| Name | Type | Description | | ----------- | ------ | ------------------------------------------------ | | code | string | The IATA code. | | name | string | The name of the IATA. | | latitude | number | The latitude coordinates of the IATA. | | longitude | number | The longitude coordinates of the IATA. | | countryCode | string | The country code of the IATA. |
Booking flow
liteAPI offers a comprehensive and simple way to implement Hotel Booking flow. The booking flow consists of 3 sections: Search, Book, and booking management.
Search
Hotel full rates availability
The getFullRates function return the rates of all available rooms along with its cancellation policies for a list of hotel ID's based on the search dates.
const result = await liteApi.getFullRates({
checkin: "2023-07-15",
checkout: "2023-07-16",
currency: "USD",
guestNationality: "US",
hotelIds: ["lp3803c", "lp1f982", "lp19b70", "lp19e75"],
occupancies: [
{
rooms: 1,
adults: 2,
children: [2, 3]
}
]
});
Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- hotelIds | array of strings| List of hotelIds | [required] checkin | string| Check in data in YYYY-MM-DD format | [required] checkout | string| Check out data in YYYY-MM-DD format | [required] currency | string| Currency code - example (USD) | [required] guestNationality | string| Guest nationality ISO-2 code - example (SG) | [required] occupancies | array of objects| Occupancies | [required] guestId | string| Unique traveler ID if available | [optional]
An array of hotel full rates with the following properties:
| Name | Type | Description | | ------------ | ------ | ------------------------------------------------ | | roomTypeId | string | The ID of the room type. | | supplier | string | The name of the supplier. | | supplierId | number | The ID of the supplier. | | rates | Array | An array of rate objects containing the pricing and details for each rate within the room type. | | rateId | string | The ID of the rate. | | name | string | The name of the rate. | | maxOccupancy | number | The maximum occupancy of the room. | | boardType | string | The type of board included (e.g., Bed Only). | | boardName | string | The name of the board (e.g., Bed Only). | | priceType | string | The type of pricing (e.g., commission). | | commission | Array | An array of commission objects containing the commission amount and currency. | | retailRate | Object | An object containing the retail rate information, including total price, MSP (Marked Selling Price), and taxes and fees. | | total | Array | An array of total price objects containing the amount and currency. | | msp | Array | An array of MSP (Marked Selling Price) objects containing the amount and currency. | | taxesAndFees | Array | An array of taxes and fees objects containing information about included or additional charges. | | cancellationPolicies | Object | An object containing cancellation policy information. | | cancelPolicyInfos | Array | An array of cancellation policy info objects containing information about cancellation time, amount, currency, and type. | | hotelRemarks | Array | An array of hotel remarks. | | refundableTag | string | The tag indicating if the rate is refundable or non-refundable. |
Book
Hotel rate prebook
The preBook function is used to confirm if the room rates are still available before a booking function can be called. The input to the function is a list of rate Ids coming from the getFullRates function. The function returns a prebook Id, a new rate Id and also contains information if the price, cancellation policy or boarding information changed. The second parameter is a boolean value that indicates if the payment will use the client-side payment wrapper SDK.
const rateIds = ["NRYDCZRZHAZHYMRQGIZS2MBXFUYTK7BSGAZDGLJQG4WTCNT4GJ6HYVKTPRDVSWSEJVMVUV2HIUZUOS2OKJKEOWKZKRCU2QSXJVETGRCTJZKEMR2ZGNMFSTKKIRDUSWKEIVGVUUKHGRMVISZXIJJUOQK2IRDU2QSYI5CTGSCZLJGE6TBVJNLEON2DKZFU4NSGJNKTERKQKFNEKQ2NINCFAUK2IRCU6QSUKBJEWVCFKZJVST2KGZCEGTSSLFEEKWKEINHFUV2HKUZVIUKOJJNE6QSELBHVKQSEI5CVURCTJZBFER2BKJKEOTKKJZDUKWSEKNHEEUSHII3EMRKSKNHVAUK2IRAU2USUI5ATGVCDJVJFCR2FLFCECN2CKRIFCWKUJFHEEVCHLFJFMRKULJCEWSSEIU2ESWSTI5AVURCHJRFFCRZUK5KEGTKRPRKVGRD4PR6DCNRWFYYDC7BSGAZDGLJQG4WTCMT4IJHXYMJSHE2DCMD4GI"];
const result = await liteApi.preBook(rateIds, true)
Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- rateIds | array | rate id retrieved from getFullRates response | [required] payment | boolean | whether the payment wrapper SDK is going to be used for this transaction | [required]
An object containing prebook information and room type details.
| Name | Type | Description | | ------------------------- | ------ | ------------------------------------------------------------------------------------------------------ | | prebookId | string | The ID of the prebook. | | hotelId | string | The ID of the hotel. | | currency | string | The currency used for pricing. | | termsAndConditions | string | The terms and conditions (if available). | | roomTypes | Array | An array of room type objects containing the following properties: | | rates | Array | An array of rate objects containing pricing and details for each rate within the room type. | | rateId | string | The ID of the rate. | | name | string | The name of the rate. | | maxOccupancy | number | The maximum occupancy of the room. | | boardType | string | The type of board included (e.g., Bed Only). | | boardName | string | The name of the board (e.g., Bed Only). | | priceType | string | The type of pricing (e.g., commission). | | commission | Object | An array of commission objects containing the commission amount and currency. | | retailRate | Object | An object containing the retail rate information, including total price, MSP (Marked Selling Price), and taxes and fees. | | total | Object | An array of total price objects containing the amount and currency. | | msp | Object | An array of MSP (Marked Selling Price) objects containing the amount and currency. | | taxesAndFees | Object | An array of taxes and fees objects containing information about included or additional charges. | | cancellationPolicies | Object | An object containing cancellation policy information. | | cancelPolicyInfos | Object | An array of cancellation policy info objects containing information about cancellation time, amount, and type. | | hotelRemarks | Array | An array of hotel remarks. | | refundableTag | string | The tag indicating if the rate is refundable or non-refundable. | | msp | number | The Marked Selling Price (MSP) for the prebook. | | commission | number | The commission amount for the prebook. | | price | number | The price of the prebook. | | priceType | string | The type of pricing (e.g., commission). | | priceDifferencePercent| number | The percentage difference between the retail rate and the Marked Selling Price (MSP). | | cancellationChanged | boolean | Indicates if there were changes to the cancellation policy. | | boardChanged | boolean | Indicates if there were changes to the board type. | | supplier | string | The name of the supplier. | | supplierId | number | The ID of the supplier. |
Hotel rate book
The book function confirms a booking when the prebook Id and the rate Id from the pre book stage along with the guest and payment information are passeed.
The guest information is an object that should include the guest first name, last name and email.
The payment information is an object that should include the name, credit card number, expiry and CVC number.
The response will confirm the booking along with a booking Id and a hotel confirmation code. It will also include the booking details including the dates, price and the cancellation policies.
const prebookId = "8iaO7PXBU";
const guestInfo = { guestFirstName: 'Kim', guestLastName: 'James', guestEmail: '[email protected]' };
const paymentMethod = "CREDIT_CARD";
const holderName = "Kim James";
const paymentInfo = { "card_number": "4242424242424242", "exp_month": 11, "exp_year": 23, "cvc": 123,"token":null }
const result = await liteApi.book(prebookId, guestInfo, paymentMethod, holderName, paymentInfo)
Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- prebookId | string| prebook id retrieved from prebook response| [required] guestInfo | object| traveler informations| [required]| | guestFirstName | string| traveler first name | [required]| | guestLastName | string| traveler last name | [required]| | guestEmail | string| traveler email | [required]| paymentMethod | string| methodEnum: "CREDIT_CARD" or "STRIPE_TOKEN" | [required] holderName | string| name of the cardholder | [required] paymentInfo | object| payment informations | [required] card_number | string| the card number associated with the credit card| [required if paymentMethod is CREDIT_CARD] exp_month | number| the expiration month of the credit card | [required if paymentMethod is CREDIT_CARD] exp_year | number| the expiration year of the credit card | [required if paymentMethod is CREDIT_CARD] cvc | number| the card verification code (CVC) associated with the credit card | [required if paymentMethod is CREDIT_CARD] token | string| token provided by Stripe for the payment method. | [required if paymentMethod is STRIPE_TOKEN]
An object containing booking information and room details.
| Name | Type | Description | | ------------------------- | ------- | ------------------------------------ | | bookingId | string | The ID of the booking. | | clientReference | string | The client reference. | | supplierBookingId | string | The supplier booking ID. | | supplierBookingName | string | The supplier booking name. | | supplier | string | The supplier. | | supplierId | number | The ID of the supplier. | | status | string | The status of the booking. | | hotelConfirmationCode | string | The hotel confirmation code. | | checkin | string | The check-in date. | | checkout | string | The check-out date. | | hotel | object | An object containing hotel details. | | bookedRooms | array | An array of booked room objects. | | roomType | object | An object containing room type details. | | adults | number | The number of adults. | | children | number | The number of children. | | rate | object | An object containing rate details. | | maxOccupancy | number | The maximum occupancy. | | retailRate | object | An object containing the retail rate information, including total price. | | guestInfo | object | An object containing guest details. | | createdAt | string | The creation date of the booking. | | cancellationPolicies | object | An object containing cancellation policies information. | cancelPolicyInfos | Object | An array of cancellation policy info objects containing information about cancellation time, amount, and type. | | hotelRemarks | Array | An array of hotel remarks. | | refundableTag | string | The tag indicating if the rate is refundable or non-refundable. | price | number | The price of the booking. | | msp | number | The MSP (Merchant Service Provider) price. | | commission | number | The commission amount. | | currency | string | The currency of the booking. |
Booking management
Booking list
The getBookingListByGuestID function returns the list of all booking Id's for a given guest Id.
const guestId = "FrT56hfty";
const result = await liteApi.getBookingListByGuestId(guestId)
Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- guestId | string | The Guest Id of the user | [required]
An array containing objects with the following properties:
| Name | Type | Description | | ----------- | ------ | ------------------ | | bookingId | string | The booking ID. |
Booking retrieve
The retrieveBooking function returns the status and the details of a specific booking Id.
const bookingId = "uSQ6Zsc5R";
const result = await liteApi.retrieveBooking(bookingId);
Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- bookingId | string | The Booking Id that needs to be retrieved | [required]
An object containing booking information and room details.
| Name | Type | Description | | --------------------- | ------ | -------------------------------- | | bookingId | string | The booking ID. | | clientReference | string | The client reference. | | status | string | The booking status. | | hotelConfirmationCode | string | The hotel confirmation code. | | checkin | string | The check-in date. | | checkout | string | The check-out date. | | hotel | object | An object containing hotel details. | | bookedRooms | array | An array of booked room objects. | | roomType | object | An object containing room type details. | | adults | number | The number of adults. | | children | number | The number of children. | | rate | object | An object containing rate details. | | maxOccupancy | number | The maximum occupancy. | | boardType | string | The board type. | | boardName | string | The board name. | | retailRate | object | An object containing the retail rate information, including total price. | | guestInfo | object | An object containing guest information. | | createdAt | string | The creation date of the booking. | | cancellationPolicies | object | An object containing cancellation policy details. | | cancelPolicyInfos | Object | An array of cancellation policy info objects containing information about cancellation time, amount, and type. | | hotelRemarks | Array | An array of hotel remarks. | | refundableTag | string | The tag indicating if the rate is refundable or non-refundable. | currency | string | The currency code. | | price | number | The price of the booking. |
Booking cancel
The cancelBooking function is used to request a cancellation of an existing confirmed booking. Cancellation policies and conditions will be used to determine the success of the cancellation. For example a booking with non-refundable (NRFN) tag or a booking with a cancellation policy that was requested past the cancellation date will not be able to cancel the confirmed booking.
const bookingId = "K8Hvb-85O";
const result = await liteApi.cancelBooking(bookingId);
Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- bookingId | string | The booking Id of the booking you would like to cancel. | [required]
| Name | Type | Description | | ---------------- | ------ | --------------------------- | | bookingId | string | The booking ID. | | status | string | The booking status. | | cancellation_fee | number | The cancellation fee. | | refund_amount | number | The refund amount. | | currency | string | The currency of the booking. |
Example Project
To see an example project demonstrating how to integrate the SDK, visit liteAPI-nodejs-sdk-examples