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:
Developers can incorporate a robust search function that allows users to find hotels based on their preferred destination. This can help users discover accommodations that suit their travel plans.LiteAPI also provides access to static content for hotels, including descriptions, images, and amenity details. This is essential for developers to present comprehensive and accurate information to the end users, aiding their decision-making process.
One of the most significant features of LiteAPI is the ability to pull data on room rates and availability for a selected set of hotels. This feature ensures users have real-time, accurate information to assist in their booking decisions.
Beyond just providing information, LiteAPI also allows developers to integrate a seamless booking function. Users can select a specific hotel with room availability and proceed to make a booking directly within the app.
With LiteAPI, managing bookings becomes a straightforward task. The booking management functions allow for the tracking and management of all bookings made through the app, ensuring users can keep track of their travel plans.
Lastly, LiteAPI offers the capability to retrieve and cancel existing bookings. This added flexibility is crucial for users who might need to alter their travel plans.
All these features make LiteAPI a comprehensive solution for travel app development, offering a plethora of functionalities, from search and booking to management and cancellation. Developers can harness these powerful tools to create high-quality, user-friendly travel applications.
Don't have an account yet? Sign Up Here.
PHP 7.4 and later. Should also work with PHP 8.0.
To install the bindings via Composer, add the following to composer.json
:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/liteapi-travel/php-sdk.git"
}
],
"require": {
"liteapi-travel/php-sdk": "2.0.0"
}
}
Then run composer install
If you do not wish to use Composer, you can download the latest release. Then, to use the bindings, include the autoload.php file.
<?php
require_once('/path/to/php-sdk/vendor/autoload.php');
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.
<?php
require_once(__DIR__ . '/vendor/autoload.php');
$config = LiteAPI\Configuration::getDefaultConfiguration()->setApiKey('X-API-Key', 'YOUR_API_KEY');
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.
To fetch static data from the functions, you need to create an instance of the StaticDataApi as follows:
$staticDataInstance = new LiteAPI\Api\StaticDataApi($config);
The getCities 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.
$country_code = "SG";
$result = $staticDataInstance->getCities($country_code);
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. |
The getCountries function returns the list of countries available along with its ISO-2 code.
$result = $staticDataInstance->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. |
The getCurrencies function returns all available currency codes along with its name and the list of supported countries that the currency applies to.
$result = $staticDataInstance->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. |
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.
$country_code = "IT";
$city_name = "Rome";
//Optional values
$offset = 10;
$limit = 1000;
$longitude = -115.16988;
$latitude = 36.12510;
$distance = 1000;
$result = $staticDataInstance->getHotels($country_code, $city_name);
To utilize optional values, you can invoke the function as follows:
$result = $staticDataInstance->getHotels($country_code, $city_name, $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. |
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.
$hotel_id = "lp24373";
$result = $staticDataInstance->getHotelDetails($hotel_id);
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. |
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.
$result = $staticDataInstance->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. |
liteAPI offers a comprehensive and simple way to implement Hotel Booking flow. The booking flow consists of 3 sections: Search, Book, and booking management.
To access the search functionality and retrieve available hotels, you need to create an instance of the SearchApi as follows:
$searchInstance = new LiteAPI\Api\SearchApi($config);
The getMinimumRates function is used to retrieve the minimum room rates that are available for a list of hotel ID's on the specified search dates.
For each hotel ID, the minimum room rate that is available is returned.
$hotel_ids = "lp3803c,lp1f982,lp19b70,lp19e75";
$checkin = "2023-11-15";
$checkout = "2023-11-16";
$currency = "USD";
$guest_nationality = "US";
$adults = 1;
//Optional values
$children = "12,9";
$guest_id = "testtraveler1";
$result = $searchInstance->getMinimumRates($hotel_ids, $checkin, $checkout, $currency, $guest_nationality, $adults);
To utilize optional values, you can invoke the function as follows:
$result = $searchInstance->getMinimumRates($hotel_ids, $checkin, $checkout, $currency, $guest_nationality, $adults, $children, $guest_id);
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] |
adults | number | Number of adult guests staying | [required] |
children | array of numbers | Number of children staying if any | [optional] |
guestId | string | Unique traveler ID if available | [optional] |
An array of hotel minimum rates objects with the following properties:
Name | Type | Description |
---|---|---|
hotelId | string | The ID of the hotel. |
currency | string | The currency code for the price. |
price | number | The price of the hotel. |
supplierId | number | The ID of the supplier. |
supplier | string | The name of the supplier. |
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.
$hotel_ids = "lp3803c,lp1f982,lp19b70,lp19e75";
$checkin = "2023-11-15";
$checkout = "2023-11-16";
$currency = "USD";
$guest_nationality = "US";
$adults = 1;
//Optional values
$children = "12,9";
$guest_id = "testtraveler1";
$result = $searchInstance->getFullRatest($hotel_ids, $checkin, $checkout, $currency, $guest_nationality, $adults);
To utilize optional values, you can invoke the function as follows:
$result = $searchInstance->getFullRatest($hotel_ids, $checkin, $checkout, $currency, $guest_nationality, $adults, $children, $guest_id);
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] |
adults | number | Number of adult guests staying | [required] |
children | array of numbers | Number of children staying if any | [optional] |
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. |
To perform pre booking and booking operations, you need to create an instance of the BookApi as follows:
$bookInstance = new LiteAPI\Api\BookApi($config);
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 specific rate Id 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.
$rateId ="NRYDCZRZHAZHYMRQGIZS2MBXFUYTK7BSGAZDGLJQG4WTCNT4GJ6HYVKTPRDVSWSEJVMVUV2HIUZUOS2OKJKEOWKZKRCU2QSXJVETGRCTJZKEMR2ZGNMFSTKKIRDUSWKEIVGVUUKHGRMVISZXIJJUOQK2IRDU2QSYI5CTGSCZLJGE6TBVJNLEON2DKZFU4NSGJNKTERKQKFNEKQ2NINCFAUK2IRCU6QSUKBJEWVCFKZJVST2KGZCEGTSSLFEEKWKEINHFUV2HKUZVIUKOJJNE6QSELBHVKQSEI5CVURCTJZBFER2BKJKEOTKKJZDUKWSEKNHEEUSHII3EMRKSKNHVAUK2IRAU2USUI5ATGVCDJVJFCR2FLFCECN2CKRIFCWKUJFHEEVCHLFJFMRKULJCEWSSEIU2ESWSTI5AVURCHJRFFCRZUK5KEGTKRPRKVGRD4PR6DCNRWFYYDC7BSGAZDGLJQG4WTCMT4IJHXYMJSHE2DCMD4GI";
$result = $bookInstance->preBook($rateId);
Name | Type | Description | Notes |
---|---|---|---|
rateId | string | rate id retrieved from getFullRates response | [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. |
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.
$prebookId = "wsMaXC5dw";
$guestFirstName = "Kim";
$guestLastName = "James";
$guestEmail = "test@nlite.ml";
$method = "CREDIT_CARD";
$holderName = "Kim James";
$number = "4242424242424242";
$expireDate = "11/23";
$cvc = "123";
$result = $bookInstance->book($prebookId, $guestFirstName, $guestLastName, $guestEmail, $method, $holderName ,$number, $expireDate, $cvc);
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 | string | the expiration month of the credit card | [required if paymentMethod is CREDIT_CARD] |
exp_year | string | 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. |
To manage bookings to perform various operations such as retrieving a list of bookings, fetching details of a specific booking, and cancelling a booking, you need to create an instance of the BookingManagementApi instance as follows:
$bookingManagementInstance = new LiteAPI\Api\BookingManagementApi($config);
The getBookingListByGuestId function returns the list of all booking Id's for a given guest Id.
$guest_id = "FrT56hfty";
$result = $bookingManagementInstance->getBookingListByGuestId($guest_id);
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. |
The retrievedBooking function returns the status and the details of a specific booking Id.
$booking_id = "uSQ6Zsc5R";
$result = $bookingManagementInstance->retrievedBooking($booking_id);
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. |
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.
$booking_id = "K8Hvb-85O";
$result = $bookingManagementInstance->cancelBooking($booking_id);
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. |
To see an example project demonstrating how to integrate the SDK, visit liteAPI-php-sdk-examples