Introduction
This documentation describes REST API version 1.01. This version is considered a legacy API and is supported for existing integrations only.
No further functional development is planned for this version.
Rustar API uses rest services for data exchange. The services on Rustar side are written in .NET and can use Rest endpoints. Although the services are written in .NET, the services can be integrated with any systems that support Rest, including but not limited to JAVA, PHP, Python and others.
URL for accessing Rest services is https://restapi.rustaronline.com/v1.01/api/
In order to use the services, agent must receive following credentials:
agentid – Unique username that is bound to agents account in Rustar
agentpassword – Password for the agentid
To obtain agentid and gentpassword for accessing the services the company must send request to [email protected]
For development purposes the following credentials can be used:
URL- https://restapi.rustaronline.com/v1.01/api/
agentid –on demand
agentpassword – on demand
All methods return following JSON object
{{
“Code”: “00”,
“Message”: “”,
“Timestamp”: “2016-06-27T17:42:25.6292336+04:00”,
“Version”: “1.01”,
“ResponseID”:”b512a117-6745-493d-9fa4-828d79c0df1d”
“Data”: [
/**/
]
}
Where:
Code: CHAR(2) parameter. “00” in case of success. In case of failure other than “00” is returned
Message: string parameter. “” in case of success. In case of failure the description of the problem/error
Timestamp: datetime parameter. The date and time of the returned message
Version: string parameter. Version of the API
ResponseID: GUID parameter. Unique GUID of the response message
Data: The array of the objects, depending on the method that was called
Destination endpoints:
United Arab Emirates (UAE): https://restapi.rustaronline.com/v1.01/api/
Georgia (GEO): https://restapigeo.rustaronline.com/v1.01/api/
Turkey (TUR): https://restapitur.rustaronline.com/v1.01/api/
Seychelles (SYC): https://restapisyc.rustaronline.com/v1.01/api/
Azerbaijan (AZE): https://restapiaze.rustaronline.com/v1.01/api/
Maldives (MDV): https://restapimdv.rustaronline.com/v1.01/api/
Kazakhstan (KAZ): https://restapikaz.rustaronline.com/v1.01/api/
Qatar (QAT): https://restapiqat.rustaronline.com/v1.01/api/
Mauritius (MUS): https://restapimus.rustaronline.com/v1.01/api/
Vietnam (VNM): https://restapivnm.rustaronline.com/v1.01/api/
Saudi Arabia (SAU): https://restapisau.rustaronline.com/v1.01/api/
Thailand (THA) : https://restapitha.rustaronline.com/v1.01/api/
Egypt (EGY) : https://restapiegy.rustaronline.com/v1.01/api/
Oman (OMN): https://restapiomn.rustaronline.com/v1.01/api/
Domain Usage Notice:
The .com domain is the primary and default domain for all REST API v1.01 endpoints and must be used in all standard integration scenarios.
The .info domain may be used only as a fallback in cases where connecting to the .com domain is impossible due to ISP-level network limitations or regional restrictions.
Using the .info domain is not allowed unless connection issues are confirmed. In all other integration cases, the .com domain must be used exclusively.
API Base URL Structure
Please note that the examples provided in this documentation use the following base URL:
https://restapi.rustaronline.com/v1.01/api/
Key Clarification
This base URL (https://restapi.rustaronline.com/v1.01/api/) specifically applies to the UAE destination.
The API methods remain the same for all other regions.
The only change required is replacing the base URL prefix to match the destination.
Example (Turkey):
For Turkey, the base URL prefix changes to restapitur, resulting in the following full URL:
https://restapitur.rustaronline.com/v1.01/api/
All methods will function identically to the examples provided in the documentation, regardless of which base URL prefix is used.
Hotel Data
Core Hotel and Inventory Retrieval Methods
These essential methods are the foundation for the booking process. They are used to identify available properties, determine their pricing, and confirm room availability status before a reservation is created.
Hotels
Purpose: To retrieve the complete list of available hotels in the system.
Use: This is the first step in the search process. It provides the unique hotelid, basic property details (like cityname, hotelclass), and the crucial pricestatus to determine if price data is ready for download.
Hotelprices
Purpose: To get all available prices, promotions, and contract rates for a specific hotel and date range.
Use: After selecting a hotel, this method is called using the hotelid to find the actual cost of the stay. The response is critical as it provides the unique priceid token required to finalize the booking.
Roomavailabilities
Purpose: To check the immediate availability status of specific room types for a selected hotel and dates.
Use: This method returns statuses like “STOP SALE” (not bookable) or “ON REQUEST” (requires manual confirmation) for particular room categories, ensuring the chosen room is available before attempting to book.
Hotels
This method retrieves a list of hotels according to specified directions (or criteria). The method’s response includes hotel data, such as the hotel’s class, and so on..
Parameters to pass: agentid and agentpassword
Purpose: To retrieve the complete list of available hotels
Use: This is the first step to get the unique hotelid for a property, see its details (like cityname, hotelclass), and check its pricestatus to see if prices are ready to be downloaded.
Sample URL:
https://restapi.rustaronline.com/v1.01/api/hotels?agentid=username&agentpassword=password
The method returns the list of hotels with the statuses and timestamps of the prices
| Name | Type | Description |
|---|---|---|
| Hotelid | string | GUID of the hotel in the database of Rustar. This GUID will be used to retrieve additional information (like prices) about the hotel |
| hotelname | string | Name of the hotel |
| pricestatus | string | “ready” or “pending”. “ready” means that prices are ready to be downloaded. “pending” means that price registration is under processing and not all prices are available for the hotel. In case of “pending” the prices should be downloaded later when the status is changed to “ready”. |
| cityid | string | GUID of the City where the hotel is located. |
| cityname | string | Name of the city |
| districtid | string | GUID of the district, where the hotel is located |
| districtname | string | Name of the district |
| hasalcohol | boolean | Describes whether hotel serves alcohol or not |
| hasfreewifi | boolean | Describes whether free wifi is available in the rooms |
| hasmall | boolean | Describes whether there is a shopping mall near the |
| hasmetro | boolean | Describes whether there is a metro station near the hotel |
| haspool | boolean | Describes whether there is swimming pool in the hotel |
| hotelclass | string | “*”,”**”,”***”,”****”,”*****” or ”Apartments”. Number of stars or Apartment hotel |
| hoteltype | string | City” or “Beach”. Describes whether this hotel is located in the city or at the beach |
| popular | boolean | Describes if the hotel was popular last 7 days |
| recommended | boolean | True if the hotel is recommended by Rustar |
| priceupdated | string | DateTime of the last price update |
| note | string | Free formed text |
| imageurl | string | Optional. Points the URL for the image of the hotel if any. |
https://restapi.rustaronline.com/v1.01/api/hotels?agentid=username&agentpassword=password{
"Code": "00",
"Message": "",
"Timestamp": "2025-09-23T10:45:51.3940886+04:00",
"Version": "1.01",
"ResponseID": "f3da167b-c5e3-4d71-9cb5-501c3e60102e",
"Data": [
{
"hotelid": "4115e0d8-87fd-4d67-a805-4cc1062870e5",
"hotelname": "Beach Rotana Abu Dhabi",
"pricestatus": "pending",
"cityid": "28c794fe-3c7e-4da2-ba93-f24bd3d4730d",
"cityname": "Abu Dhabi",
"districtid": "ee402984-6d1d-4fcf-915d-f31b14fa8b0f",
"districtname": "Abu Dhabi",
"hasalcohol": true,
"hasfreewifi": true,
"hasmall": false,
"hasmetro": false,
"haspool": true,
"hotelclass": "*****",
"hoteltype": "Beach",
"popular": false,
"recommended": false,
"priceupdated": "2025-09-22T18:23:50.85",
"note": "(Vat) Rates are inclusive of 5% Value Added Tax starting from 01st January 2018\n\nCheck-In Time: 14:00 & Check-Out Time: 12:00nn.\n\nCheck out is not allowed on 31.12.2025",
"imageurl": "4115e0d8-87fd-4d67-a805-4cc1062870e5.jpg",
"areaid": null,
"areaname": "",
"countryid": "fead4059-3958-42d9-ab98-4446de89c0f1",
"countryname": "United Arab Emirates",
"countrycodeiso2": "AE",
"countrycodeiso3": "ARE"
},
{
"hotelid": "91b54d84-466c-4b6b-9255-024b563f91e6",
"hotelname": "Ramee Guestline Hotel-Al Rigga",
"pricestatus": "ready",
"cityid": "f5185fa3-3f56-44ed-bf6b-80386a33caa2",
"cityname": "Dubai",
"districtid": "aaff2238-fa72-4900-83f8-a16990415547",
"districtname": "Deira",
"hasalcohol": true,
"hasfreewifi": true,
"hasmall": true,
"hasmetro": false,
"haspool": true,
"hotelclass": "**",
"hoteltype": "City",
"popular": false,
"recommended": false,
"priceupdated": "2025-01-23T17:50:59.793",
"note": "CHECK IN TIME IS 14:00 HOURS. EARLY CHECK IN IS SUBJECT TO ROOM AVAILABILITY, OTHERWISE, THE ROOM HAS TO BE HELD FROM THE PREVIOUS NIGHT WITH CORRESPONDING ROOM CHARGE. CHECK OUT TIME IS 12:00 HOURS. LATE CHECK OUT IS SUBJECT TO ROOM AVAILABILITY WITH FOLLOWING CHARGES:\n\n25% ROOM CHARGES INCLUSIVE OF VAT FROM 12 HOURS UNTIL 16 HOURS\n50% ROOM CHARGES INCLUSIVE OF VAT FROM 16:00 HOURS UNTIL 19 HOURS\n100% ROOM CHARGES INCLUSIVE OF VAT FROM 19 HOURS ONWARDS",
"imageurl": "91b54d84-466c-4b6b-9255-024b563f91e6.jpg",
"areaid": null,
"areaname": "",
"countryid": "fead4059-3958-42d9-ab98-4446de89c0f1",
"countryname": "United Arab Emirates",
"countrycodeiso2": "AE",
"countrycodeiso3": "ARE"
}
]
Hotelprices
The method is used to obtain (or retrieve) hotel prices and booking conditions.
Purpose: To get all available prices, promotions, and contract rates for a specific hotel.
Use: After selecting a hotel via the Hotels method, you use this method with the hotelid to find the actual cost for a stay. This response provides the critical priceid needed for booking
Parameters to pass: agentid, agentpassword, hotelid
Sample URL example With date filters :
https://restapi.rustaronline.com/v1.01/api/HotelPrices?agentid=username&agentpassword=password&startdate=2025-12-30&enddate=2026-01-2&orderByPrice=true&hotelid=0b31dfb6-74a8-43d6-b5b1-417b329f58e1
Given method returns the object with three list of prices for specified hotel. ContractPrices, Promotions, PromotionsWithConditions
Note: Parameter removedublicates is optional, used for removing duplicate seasons from the list and split prices by seasons. False is the default value of this parameter.
Updated
| Name | Type | Description |
|---|---|---|
| priceid | string | GUID of the unique price id in the database of Rustar. This field together with placement creates unique combination of price for room/promotion/mealplan |
| hotelid | string | GUID of the hotel in the database of Rustar. |
| roomcategory | string | GUID of the Room category |
| roomcategorytype | string | GUID of the Room category type. Unique by description of the room |
| roomcategoryname | string | The name of the room category |
| startdate | Date | Date. Start date of the price period |
| enddate | Date | Date. End date of the price period |
| mealplan | string | CHAR(2). “RO”,”BB”,”HB”,”FB”,”AL” |
| adults | integer | Integer. Number of Aduts with beds |
| teens | integer | Integer. Number of children (Teenagers) without extra bed |
| children | integer | Integer. Number of children between infant and teen ages without extra bed |
| infants | integer | Integer. Number of infants |
| teenswithextrabeds | integer | Integer. Number of children (Teenagers) with extra bed |
| childrenwithextrabeds | integer | Description for the new field. |
| childpolicy | Decimal | { infantmaxage: Decimal. Max age of the infant by the policy of the hotel childmaxage: Decimal. Max age of the child by the policy of the hotel teenmaxage: Decimal. Max age of the teenager by the policy of the hotel } |
| placement | string | Accomodation of all guests in following format e.g. “SNGL+1CHDEB(3-13,99)+1CHD(0-2,99)” |
| price | integer | Decimal. Price for the accommodation/placement |
| currency | string | CHAR(3). Currency of the price above |
| promotioncode | string | Optional. Promotion code if any of the specified price |
| promotion | array | { Promotion terms if any staydays: Integer. Number of days to stay for stay/pay promotion (n nights free) paydays: Integer. Number of days that will be charged in case of “staydays” stay discount: Decimal. Discount % that was applied for this promotion cashback: Decimal. Cashback in specified currency that was applied for this promotion } |
| conditions | array | Optional conditions for using this price |
| bookingstartdate | Date | Date. When it is allowed to start the reservation for this promotion/accomodation |
| bookingenddate | Date | Date. Date, after when the sale of this promotion should be stopped. |
| bookbefore | integer | Number of days before checkin to use this promotion (Early Bird) |
| minimumstay | integer | Minimal stay of nights to use this promotion |
| maximumstay | integer | Maximal stay of nights to use this promotion |
| isactive | boolean | True if the price is active and can be used. False if the price is deactivated/inactive. |
https://restapi.rustaronline.com/v1.01/api/hotelprices?agentid=username&agentpassword=password&hotelid=d6f9299f-5d94-4955-85e7-003e0383023c&removedublicates=false
Sample URL example With date filters :
https://restapi.rustaronline.com/v1.01/api/HotelPrices?agentid=username&agentpassword=password&startdate=2025-12-30&enddate=2026-01-2&orderByPrice=true&hotelid=0b31dfb6-74a8-43d6-b5b1-417b329f58e1{
"Code": "00",
"Message": "",
"Timestamp": "2025-09-23T11:18:57.0464313+04:00",
"Version": "1.01",
"ResponseID": "4c001a5c-3b3b-49a4-86c3-bf6b48551902",
"Data": {
"ContractPrices": [],
"Promotions": [
{
"priceid": "38c654e3-b09a-4164-ad39-be1e4f150818",
"hotelid": "de3d9031-e8a0-43b6-b024-99526c1aa486",
"roomcategory": "e7880ec1-8740-4461-94d6-efbd2fb97df0",
"roomcategorytype": "9416ea67-f55d-478b-972c-029c50c4908f",
"roomcategoryname": "Deluxe Room ",
"startdate": "2025-06-10T00:00:00",
"enddate": "2025-09-30T00:00:00",
"mealplan": "BB",
"adults": 1,
"teens": 0,
"children": 0,
"infants": 0,
"teenswithextrabeds": 0,
"childrenwithextrabeds": 0,
"teenagersareadults": true,
"childpolicy": {
"infantmaxage": 4.99,
"childmaxage": 11.99,
"teenmaxage": 15.99
},
"placement": "SGL",
"price": 81.05,
"currency": "USD",
"promotioncode": "(SPO)",
"promotioncodeforgrouping": "",
"updated": "2024-11-06T14:07:35.34",
"promotion": {
"staydays": null,
"paydays": null,
"discount": 0,
"cashback": 0
},
"conditions": {
"bookingstartdate": null,
"bookingenddate": null,
"bookbefore": null,
"minimumstay": 0,
"maximumstay": 999
},
"weekdays": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true
},
"allweekdays": true,
"isactive": true,
"StayType": "S",
"CheckinRestricted": false,
"CombinationId": 0,
"OriginalPromotionCode": ""
}
"placement": "SGL+1CHD(2-4.99)",
"price": 81.05,
"currency": "USD",
"promotioncode": "(SPO)",
"promotioncodeforgrouping": "",
"updated": "2024-11-06T14:07:35.34",
"promotion": {
"staydays": null,
"paydays": null,
"discount": 0,
"cashback": 0
}
{
"priceid": "140d23ab-62c5-477b-a0b5-9bcd3d186cd5",
"hotelid": "de3d9031-e8a0-43b6-b024-99526c1aa486",
"roomcategory": "e8c0e6b0-6d4c-4695-94df-05a249b86799",
"roomcategorytype": "dab4a6d2-f782-46b2-b26f-fc5782760e9e",
"roomcategoryname": "Family Interconnecting Room",
"startdate": "2025-06-10T00:00:00",
"enddate": "2025-09-30T00:00:00",
"mealplan": "RO",
"adults": 2,
"teens": 0,
"children": 2,
"infants": 0,
"teenswithextrabeds": 0,
"childrenwithextrabeds": 0,
"teenagersareadults": true,
"childpolicy": {
"infantmaxage": 4.99,
"childmaxage": 11.99,
"teenmaxage": 15.99
},
"placement": "DBL+2CHD(5-11.99)(5-11.99)",
"price": 92.13,
"currency": "USD",
"promotioncode": "EBB by 45 days (discount 20.0000%) - CDD-EB20 (Non-Refundable)(SPO)",
"promotioncodeforgrouping": "EBB by 45 days - CDD-EB20 (Non-Refundable)",
"updated": "2024-12-31T12:54:39.24",
"promotion": {
"staydays": null,
"paydays": null,
"discount": 20,
"cashback": 0
},
"conditions": {
"bookingstartdate": null,
"bookingenddate": null,
"bookbefore": 45,
"minimumstay": 0,
"maximumstay": 999
},
"weekdays": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true
},
"allweekdays": true,
"isactive": true,
"StayType": "S",
"CheckinRestricted": false,
"CombinationId": 200,
"OriginalPromotionCode": "CDD-EB20 (Non-Refundable)"
}
],
"CancelationPolicies": []
}
}
Example with "ContractPrices": []
{
"Code": "00",
"Message": "",
"Timestamp": "2025-09-24T09:45:48.5622191+04:00",
"Version": "1.01",
"ResponseID": "07605820-1f8e-48cc-adc3-80fb064062ef",
"Data": {
"ContractPrices": [
{
"priceid": "9d6b6ec0-76f5-4cef-b96c-2b3a132f1fba",
"hotelid": "fd95cc91-7d07-4248-b691-5c534834ee1c",
"roomcategory": "e84d3e0b-3b48-42b9-8448-13514e1f42a8",
"roomcategorytype": "34b454be-06da-472e-ab34-2257a587edce",
"roomcategoryname": "Junior Suite",
"startdate": "2025-11-01T00:00:00",
"enddate": "2025-11-16T00:00:00",
"mealplan": "RO",
"adults": 1,
"teens": 0,
"children": 0,
"infants": 0,
"teenswithextrabeds": 0,
"childrenwithextrabeds": 0,
"teenagersareadults": true,
"childpolicy": {
"infantmaxage": 5.99,
"childmaxage": 11.99,
"teenmaxage": 15.99
},
"placement": "SGL",
"price": 290.64,
"currency": "USD",
"promotioncode": "(CNT)",
"promotioncodeforgrouping": "",
"updated": "2025-06-10T13:52:05.673",
"promotion": {
"staydays": null,
"paydays": null,
"discount": 0,
"cashback": 0
},
"conditions": {
"bookingstartdate": null,
"bookingenddate": null,
"bookbefore": null,
"minimumstay": 0,
"maximumstay": 999
},
"weekdays": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true
},
"allweekdays": true,
"isactive": true,
"StayType": "S",
"CheckinRestricted": false,
"CombinationId": 0,
"OriginalPromotionCode": ""
},
"CancelationPolicies": []
}
}
Example - PromotionsWithConditions
{
"Code": "00",
"Message": "",
"Timestamp": "2025-09-24T09:45:48.5622191+04:00",
"Version": "1.01",
"ResponseID": "07605820-1f8e-48cc-adc3-80fb064062ef",
"Data": {
"PromotionsWithConditions": [
{
"priceid": "d9dcf86d-2ff9-4073-882d-10b5ae5ebe4a",
"hotelid": "50601468-2c60-496a-91ab-06644e7e9ec7",
"roomcategory": "67e6a8b1-5069-4f7f-90de-4215fa94de75",
"roomcategorytype": "b0472de5-3c70-4eb3-8e5c-03c1f8a97efe",
"roomcategoryname": "Beach Pool Villa",
"startdate": "2025-04-24T00:00:00",
"enddate": "2025-09-30T00:00:00",
"mealplan": "AL/PREMIUM",
"adults": 1,
"teens": 0,
"children": 0,
"infants": 0,
"teenswithextrabeds": 0,
"childrenwithextrabeds": 0,
"teenagersareadults": true,
"childpolicy": {
"infantmaxage": 0.00,
"childmaxage": 11.99,
"teenmaxage": 15.99
},
"placement": "SGL",
"price": 870.00000000000,
"currency": "USD",
"promotioncode": "EBB by 60 days (discount 10.0000%) - EBO10%(SPO)",
"promotioncodeforgrouping": "EBB by 60 days - EBO10%",
"updated": "2025-07-14T19:49:16.903",
"promotion": {
"staydays": null,
"paydays": null,
"discount": 10.0000,
"cashback": 0.000000000000
},
"conditions": {
"bookingstartdate": null,
"bookingenddate": null,
"bookbefore": 60,
"minimumstay": 0,
"maximumstay": 999
},
"weekdays": {
"mon": true,
"tue": true,
"wed": true,
"thu": true,
"fri": true,
"sat": true,
"sun": true
},
"allweekdays": true,
"isactive": true,
"StayType": "S",
"CheckinRestricted": false,
"CombinationId": 0,
"OriginalPromotionCode": "EBO10%"
}"ContractPrices": [
{
],
"CancelationPolicies": []
}
}
{
"type": "object",
"additionalProperties": false,
"properties": {
"hotelID": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"hotelName": {
"type": [
"string",
"null"
]
},
"checkInDate": {
"type": "string",
"format": "date-time"
},
"checkOutDate": {
"type": "string",
"format": "date-time"
},
"placement": {
"type": [
"string",
"null"
]
},
"roomCategory": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"roomCategoryName": {
"type": [
"string",
"null"
]
},
"priceID": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"promotionCodes": {
"type": [
"string",
"null"
]
},
"mealPlan": {
"type": [
"string",
"null"
]
},
"agentConfirmationNumber": {
"type": [
"string",
"null"
]
},
"adults": {
"type": "integer",
"minimum": 0
},
"children": {
"type": "integer",
"minimum": 0
},
"infants": {
"type": "integer",
"minimum": 0
},
"hotelNote": {
"type": [
"string",
"null"
]
},
"price": {
"type": "number",
"minimum": 0
},
"customerCodes": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
}
},
"required": [
"checkInDate",
"checkOutDate",
"adults",
"children",
"infants",
"price"
]
}Roomavailabilities
The method returns the list of stop sales or other statuses by room categories and dates for specified hotelid
Purpose: To check the availability status of rooms for a specific hotel.
Use: This method returns statuses like “STOP SALE” or “ON REQUEST” for specific room categories and dates, letting you know if a room is immediately bookable or not
Parameters to pass: agentid, agentpassword and hotelid
Sample URL:
https://restapi.rustaronline.com/v1.01/api/roomavailabilities?agentid=username&agentpassword=password&hotelid=44EDF1C4-BFE0-4CA0-8091-014CF5C68A
| Name | Type | Description |
|---|---|---|
| hotelid | string | GUID of the hotel in the database of Rustar. This GUID will be used to retrieve additional information (like prices) about the hotel |
| roomcategory | string | GUID of the Room category |
| roomcategorytype | string | GUID of the Room category type. Unique by description of the room |
| roomcategoryname | string | The name of the room category |
| startdate | Date | Start date of the limit period |
| enddate | Date | End date of the limit period |
| note | string | Free formed text |
| pricestatus | string | Values can be: “STOP” – means STOP SALE. The room is not available for specified period “REQUEST” – means“ON REQUEST”. The availability must be checked for specified period. “FREE” – this status is optional. Means FREE SALE. |
https://restapi.rustaronline.com/v1.01/api/roomavailabilities?agentid=username&agentpassword=password&hotelid=44EDF1C4-BFE0-4CA0-8091-014CF5C68A
{
"Code": "00",
"Message": "",
"Timestamp": "2025-09-23T11:40:23.814989+04:00",
"Version": "1.01",
"ResponseID": "077c7be8-b71f-4860-9c96-8a85ff2ffa10",
"Data": [
{
"hotelid": "44edf1c4-bfe0-4ca0-8091-014cf5c68a79",
"roomcategory": "f4152cbe-53a3-46dd-b5ea-32683b2497f8",
"roomcategorytype": "00000000-0000-0000-0000-000000000000",
"roomcategoryname": "2 B/R Apartment",
"startdate": "2025-10-25T00:00:00",
"enddate": "2025-10-25T00:00:00",
"note": null,
"availability": "STOP"
},
{
"hotelid": "44edf1c4-bfe0-4ca0-8091-014cf5c68a79",
"roomcategory": "f4152cbe-53a3-46dd-b5ea-32683b2497f8",
"roomcategorytype": "8f3c7364-46fa-4226-8582-ec3c3d54cd7e",
"roomcategoryname": "2 B/R Apartment",
"startdate": "2025-10-26T00:00:00",
"enddate": "2025-10-26T00:00:00",
"note": null,
"availability": "REQUEST"
},
{
"hotelid": "44edf1c4-bfe0-4ca0-8091-014cf5c68a79",
"roomcategory": "f4152cbe-53a3-46dd-b5ea-32683b2497f8",
"roomcategorytype": "00000000-0000-0000-0000-000000000000",
"roomcategoryname": "2 B/R Apartment",
"startdate": "2025-10-27T00:00:00",
"enddate": "2025-10-27T00:00:00",
"note": null,
"availability": "REQUEST"
}
]
Notes:
“STOP” – means STOP SALE. The room is not available for specified period
“REQUEST” – means“ON REQUEST”. The availability must be checked for specified period. “FREE” – this status is optional. Means FREE SALE.Extra Services Data
This chapter describes information, prices, and conditions related to Additional extra Services.
Description and Mandates
Additional Services may include:
Gala Dinners
Christmas Dinners
Special offers on specific holiday dates.
Mandatory Services: In certain periods, it is not possible to book the hotel without also booking the existing service, as the service is mandatory.
Please Note: Kindly take this requirement into consideration when processing bookings.
Hotelextras
Purpose: To retrieve a list of additional services, such as gala dinners, that may be mandatory or optional for a stay.
Use: This method is used to find extra services and their prices. A key feature is that prices are shown in the original sell price (e.g., the currency the supplier uses)
Parameters to pass: agented and agentpassword
Sample URL:
https://restapi.rustaronline.com/v1.01/api/hotelextras?agentid=username&agentpassword=password
The method returns the list of gala dinners and other additional services mandatory or complimentary for stay at specific dates in original sell price.
| Name | Type | Description |
|---|---|---|
| hotelid | string | GUID of the hotel in the database of Rustar. This GUID will be used to retrieve additional information (like prices) about the hotel |
| hotelname | string | string. Name of the hotel |
| servicetype | string | Object type of service/gala dinner |
| roomcategorytype | integer | GUID of the Room category type. Unique by description of the room |
| roomcategoryname | string | The name of the room category |
| extraservicetypeid | integer | GUID of the service type. Unique for GALA DINNER, CHRISTMAS DINNER etc |
| extraservicetype | string | string. The name of the extra service type. E.g. GALA DINNER |
| extraserviceid | string | GUID of the extra service provided/requested by the hotelUpdated |
| extraservice | integer | The name of the service/extra for the specific hotel. E.g. NEW YEAR GALA DINNER IN ATLANTIS |
| servicedescriptionnote | string | string. Optional description to be displayed to client. The description explains the conditions of the gala dinner in human readable format |
| serviceconditionsnote | string | string. Optional description of conditions of the service to be displayed to the client. The conditions displayed are in human readable format |
| ismandatory | boolean | Boolean. 1 if this dinner/service is mandatory for the stay. 0 if using of this service/dinner is optional |
| serviceprices | array | Array of different options for gala dinners/extra services |
| description | string | Description of one of the option |
| adult | array | Price for the adult |
| teen | array | Price for the teenager (Age is specified in maxage property) |
| child | array | Price for the teenager (Age is specified in maxage property) |
| infant | array | Price for the infant (Age is specified in maxage property). If priceid is null, then infant is not allowedUpdated |
| serviceconditions | array | conditions to be met in order to request this dinner/service |
| bookingstartdate | Date | If not null, then the booking should be done starting from this date |
| bookingenddate | Date | If not null, then the booking should be done ending this date |
| minimumstay | integer | If not null, then the booking duration should be at least the specified days |
| stayperiodstart | Date | If not null, then the reservation (stay date) should be starting from specified date |
| stayperiodend | Date | If not null, then the reservation (stay date) should end before specified date |
https://restapi.rustaronline.com/v1.01/api/hotelextras?agentid=username&agentpassword=password{
"Code": "00",
"Message": "",
"Timestamp": "2025-09-23T11:52:30.8013383+04:00",
"Version": "1.01",
"ResponseID": "2213181d-620c-43fb-8365-7553460a947a",
"Data": [
{
"hotelid": "8efb7ca9-09a9-4409-9d03-016b4bd9d522",
"hotelname": "Residence Inn by Marriott Sheikh Zayed Road",
"servicetype": {
"extraservicetypeid": "88ec1f35-4077-451b-a71f-0630fcc7fdff",
"extraservicetype": "GALA DINNER"
},
"service": {
"extraserviceid": "e6614aec-a920-4e33-a17d-67afc2bfe23d",
"extraservice": "NEW YEAR 2025-2026 GALA DINNER",
"servicedescriptionnote": "Mandatory Gala Dinner on 31.12.2025",
"serviceconditionsnote": null,
"ismandatory": 1,
"serviceprices": [
{
"description": "Mandatory Gala Dinner (w/unlimited soft drinks)",
"adult": {
"priceid": "9de63141-53f5-4334-85cd-bfa2448c9286",
"currency": "AED",
"price": 393.25
},
"teen": {
"priceid": "c0834ef8-4e1b-40a6-b0ef-ba5edd2f4a87",
"maxage": 20.99,
"currency": "AED",
"price": 393.25
},
"child": {
"priceid": "f426307f-7208-490c-ab09-5f46dc479ba8",
"maxage": 11.99,
"currency": "AED",
"price": 205.75
},
"infant": {
"priceid": "1a7d7ed4-bd55-4971-88c1-00b64240c13f",
"maxage": 5.99,
"currency": "AED",
"price": 0
}
}
],
"serviceconditions": [
{
"bookingstartdate": null,
"bookingenddate": null,
"bookbefore": null,
"minimumstay": null,
"stayperiodstart": "2025-12-31T00:00:00",
"stayperiodend": "2026-01-01T00:00:00"
}
]
}
},
{
"hotelid": "e9a98ffa-76fd-4ce0-97e9-018671930ebe",
"hotelname": "The St. Regis Saadiyat Island Resort, Abu Dhabi",
"servicetype": {
"extraservicetypeid": "88ec1f35-4077-451b-a71f-0630fcc7fdff",
"extraservicetype": "GALA DINNER"
},
"service": {
"extraserviceid": "58f6a03d-01ce-4ae8-af69-045f6709416c",
"extraservice": "NEW YEAR 2024 - 2025 GALA DINNER",
"servicedescriptionnote": "Optional Gala Dinner on 31.12.2024",
"serviceconditionsnote": null,
"ismandatory": 0,
"serviceprices": [
{
"description": "Gala Dinner - Sparkling Soiree (inclusive of soft beverages)",
"adult": {
"priceid": "cda65dc7-9e82-4b39-b81a-d85edc9d9535",
"currency": "AED",
"price": 393.25
},
"teen": {
"priceid": "ebc58057-8892-43c0-9678-3bbcce6903f1",
"maxage": 20.99,
"currency": "AED",
"price": 393.25
},
"child": {
"priceid": "10e2aafb-e717-42d0-b779-8b89dd010200",
"maxage": 11.99,
"currency": "AED",
"price": 193.25
},
"infant": {
"priceid": "eaa368ea-1706-4dfa-b303-9ed3cc9d869d",
"maxage": 5.99,
"currency": "AED",
"price": 0
}
},
{
"description": "Gala Dinner - Sparkling Soiree (inclusive of selected grapes, beverages, and creative concoctions)",
"adult": {
"priceid": "2048c7dd-b9b1-4a8a-b7da-8c5d5f020bdc",
"currency": "AED",
"price": 568.25
},
"teen": {
"priceid": "23898bb0-be9f-4a8f-91ea-20e2a7068f96",
"maxage": 20.99,
"currency": "AED",
"price": 568.25
},
"child": {
"priceid": "f0b921a8-522b-45dd-a7b5-3f9715eee936",
"maxage": 11.99,
"currency": "AED",
"price": 193.25
},
"infant": {
"priceid": "e9a05502-34f4-4388-a484-2db6f9638933",
"maxage": 5.99,
"currency": "AED",
"price": 0
}
}
],
"serviceconditions": [
{
"bookingstartdate": null,
"bookingenddate": null,
"bookbefore": null,
"minimumstay": null,
"stayperiodstart": "2024-12-31T00:00:00",
"stayperiodend": "2025-01-01T00:00:00"
},
{
"bookingstartdate": null,
"bookingenddate": null,
"bookbefore": null,
"minimumstay": null,
"stayperiodstart": "2024-12-31T00:00:00",
"stayperiodend": "2025-01-01T00:00:00"
}
]
}
},
{
"hotelid": "1bf4dfcf-ee2a-407e-ad88-e349839d08a0",
"hotelname": "Ramada by Wyndham Beach Hotel Ajman",
"servicetype": {
"extraservicetypeid": "6c5c6aba-b4f6-4c58-8633-c51b1447f65b",
"extraservicetype": "Russian Christmas Dinner"
},
"service": {
"extraserviceid": "67ce2c5f-7111-446f-addf-67e747f6afdb",
"extraservice": "Russian Christmas Dinner 2026",
"servicedescriptionnote": "Russian Christmas Dinner on 06.01.2026",
"serviceconditionsnote": null,
"ismandatory": 1,
"serviceprices": [
{
"description": "Russian Christmas Dinner",
"adult": {
"priceid": "be079337-b544-4b7a-be7e-640a41126300",
"currency": "AED",
"price": 318.25
},
"teen": {
"priceid": "8c4f54dc-0bfc-43ac-911e-99bf4ad35a27",
"maxage": 20.99,
"currency": "AED",
"price": 318.25
},
"child": {
"priceid": "f4217fb8-7999-4b86-8558-a36f3f9030f5",
"maxage": 11.99,
"currency": "AED",
"price": 168.25
},
"infant": {
"priceid": "6af75fcd-8dab-499d-b86c-f47b17c0452e",
"maxage": 5.99,
"currency": "AED",
"price": 0
}
}
],
"serviceconditions": [
{
"bookingstartdate": null,
"bookingenddate": null,
"bookbefore": null,
"minimumstay": null,
"stayperiodstart": "2026-01-06T00:00:00",
"stayperiodend": "2026-01-07T00:00:00"
}
]
}
}
]
}
HotelExtrasNew
Purpose: To retrieve a list of additional hotel services.
Use: This method serves the same purpose as Hotelextras, but with some differences, key one : the price is provided in the selling currency (e.g., USD), not the original currency
Parameters to pass: agented and agentpassword
Sample URL:
https://restapi.rustaronline.com/v1.01/api/HotelExtrasNew?agentid=username&agentpassword=password
| Name | Type | Description |
|---|---|---|
| HotelName | string | The name of the hotel where the service is offered. |
| ServiceName | string | The full name of the service (e.g., “New Year Eve Dinner”). |
| ServiceType | string | string. The type of service, such as “Compulsory”. |
| HotelID | string | GUID. The unique identifier of the hotel. |
| ServiceID | string | GUID. A unique identifier for the specific service. |
| ServiceDetails | array | An array of objects, providing a detailed breakdown of the service. |
| PriceName | string | The name of the price category, often specifying a meal plan or event. |
| CompulsoryDate | string | The date range for which the service is mandatory. |
| Condition | string | Any specific conditions for the service. |
| PromoCode | string | The promotional code associated with the service, if applicable. |
| OnlyforMeals | string | A comma-separated list of meal plans for which the service is valid. |
https://restapi.rustaronline.com/v1.01/api/HotelExtrasNew?agentid=username&agentpassword=password {
"Code": "00",
"Message": "",
"Timestamp": "2025-09-19T17:21:11.248863+04:00",
"Version": "1.01",
"ResponseID": "a3e57c80-9cc6-49ec-95b8-c5ce68d1b8a7",
"Data": [
{
"HotelName": "Coco Palm Dhuni Kolhu Maldives",
"ServiceName": "(Compulsory)New Year Eve Dinner (31.12.2026)",
"ServiceType": "Compulsory",
"HotelID": "4b987264-f4b2-4ed8-9c0b-62ef07e5a294",
"ServiceID": "34b0c108-a021-4091-ad25-014bbdb4cae9",
"ServiceDetails": [
{
"PriceName": "New Year Eve Dinner (31.12.2026)",
"CompulsoryDate": "31.12.2026 - 01.01.2027",
"Condition": null,
"PromoCode": null,
"OnlyforMeals": "",
"OnlyForRoomCategories": "",
"OnlyForHotelPromoCodes": "",
"BookingPeriod": "",
"BookBeforeDays": "",
"MinimumStayDays": "",
"Prices": [
{
"PriceType": "Adult",
"AgeRange": "21-100",
"PricePaxCount": 1,
"Price": 215.000000000000,
"ExtraPrice": 215.000000000000,
"IsAllowed": true
},
{
"PriceType": "Teen",
"AgeRange": "12-21",
"PricePaxCount": 1,
"Price": 215.000000000000,
"ExtraPrice": 215.000000000000,
"IsAllowed": true
},
{
"PriceType": "Child",
"AgeRange": "2-12",
"PricePaxCount": 1,
"Price": 110.000000000000,
"ExtraPrice": 110.000000000000,
"IsAllowed": true
},
{
"PriceType": "Infant",
"AgeRange": "0-2",
"PricePaxCount": 1,
"Price": 0.000000000000,
"ExtraPrice": 0.000000000000,
"IsAllowed": true
}
]
}
]
},
{
"HotelName": "Kuredhivaru Resort and Spa",
"ServiceName": "(Compulsory)Christmas Eve Gala Dinner 24.12.2025",
"ServiceType": "Compulsory",
"HotelID": "55df40ec-27a2-40c2-a71c-8d3c8b61a40c",
"ServiceID": "8490c16a-b6b2-47c3-98c3-015a8301faea",
"ServiceDetails": [
{
"PriceName": "Christmas Eve Gala Dinner 24.12.2025 ( FOR HB / FB / AL)",
"CompulsoryDate": "24.12.2025 - 25.12.2025",
"Condition": null,
"PromoCode": null,
"OnlyforMeals": "HB,AL,FB",
"OnlyForRoomCategories": "",
"OnlyForHotelPromoCodes": "",
"BookingPeriod": "",
"BookBeforeDays": "",
"MinimumStayDays": "",
"Prices": [
{
"PriceType": "Adult",
"AgeRange": "21-100",
"PricePaxCount": 1,
"Price": 320.000000000000,
"ExtraPrice": 320.000000000000,
"IsAllowed": true
},
{
"PriceType": "Teen",
"AgeRange": "16-21",
"PricePaxCount": 1,
"Price": 320.000000000000,
"ExtraPrice": 320.000000000000,
"IsAllowed": true
},
{
"PriceType": "Child",
"AgeRange": "6-16",
"PricePaxCount": 1,
"Price": 165.000000000000,
"ExtraPrice": 165.000000000000,
"IsAllowed": true
},
{
"PriceType": "Infant",
"AgeRange": "0-6",
"PricePaxCount": 1,
"Price": 0.000000000000,
"ExtraPrice": 0.000000000000,
"IsAllowed": true
}
]
}
]
}
Notes:
An important factor to note is that, unlike HotelExtras, where the price is shown in the Origin currency, in HotelExtrasNew the price is provided in selling currency.
Transfer Data
Transfer Data Methods
These methods are used to retrieve transfer service prices and available vehicle types for transportation between hotels, airports, or other locations, which in some cases are necessary for booking.
Transferprices
Purpose: To retrieve the prices for transfers to and from a specific hotel on a given date.
Use: This is the standard method for finding the cost of transfers for simple routes. The data is used unless the transfer is “complex.”
TransferPricesExt
Purpose: An alternative method to retrieve transfer prices, typically used for more complex or specific routes (e.g., the Maldives or Seychelles).
Use: Used when more complicated transfer data is required. When booking, this method provides a TransferPriceID and transferID.
Vehicletypes
Purpose: To retrieve the names and types of vehicles available for transfers.
Use: This method provides the vehicle names (e.g., “GROUP”, “TOYOTA PREVIA”) which are required when booking a transfer using the Transferprices method.
Transferprices
Purpose: To get the prices for transfers (transportation) to and from a specific hotel on a given date.
Use: Used to find the cost of airport or hotel transfers. The data from this method is used unless the transfer is “complex”
Parameters to pass: agentid, agentpassword, hotelid and transferdate
The method returns the prices for transfers from and to the specified hotel and date.
| Name | Type | Description |
|---|---|---|
| vehicletypeid | string | GUID of the vehicle type. Uniquely describes the vehicles like (“GROUP”, “TOYOTA COROLLA”) |
| vehicletypename | string | Description of the vehicle/transfer. “GROUP”, “TOYOTA COROLLA”… |
| adultplaces | integer | Max places for adults in the vehicle. For group transfers the value is 1 |
| childplaces | integer | Max places for children in the vehicle after all places for adults are occupied. For group transfers the value is 1 |
| isgroup | boolean | boolean. For the group transfer prices the value id true, for individual transfers/vehicles the value is false |
| price | integer | Price in USD for the transfer. For group transfers the price is the transfer price for one adult, for the individual transfer the price is per vehicle |
| childprice | integer | For the group transfer the field contains the price in USD for the transfer of the child. For individual transfers this field is not used and its value is 0 |
| perpersonprice | boolean | Boolean. Specifies if the price is per person or per vehicle. For group transfers it is true, for individual transfers it is false. |
| transfertype | string | string. “ARRIVAL” or “DEPARTURE”. |
| terminalid | string | GUID. Unique id of the airport terminal for the transfer |
| terminalcode | string | Terminal code. 3 – 4 characters. (SHK, DXB, DXB2 …) |
https://restapi.rustaronline.com/v1.01/api/transferprices?agentid=username&agentpassword=password&hotelid=%20d5f11cf4-acc1-4c0e-9736-e45697a22031&transferdate=2025-12-25T00:00:00{
"Code": "00",
"Message": "",
"Timestamp": "2025-09-23T12:14:06.0010871+04:00",
"Version": "1.01",
"ResponseID": "d9a4765c-0ec1-426d-a652-b11cadc60fac",
"Data": [
{
"vehicletypeid": "50cf907a-2145-4b46-bb67-0dde2e7b7326",
"vehicletypename": "MERCEDES S CLASS 500",
"adultplaces": 3,
"childplaces": 0,
"isgroup": false,
"price": 265,
"childprice": 0,
"perpersonprice": false,
"transfertype": "DEPARTURE",
"terminalid": "f9c8b999-d75f-481f-bd86-8077d1f8599b",
"terminalcode": "DXB1"
},
{
"vehicletypeid": "a9252005-0a92-4ed1-9603-0f2f14295c29",
"vehicletypename": "GROUP",
"adultplaces": 1,
"childplaces": 1,
"isgroup": true,
"price": 20,
"childprice": 0,
"perpersonprice": true,
"transfertype": "DEPARTURE",
"terminalid": "f9c8b999-d75f-481f-bd86-8077d1f8599b",
"terminalcode": "DXB1"
},
{
"vehicletypeid": "50cf907a-2145-4b46-bb67-0dde2e7b7326",
"vehicletypename": "MERCEDES S CLASS 500",
"adultplaces": 3,
"childplaces": 0,
"isgroup": false,
"price": 265,
"childprice": 0,
"perpersonprice": false,
"transfertype": "DEPARTURE",
"terminalid": "0e650729-ec92-4853-ac52-14f13b450c8f",
"terminalcode": "DXB2"
}
]
}
{
"$schema": "http:\/\/json-schema.org\/draft-07\/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"transferPriceId": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"transferDate": {
"type": "string",
"format": "date-time"
},
"transferType": {
"type": [
"string",
"null"
]
},
"fromAirport": {
"type": [
"string",
"null"
]
},
"fromHotelID": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"fromHotelName": {
"type": [
"string",
"null"
]
},
"toAirport": {
"type": [
"string",
"null"
]
},
"toHotelID": {
"type": [
"string",
"null"
],
"format": "uuid"
},
"toHotelName": {
"type": [
"string",
"null"
]
},
"partner": {
"type": [
"string",
"null"
]
},
"customerCodes": {
"type": [
"array",
"null"
],
"items": {
"type": "string"
}
}
},
"required": [
"transferDate"
]
}TransferPricesExt
Purpose: An alternative method to get transfer prices, typically for more complex routes.
Use: This method is used for destinations like the Maldives or Seychelles and c.t.r where transfers are more complicated. When booking, this method provides a TransferPriceID
Parameters to pass: agentid, agentpassword and hotelid
Sample URL:
https://restapimdv.rustaronline.com/v1.01/api/TransferPricesExt?agentid=username&agentpassword=password&hotelid=50601468-2c60-496a-91ab-06644e7e9ec7
This method returns the prices for transfers from the Maldives destination to the specified hotel and date.
In this specific case, the example refers to Maldives, but the same method is also used for other destinations that offer extra services
| Name | Type | Description |
|---|---|---|
| Data | array | An array of objects, which depends on the called method. |
| TransferPriceID | string | GUID. Unique identifier for the transfer price. |
| RtTransferName | string | String. The name of the transfer. |
| HotelID | string | GUID. The identifier of the hotel. |
| HotelName | string | String. The name of the hotel. |
| Meal | string | CHAR(2). The meal plan: “RO” (Room Only), “BB” (Breakfast), “HB” (Breakfast and Dinner), “FB” (Full Board), “AL” (All Inclusive). |
| MealFull | string | String. Full description of the meal plan. |
| LocationDistrictID | string | GUID. The identifier of the district where the hotel is located. |
| LocationDistrictName | string | String. The name of the district. |
| RoomCatName | string | String. The name of the room category. |
| AdultFrom | Decimal | Decimal. The lower age limit for an adult. |
| AdultTo | Decimal | Decimal. The upper age limit for an adult. |
| AdultPrice | Decimal | Decimal. Price for an adult. |
| AdultCount | integer | Integer. Number of adults. |
| ExtraAdultPrice | Decimal | Decimal. Price for an extra adult. |
| TeenFrom | Decimal | Decimal. The lower age limit for a teenager. |
| TeenTo | Decimal | Decimal. The upper age limit for a teenager. |
| TeenPrice | Decimal | Decimal. Price for a teenager. |
| TeenCount | integer | Integer. Number of teenagers. |
| ExtraTeenPrice | Decimal | Decimal. Price for an extra teenager. |
| ChildFrom | Decimal | Decimal. The lower age limit for a child. |
| ChildTo | Decimal | Decimal. The upper age limit for a child. |
| ChildPrice | Decimal | Decimal. Price for a child. |
| ChildCount | integer | Integer. Number of children. |
| ExtraChildPrice | Decimal | Decimal. Price for an extra child. |
| InfantFrom | Decimal | Decimal. The lower age limit for an infant. |
| InfantTo | Decimal | Decimal. The upper age limit for an infant. |
| InfantPrice | Decimal | Decimal. Price for an infant. |
| InfantCount | integer | Integer. Number of infants. |
| ExtraInfantPrice | Decimal | Decimal. Price for an extra infant. |
| StayPeriodFrom | Date | Date. The start date of the stay period. |
| StayPeriodTo | Date | Date. The end date of the stay period. |
| BookingPeriodFrom | Date | Date. The start date of the booking period. |
| BookingPeriodTo | Date | Date. The end date of the booking period. |
| CurrencyUpdated | string | CHAR(3). The currency of the price. |
| ThisTransferOnly | boolean | Description for the new field. |
| RoomFonds | string | Description for the new field. |
https://restapimdv.rustaronline.com/v1.01/api/TransferPricesExt?agentid=username&agentpassword=password&hotelid=50601468-2c60-496a-91ab-06644e7e9ec7{{
"Code": "00",
"Message": "",
"Timestamp": "2025-09-23T09:54:53.2686079+04:00",
"Version": "1.01",
"ResponseID": "f32b7d41-0160-41e7-b020-1ab3712b8ce3",
"Data": [
{
"TransferPriceID": "d4112dff-8611-4633-a5b0-e50499bf8fed",
"RtTransferName": "(Mandaory)DOMESTIC FLIGHT (SPO) (MMKWW25-26)",
"HotelID": "50601468-2c60-496a-91ab-06644e7e9ec7",
"HotelName": "Mercure Maldives Kooddoo",
"Meal": "BB",
"MealFull": "BB/, BB/PREMIUM",
"LocationDistrictID": "a2996ff2-f3d8-4f83-bf89-d403f13e07dd",
"LocationDistrictName": "Kooddoo Island",
"RoomCatName": "Over Water Sunset Pool Villa",
"AdultFrom": 18.00,
"AdultTo": 100.00,
"AdultPrice": 360.0000,
"AdultCount": 1,
"ExtraAdultPrice": 360.0000,
"TeenFrom": 12.00,
"TeenTo": 17.99,
"TeenPrice": 0.0000,
"TeenCount": 0,
"ExtraTeenPrice": 0.0000,
"ChildFrom": 2.00,
"ChildTo": 11.99,
"ChildPrice": 0.0000,
"ChildCount": 0,
"ExtraChildPrice": 0.0000,
"InfantFrom": 0.00,
"InfantTo": 1.99,
"InfantPrice": 0.0000,
"InfantCount": 0,
"ExtraInfantPrice": 0.00,
"StayPeriodFrom": "2025-08-04T00:00:00",
"StayPeriodTo": "2027-01-05T00:00:00",
"BookingPeriodFrom": "2025-08-04T00:00:00",
"BookingPeriodTo": "2025-10-31T00:00:00",
"Currency": "USD",
"ThisTransferOnly": false,
"RoomFonds": "0694E801-83F8-4F70-8B62-FE8F53A354F0, 0B95AD25-6530-4B94-9601-207804FA01B3, 0D7D2AE9-7FAB-47DB-871C-3EC07FA5AF8A, 0DD332F1-D7C3-491A-9E11-10C8B54E9C7C, 14B0FCD0-8416-4B73-B04C-D5C11A909554, 1615D506-94E0-497B-922E-163391111ACC, 1C5EA00C-75D6-4D65-90C5-8044A0F3DF83, 22424681-54BF-42CC-AF1E-8BD0733020B3"
},
{
"TransferPriceID": "d4112dff-8611-4633-a5b0-e50499bf8fed",
"RtTransferName": "(Mandaory)DOMESTIC FLIGHT (SPO) (MMKWW25-26)",
"HotelID": "50601468-2c60-496a-91ab-06644e7e9ec7",
"HotelName": "Mercure Maldives Kooddoo",
"Meal": "BB",
"MealFull": "BB/, BB/PREMIUM",
"LocationDistrictID": "a2996ff2-f3d8-4f83-bf89-d403f13e07dd",
"LocationDistrictName": "Kooddoo Island",
"RoomCatName": "Over Water Sunset Villa",
"AdultFrom": 18.00,
"AdultTo": 100.00,
"AdultPrice": 360.0000,
"AdultCount": 1,
"ExtraAdultPrice": 360.0000,
"TeenFrom": 12.00,
"TeenTo": 17.99,
"TeenPrice": 0.0000,
"TeenCount": 0,
"ExtraTeenPrice": 0.0000,
"ChildFrom": 2.00,
"ChildTo": 11.99,
"ChildPrice": 0.0000,
"ChildCount": 0,
"ExtraChildPrice": 0.0000,
"InfantFrom": 0.00,
"InfantTo": 1.99,
"InfantPrice": 0.0000,
"InfantCount": 0,
"ExtraInfantPrice": 0.00,
"StayPeriodFrom": "2025-08-04T00:00:00",
"StayPeriodTo": "2027-01-05T00:00:00",
"BookingPeriodFrom": "2025-08-04T00:00:00",
"BookingPeriodTo": "2025-10-31T00:00:00",
"Currency": "USD",
"ThisTransferOnly": false,
"RoomFonds": ""
}
]
}
Notes:
RoomFonds
The RoomFonds field is a String containing a comma-separated list of Unique Room Fund Identifiers (GUIDs) associated with the specific room category and hotel. These identifiers represent the physical rooms available for the given transfer.
How to use it:
This field is provided to specify which exact rooms in the hotel are included in the transfer price.
The GUIDs listed here should be used in subsequent API calls (if required) to ensure that the booking is linked to the correct room inventory.
Example Value: “0694E801-83F8-4F70-8B62-FE8F53A354F0, 0B95AD25-6530-4B94-9601-207804FA01B3, 0D7D2AE9-7FAB-47DB-871C-3EC07FA5AF8A”
Vehicletypes
Parameters to pass: agentid, agentpassword
Sample URL:
https://restapi.rustaronline.com/v1.01/api/vehicletypes?agentid=username&agentpassword=password
Purpose: To retrieve the names and types of vehicles available for transfers.
Use: This method provides the vehicle names (e.g., “GROUP”, “TOYOTA PREVIA”) that are required when booking a transfer via the Transferprices method
| Name | Type | Description |
|---|---|---|
| vehicletypeid | string | GUID of the vehicle type. Uniquely describes the vehicles like (“GROUP”, “TOYOTA COROLLA”) |
| vehicletypename | string | Description of the vehicle/transfer. “GROUP”, “TOYOTA COROLLA”… |
| adultplaces | integer | Max places for adults in the vehicle. For group transfers the value is 1 |
| childplaces | integer | Max places for children in the vehicle after all places for adults are occupied. For group transfers the value is 1 |
| isgroup | boolean | For the group transfer prices the value id true, for individual transfers/vehicles the value is false |
https://restapi.rustaronline.com/v1.01/api/vehicletypes?agentid=username&agentpassword=password
{{
"Code": "00",
"Message": "",
"Timestamp": "2025-09-23T12:29:42.1708119+04:00",
"Version": "1.01",
"ResponseID": "dc10a54b-c451-44e5-9958-6ae491e0149a",
"Data": [
{
"vehicletypeid": "fe6a7c97-dd54-496f-994b-07ff9ac20b6b",
"vehicletypename": "STARIA",
"adultplaces": 8,
"childplaces": 0,
"isgroup": false
},
{
"vehicletypeid": "c75e7305-2073-4890-b85c-08e4e062b2ef",
"vehicletypename": "HONDA ODESSEY J",
"adultplaces": 4,
"childplaces": 1,
"isgroup": false
},
{
"vehicletypeid": "50cf907a-2145-4b46-bb67-0dde2e7b7326",
"vehicletypename": "MERCEDES S CLASS 500",
"adultplaces": 3,
"childplaces": 0,
"isgroup": false
},
{
"vehicletypeid": "a6983718-e301-438e-b7c2-0de79d20a7fd",
"vehicletypename": "Lamborghini URUS",
"adultplaces": 2,
"childplaces": 1,
"isgroup": false
},
{
"vehicletypeid": "a9252005-0a92-4ed1-9603-0f2f14295c29",
"vehicletypename": "GROUP",
"adultplaces": 1,
"childplaces": 1,
"isgroup": true
},
{
"vehicletypeid": "35b4f47e-6098-4c7e-a6da-15894a372f64",
"vehicletypename": "HIGER 37",
"adultplaces": 26,
"childplaces": 0,
"isgroup": false
},
{
"vehicletypeid": "7ec0b691-a4e4-44c4-b66c-20ba83c9ded0",
"vehicletypename": "MERCEDES VIANNO",
"adultplaces": 7,
"childplaces": 0,
"isgroup": false
},
{
"vehicletypeid": "77df70e6-d50e-4ad5-8947-23560864e923",
"vehicletypename": "Toyota Rav4",
"adultplaces": 2,
"childplaces": 1,
"isgroup": false
},
{
"vehicletypeid": "88cf527b-43c8-4239-b6c5-29918bb211c0",
"vehicletypename": "MERCEDES S CLASS",
"adultplaces": 3,
"childplaces": 1,
"isgroup": false
} ]
}
Destination Data
These methods serve to retrieve lists of various geographical units. They are primarily used to download static data, which helps in filtering and specifying hotel searches.
Cities
Purpose: To retrieve the complete list of all cities available in the system.
Use: With this method, you get the cityid and cityname for all destinations, allowing you to filter the Hotels list by a specific city.
Districts
Purpose: To retrieve a list of all districts (sub-regions of cities).
Use: Used to get the districtid and districtname, which allows for further refinement of hotel searches within a city.
Areas
Purpose: To retrieve a list of geographical areas.
Use: This method provides another, broader level of geographical data that can be used to filter or organize properties.
Cities
Parameters to pass: agentid and agentpassword
Sample URL:
https://restapi.rustaronline.com/v1.01/api/Cities?agentid=username&agentpassword=password
| Name | Type | Description |
|---|---|---|
| cityid | string | GUID. A unique identifier for the city. |
| cityname | string | String. The name of the city. |
| areaid | string | GUID. An identifier for the specific area within the city. This field is currently null, indicating it may not be in use or is optional for the cities listed. |
https://restapi.rustaronline.com/v1.01/api/Cities?agentid=username&agentpassword=password {{
"Code": "00",
"Message": "",
"Timestamp": "2025-09-23T15:05:19.4237797+04:00",
"Version": "1.01",
"ResponseID": "06292d7c-b176-4622-a62a-a624ec555bcc",
"Data": [
{
"cityid": "1b6c9449-2e91-420d-b713-02d7468ceef0",
"cityname": "Almaty",
"areaid": null
},
{
"cityid": "9b7aa639-abbe-488d-8c1b-19342c986e51",
"cityname": "Aktau",
"areaid": null
},
{
"cityid": "5ed616a8-9a0d-4583-bc70-2071de0131b7",
"cityname": "Istanbul",
"areaid": null
},
{
"cityid": "2b4ac35d-e7dc-42e0-b6da-2632a84a5768",
"cityname": "Al Ain",
"areaid": null
},
{
"cityid": "f78ac3bc-f040-46d0-8319-2c52083080a6",
"cityname": "Sharjah",
"areaid": null
},
{
"cityid": "9aabae22-f2f8-408c-b295-55cce1393c88",
"cityname": "Umm Al Quwain",
"areaid": null
},
{
"cityid": "a7e023c1-c654-4e1d-8a83-7e571bd3a78d",
"cityname": "Ajman",
"areaid": null
},
{
"cityid": "f5185fa3-3f56-44ed-bf6b-80386a33caa2",
"cityname": "Dubai",
"areaid": null
},
{
"cityid": "15dd0648-c3e7-4abd-b5b2-8279939334f5",
"cityname": "Antalya",
"areaid": null
},
{
"cityid": "84d7a7c2-6169-4ed4-95ef-8b10b68acfd9",
"cityname": "Kemer",
"areaid": null
},
{
"cityid": "ee130acf-890c-497c-bd78-9b453e45971f",
"cityname": "Male",
"areaid": null
},
{
"cityid": "98ff7081-31ec-4ae4-930e-ba707827f9ff",
"cityname": "Tbilisi",
"areaid": null
},
{
"cityid": "857a6d87-d1e4-4a17-a867-c65307559222",
"cityname": "Fujairah",
"areaid": null
},
{
"cityid": "607fbe3a-68e6-4523-bf6e-e419fac86a8b",
"cityname": "Ras Al Khaimah ",
"areaid": null
},
{
"cityid": "28c794fe-3c7e-4da2-ba93-f24bd3d4730d",
"cityname": "Abu Dhabi",
"areaid": null
}
]
}
Districts
Parameters to pass: agentid and agentpassword
Sample URL:
https://restapi.rustaronline.com/v1.01/api/Districts?agentid=username&agentpassword=password
| Name | Type | Description |
|---|---|---|
| districtid | string | GUID. A unique identifier for the district. |
| districtname | string | string. The name of the district. |
| cityid | string | GUID. The unique identifier of the city to which the district belongs. |
https://restapi.rustaronline.com/v1.01/api/Districts?agentid=username&agentpassword=password {{
"Code": "00",
"Message": "",
"Timestamp": "2025-09-23T15:06:48.4798095+04:00",
"Version": "1.01",
"ResponseID": "0657a8e4-b6bc-413e-8ee9-7a3075c62d06",
"Data": [
{
"districtid": "ed244c0a-afd4-4caf-978c-024c7781428c",
"districtname": "Al Ain",
"cityid": "28c794fe-3c7e-4da2-ba93-f24bd3d4730d"
},
{
"districtid": "58bc8788-edb9-47b2-933e-06983be0d402",
"districtname": "Dubai Sports City",
"cityid": "f5185fa3-3f56-44ed-bf6b-80386a33caa2"
},
{
"districtid": "f26cf9ab-9fea-48fa-9e52-088f4389cc15",
"districtname": "Sharjah North",
"cityid": "f78ac3bc-f040-46d0-8319-2c52083080a6"
},
{
"districtid": "a7a965b8-8c83-42c8-9b82-08c0bb256c89",
"districtname": "Neom Bay Airport",
"cityid": "b5efc1b9-d124-433a-aa83-c0b38b1f8d1b"
},
{
"districtid": "2cc0d269-d24a-4be6-905f-09e8ebb41a60",
"districtname": "Kutaisi Int Airport",
"cityid": "df23b4bf-b3a0-473d-a3ef-1c0301efa8d5"
},
{
"districtid": "9cda86a2-92a4-4353-bb7d-09fd7819fb86",
"districtname": "Shymkent International Airport",
"cityid": "2467b98b-019b-41c1-b3da-0a43a7f0405c"
},
{
"districtid": "9251cd26-44e9-484d-a1bb-0a36a001ae4c",
"districtname": "Yas Island",
"cityid": "28c794fe-3c7e-4da2-ba93-f24bd3d4730d"
},
{
"districtid": "6116aefa-75b7-445d-a186-113b37943b85",
"districtname": "Frankfurt International Airport",
"cityid": "d25189d0-18c1-4af0-afda-a4a70786ddc2"
},
{
"districtid": "e095f66f-89eb-44af-b9d3-11db44176cff",
"districtname": "King Khalid International Airport",
"cityid": "e07d2480-ade7-4827-988b-8e9b089f1301"
},
{
"districtid": "1ddea045-fa16-4325-b5b1-12024106abac",
"districtname": "Kemer",
"cityid": "84d7a7c2-6169-4ed4-95ef-8b10b68acfd9"
},
{
"districtid": "6e3cb2a0-e7d1-4c65-be97-123fb07865b7",
"districtname": "Kutaisi Int Airport",
"cityid": "ea91a264-3712-4a27-b239-6483ca8d87ea"
},
{
"districtid": "d4bc437a-959a-4a26-89cb-1260f1303ce4",
"districtname": "Aktobe International Airport",
"cityid": "460dff1d-837f-4d9e-b440-e05572db8be4"
},
{
"districtid": "50ee9dbb-0e0a-4037-b352-133f4a154c6d",
"districtname": "Al Qusais",
"cityid": "f5185fa3-3f56-44ed-bf6b-80386a33caa2"
}
]
}
Areas
Parameters to pass: agentid and agentpassword
Sample URL:
https://restapitur.rustaronline.com/v1.01/api/Areas?agentid=username&agentpassword=password
| Name | Type | Description |
|---|---|---|
| Areaid | string | String – Guid – A unique identifier of the area |
| Areaname | string | String – The name of the area |
https://restapitur.rustaronline.com/v1.01/api/Areas?agentid=username&agentpassword=password{
"Code": "00",
"Message": "",
"Timestamp": "2025-09-24T12:18:20.3607629+04:00",
"Version": "1.01",
"ResponseID": "b13602fd-7664-4475-8cef-0876d6141c28",
"Data": [
{
"areaid": "16302989-35ee-4530-b798-0d3a1c8ad0d0",
"areaname": "Istanbul"
},
{
"areaid": "82a47535-756f-4d43-ad7f-221b130d235b",
"areaname": "Antalya"
},
{
"areaid": "353d39cd-6772-48c7-920c-3d54d526003f",
"areaname": "Mugla"
}
]
}
Book
This section describes the critical methods used for transaction management: placing a new reservation and retrieving the details of an existing one.
Book (POST Method)
Purpose: To create and confirm a new reservation in the system.
Use: This is the final step. A comprehensive JSON request, which includes the priceID (from Hotelprices), customer manifest, and any selected extras or transfers, is sent to finalize the booking.
GetReservation (GET Method)
Purpose: To retrieve the details and current status of an existing reservation.
Use: By using the unique reservationId, this method allows the user to check the status of a booking (e.g., “Confirmed,” “Canceled”) and pull the complete booking manifest and data.
❗️ IMPORTANT NOTE ON TESTING:
Please inform us of all reservation data (including the reservationId) after making test bookings so that we can ensure they are properly canceled and do not affect live inventory or invoicing.
Book
Parameters to pass (IN URL): agentid and agentpassword
Sample URL:
https://restapimdv.rustaronline.com/v1.01/api/book?agentid=test.test&agentpassword=TestP@ssw0rd
| Name | Type | Description |
|---|---|---|
| reservationcode | string | string. Reservation/Booking ID from Agent’s system. Might be null |
| customers | array | Array of all tourists of this booking |
| customercode | string | Unique ID of the customer from Agent. Mandatory |
| gender | string | string. “M” or “F” only. Mandatory |
| firstname | string | First name of the customer. Mandatory |
| lastname | string | Last name of the customer. Mandatory |
| birthdate | Date | Birth date of the customer. Optional. If empty, then the customer will be registered as adult |
| citizenship | string | ISO2 format of the country code. For example “KZ”, “UA”. . Mandatory |
| visarequired | boolean | Is customer applying for a visa service from rustar. Mandatory |
| arrivaldate | Date | Mandatory. Addival date AND time of the customer |
| arrivalflightnumber | string | Mandatory. Flight code of the customer for arrival |
| arrivalairport | string | string. IATA 3 character code of the airpot. Mandatory. Example: “DXB”,”SHJ” |
| departuredate | string | Mandatory. Departure date AND time of the customerUpdated |
| departureflightnumber | string | Mandatory. Flight code of the customer for arrival |
| departureairport | string | IATA 3 character code of the airpot. Mandatory. Example: “DXB”,”SHJ” |
| countryaccesscode | string | Phone code for the country. Optional. Example: “971” |
| areacitycode | string | Phone code for city or mobile operator. Optional. Example: “050” |
| phonenumber | string | Phone number of the customer. Optional |
| string | Email address of the customer. Optional | |
| passportnumber | string | string. Passport number of the customer. Optional |
| passporttype | string | “ID” or “PS”. Optional. Passport type. |
| issuedate | Date | Optional. Issue date of the passport |
| expirydate | object | Optional. Expire date of the passport |
| issuecity | string | Optional. City where the passport was issued |
| note | string | Optional. |
| hotels | array | Array of the hotels to book for this reservation |
| hotelid | string | Hotelid returned by “hotels” method |
| hotelname | string | Optional. Hotel name. Will be taken from hotelid if empty |
| placement | string | Mandatory. Placement returned by hotelprices method. |
| roomcategory | string | Guid. Optional. Room category ID returned by hotelprices method. |
| roomcategoryname | string | Optional. Room type name. Will be taken from roomcategory if empty |
| priceid | string | Guid. Optional. Priceid returned by hotelprices method. |
| mealplan | string | Optional. Meal plan of the price. Will be taken from priceid if empty |
| checkindate | Date | Mandatory. Check in date for this price. Must be within the range of the price |
| checkoutdate | Date | Mandatory. Check out date for this price. Must be within the range of the price |
| adults | integer | Mandatory. Number of adults in booking |
| children | integer | Number of children in booking |
| infants | integer | Number of infants in booking |
| hotelnote | string | Note for the booking. Optional |
| customercodes | array | array of strings. Codes of the customers staying in this hotel reservation for these dates |
| transfers | array | Array of the transfers for this booking |
| transferdate | Date | Mandatory. Date of the transfer |
| transfertype | string | Mandatory. VehicleName taken from vehicletypes method. (“GROUP”, “TOYOTA PREVIA”…) In this object, data is retrieved either from TransferPriceExtension or TransferPrice, depending on the Country. If the transfer is complex (for example, Maldives/Seychelles), the data comes from TransferPriceExtension; in all other cases, it comes from TransferPrice. When using TransferPriceExtension, the TransferPriceID must be specified, while for TransferPrice, the VehicleTypeName should be provided. |
| fromairport | string | IATA code of the airport to pick up the tourists |
| fromhotelid | string | Hotelid returned by hotels method. Hotel to pick up the tourists. |
| fromhotelname | string | HotelName returned by hotels method. |
| toairport | string | IATA code of the airport to drop the tourists |
| tohotelid | string | Guid. Hotelid returned by hotels method. Hotel to drop the tourists. |
| tohotelname | string | HotelName returned by hotels method. |
| customercodes | array | Array of strings. Codes of the customers for this transfer |
| hotelextras | array | Array of the extra services, like gala dinners for this booking |
| servicedate | Date | date. Mandatory. Date of the service/gala dinner |
| extraserviceid | integer | guid. Mandatory. extraserviceid returned by hotelextras method. |
| customerprices | array | array of customercodes and priceid-s from hotelextras |
| customercodeUpdated | string | CustomerCode from Customer’s object. |
| priceid | string | Guid. Mandatory. Price id from Adult, Teen, Child, Infant from hotelextras |
| title | string | string. Tile (“Mr”, “Mrs”…). Optional |
https://restapimdv.rustaronline.com/v1.01/api/book?agentid=username&agentpassword=password
example #1 where transfer is from Transferprices - from aeroport to hotel and to hotel from aeroport, full request url - https://restapi.rustaronline.com/v1.01/api/book?agentid=agentid&agentpassword=password
{
"Currency": "USD",
"customers": [
{
"customercode": "1",
"gender": "M",
"firstname": "teeeest",
"lastname": "teeeest",
"citizenship": "GE",
"arrivaldate": "2025-12-30",
"arrivalflightnumber": "FL001",
"arrivalairport": "MLE",
"departuredate": "2026-01-02",
"departureflightnumber": "FL002",
"departureairport": "MLE",
"birthdate": "1990-01-01T00:00:00"
},
{
"customercode": "2",
"gender": "F",
"firstname": "teeeest",
"lastname": "teeeest",
"citizenship": "GE",
"arrivaldate": "2025-12-30",
"arrivalflightnumber": "FL001",
"arrivalairport": "MLE",
"departuredate": "2026-01-02",
"departureflightnumber": "FL002",
"departureairport": "MLE",
"birthdate": "2000-01-01T00:00:00"
}
],
"hotels": [
{
"agentconfirmationnumber": "test__prod_2026+2adult_UAE",
"hotelid": "0b31dfb6-74a8-43d6-b5b1-417b329f58e1",
"checkindate": "2025-12-29",
"checkoutdate": "2026-01-02",
"placement": "DBL+1CHDEB(6-11.99)",
"roomcategory": "fc3aca81-a901-4049-8792-983087eaa8ba",
"roomcategoryname": "1 B/R Suite Canal View",
"priceid": "1ab7f6a7-dc65-4e31-a9a2-fad08e52f07e",
"mealplan": "FB",
"adults": 2,
"children": 0,
"infants": 0,
"customercodes": [
"1","2"
],
"price": 1054.76000000000,
"hotelnote": ""
}
],
"transfers": [
{
"transferDate": "2025-12-29",
"transferType": "BMW X7",
"fromAirport": "DXB",
"fromHotelID": "",
"fromHotelName": "",
"toAirport": "",
"toHotelID": "0b31dfb6-74a8-43d6-b5b1-417b329f58e1",
"toHotelName": "Canal Central Business Bay",
"partner": "string",
"customerCodes": [
"1","2"
]
},
{
"transferDate": "2026-01-02",
"transferType": "BMW X7",
"fromAirport": "",
"fromHotelID": "0b31dfb6-74a8-43d6-b5b1-417b329f58e1",
"fromHotelName": "Canal Central Business Bay",
"toAirport": "DXB",
"toHotelID": "",
"toHotelName": "",
"partner": "string",
"customerCodes": [
"1","2"
]
}
],
"hotelExtras": [
{
"serviceDate": "2025-12-31T12:46:03.245Z",
"extraServiceID": "e6614aec-a920-4e33-a17d-67afc2bfe23d",
"customerPrices": [
{
"customerCode": "1",
"priceID": "9de63141-53f5-4334-85cd-bfa2448c9286"
},
{
"customerCode": "2",
"priceID": "9de63141-53f5-4334-85cd-bfa2448c9286"
}
]
}
]
}
example # 2 transfer in Hotelextras - which means that transfer as a special extra service, which is more advanced and needs more vehicle type than just a car, for example seaplane or fast boat.
Full request URL - https://restapimdv.rustaronline.com/v1.01/api/book?agentid=test.test&agentpassword=TestP@ssw0rd
{
"Currency": "USD",
"customers": [
{
"customercode": "1",
"gender": "M",
"firstname": "teeeest",
"lastname": "teeeest",
"citizenship": "GE",
"arrivaldate": "2025-12-30",
"arrivalflightnumber": "FL001",
"arrivalairport": "MLE",
"departuredate": "2026-01-02",
"departureflightnumber": "FL002",
"departureairport": "MLE",
"birthdate": "1990-01-01T00:00:00"
},
{
"customercode": "2",
"gender": "F",
"firstname": "teeeest",
"lastname": "teeeest",
"citizenship": "GE",
"arrivaldate": "2025-12-30",
"arrivalflightnumber": "FL001",
"arrivalairport": "MLE",
"departuredate": "2026-01-02",
"departureflightnumber": "FL002",
"departureairport": "MLE",
"birthdate": "2000-01-01T00:00:00"
}
],
"hotels": [
{
"agentconfirmationnumber": "test__prod_2026+adultttt113",
"hotelid": "50601468-2c60-496a-91ab-06644e7e9ec7",
"checkindate": "2025-12-30",
"checkoutdate": "2026-01-02",
"placement": "DBL",
"roomcategory": "67e6a8b1-5069-4f7f-90de-4215fa94de75",
"roomcategoryname": "Over Water Sunset Villa",
"priceid": "d2aca489-f460-495a-9f45-00f87396e017",
"mealplan": "AL/PREMIUM",
"adults": 2,
"children": 0,
"infants": 0,
"customercodes": [
"1","2"
],
"price": 1884,
"hotelnote": ""
}
],
"transfers": null,
"hotelExtras": [
{
"serviceDate": "2025-12-31T12:46:03.245Z",
"extraServiceID": "e558b44b-60d2-4f15-8c36-2d5dcec5e5da",
"customerPrices": [
{
"customerCode": "1",
"priceID": "92f9e9cf-023e-415c-8e8c-629fcb8977a9"
},
{
"customerCode": "2",
"priceID": "92f9e9cf-023e-415c-8e8c-629fcb8977a9"
}
]
},
{
"ExtraServiceCode": "10000000-0000-0000-0000-000000000000",
"CustomerPrices": [
{
"CustomerCode": "1",
"ExtraServicePriceCode": "4ae2260f-6881-40db-9e43-295decd67543"
},
{
"CustomerCode": "2",
"ExtraServicePriceCode": "4ae2260f-6881-40db-9e43-295decd67543"
}
]
}
]
}
Notes:
Please keep the following points in mind:
1. Special/Exotic Destinations
If you are booking to Maldives, Seychelles, or similar exotic destinations where the standard transfer (by car from the airport to the hotel and vice versa) is not sufficient because special transportation is required (for example, a speed boat or a seaplane), you must use the second request example.
2. Standard Transfer
In the case that you are making a standard request where the transfer is only by car, use the first example.
GetReservation
Parameters to pass: agentid, agentpassword and reservationId
This case gives opportunity to retrieve full booking information, this will return same data as was in response of booking.
| Name | Type | Description |
|---|---|---|
| ReservationID | string | GUID. A unique identifier for the reservation. |
| ReservationNumber | string | The internal reservation number. |
| ReservationDate | Date | datetime. The date and time the reservation was made. |
| ReservationStatus | integer | A numerical code representing the status of the reservation. For example, -1 corresponds to Canceled. |
| ReservationStatusName | string | The descriptive name of the reservation status (e.g., “Canceled”). |
| ConfirmationNumber | string | The confirmation number of the booking, provided by the hotel or service provider. |
Enter request JSON/XML example here. {
"Code": "00",
"Message": "",
"Timestamp": "2025-09-23T15:41:06.2263499+04:00",
"Version": "1.01",
"ResponseID": "4a2cd4bd-6f89-4bb2-a476-40b6b72aadc7",
"Data": {
"ReservationID": "d20175b8-c229-4ca8-8354-26573972e020",
"ReservationNumber": "33091",
"ReservationDate": "2025-09-19T18:51:38.593",
"ReservationStatus": -1,
"ReservationStatusName": "Canceled",
"ConfirmationNumber": "test__prod_202666"
}
}
#### case when full=true
{
"Code": "00",
"Message": "",
"Timestamp": "2025-10-10T14:25:21.7263506+04:00",
"Version": "1.01",
"ResponseID": "bfe3d880-6e29-4426-964e-fc8a1e85b223",
"Data": {
"ReservationID": "2afacdda-c4a5-456e-8f6c-e5ba22a2207f",
"ReservationNumber": "33820",
"ReservationDate": "2025-10-07T16:01:10.22",
"ReservationStatus": -3,
"ReservationStatusName": "Delete",
"ConfirmationNumber": "test__prod_2026+adultttt113",
"ReservationAmount": 6882.00,
"ReservationTourists": [
{
"TouristID": "31f71cce-7f8b-4af2-9437-8e7d5445a697",
"FirstName": "Teeeest",
"LastName": "Teeeest",
"ChildFlag": 0,
"BirthDate": "1990-01-01T00:00:00",
"CountryCode": "GE",
"CountryID": "a7c67ece-0c59-4097-bc6e-3d9ab91f206b",
"CountryAccessCode": null,
"AreaCityCode": null,
"PhoneNumber": null,
"Gender": 1,
"ArrivalDate": "2025-12-30T00:00:00",
"ArrivalFlightNumber": "FL001",
"ArrivalTerminalName": "MLE",
"DepartureDate": "2026-01-02T00:00:00",
"DepartureFlightNumber": "FL002",
"DepartureTerminalName": "MLE",
"Email": null,
"PassportNumber": null,
"PassportType": null,
"IssueCity": null,
"IssueDate": null,
"ExpiryDate": null,
"Note": null
},
{
"TouristID": "384311fe-b41a-4332-b25e-9d2d3efd8f8d",
"FirstName": "Teeeest",
"LastName": "Teeeest",
"ChildFlag": 0,
"BirthDate": "2000-01-01T00:00:00",
"CountryCode": "GE",
"CountryID": "a7c67ece-0c59-4097-bc6e-3d9ab91f206b",
"CountryAccessCode": null,
"AreaCityCode": null,
"PhoneNumber": null,
"Gender": 2,
"ArrivalDate": "2025-12-30T00:00:00",
"ArrivalFlightNumber": "FL001",
"ArrivalTerminalName": "MLE",
"DepartureDate": "2026-01-02T00:00:00",
"DepartureFlightNumber": "FL002",
"DepartureTerminalName": "MLE",
"Email": null,
"PassportNumber": null,
"PassportType": null,
"IssueCity": null,
"IssueDate": null,
"ExpiryDate": null,
"Note": null
}
],
"ReservationHotels": [
{
"ReservationHotelID": "451cac66-8cb6-4559-ab2e-acffe80845fe",
"AgentConfirmationNumber": "test__prod_2026+adultttt113",
"CheckInDate": "2025-12-30T00:00:00",
"CheckOutDate": "2026-01-02T00:00:00",
"HotelID": "50601468-2c60-496a-91ab-06644e7e9ec7",
"HotelName": "Mercure Maldives Kooddoo",
"RoomCategoryID": "67e6a8b1-5069-4f7f-90de-4215fa94de75",
"RoomCategoryName": "Beach Pool Villa",
"PriceID": "d2aca489-f460-495a-9f45-00f87396e017",
"MealPlanName": "AL/PREMIUM",
"Placement": 3,
"PlacementTypeName": "DBL",
"Note": null,
"Tourists": [
"31f71cce-7f8b-4af2-9437-8e7d5445a697",
"384311fe-b41a-4332-b25e-9d2d3efd8f8d"
],
"CancellationPolicies": [
{
"CancellationPolicyId": "3ae170f5-00e7-4eee-93bb-9d75487a8a9b",
"CancellationPolicyDescription": null,
"NoShowChargeValue": 100.00,
"NoShowChargeValueType": "%",
"EarlyDepartureChargeValue": 100.00,
"EarlyDepartureChargeValueType": "%",
"Conditions": [
{
"TimeUnits": 60.00,
"TimeUnitType": "Day",
"TimeOffsetTypeName": "Before Arrival",
"ChargeValueType": "%",
"ChargeValue": 100.00
}
]
}
]
}
],
"ReservationTransferServices": [
{
"ReservationTransferID": "a4973801-e78d-4c77-9c40-8a0018b5d63c",
"TouristID": "384311fe-b41a-4332-b25e-9d2d3efd8f8d",
"TransferDate": "2025-12-30T00:00:00",
"ServiceName": "ARRIVAL",
"FromTerminalName": "MLE",
"ToTerminalName": null,
"FromHotelID": null,
"FromHotelName": null,
"ToHotelID": "50601468-2c60-496a-91ab-06644e7e9ec7",
"ToHotelName": "Mercure Maldives Kooddoo",
"VehicleTypeId": "00000000-0000-0000-0000-000000000000",
"VehicleTypeName": "DOMESTIC FLIGHT (SPO) (MMKWW25-26.1)"
},
{
"ReservationTransferID": "a4973801-e78d-4c77-9c40-8a0018b5d63c",
"TouristID": "31f71cce-7f8b-4af2-9437-8e7d5445a697",
"TransferDate": "2025-12-30T00:00:00",
"ServiceName": "ARRIVAL",
"FromTerminalName": "MLE",
"ToTerminalName": null,
"FromHotelID": null,
"FromHotelName": null,
"ToHotelID": "50601468-2c60-496a-91ab-06644e7e9ec7",
"ToHotelName": "Mercure Maldives Kooddoo",
"VehicleTypeId": "00000000-0000-0000-0000-000000000000",
"VehicleTypeName": "DOMESTIC FLIGHT (SPO) (MMKWW25-26.1)"
},
{
"ReservationTransferID": "7baa949d-2cb6-4eb1-8c53-e7fc1c16a078",
"TouristID": "384311fe-b41a-4332-b25e-9d2d3efd8f8d",
"TransferDate": "2026-01-02T00:00:00",
"ServiceName": "DEPARTURE",
"FromTerminalName": null,
"ToTerminalName": "MLE",
"FromHotelID": "50601468-2c60-496a-91ab-06644e7e9ec7",
"FromHotelName": "Mercure Maldives Kooddoo",
"ToHotelID": null,
"ToHotelName": null,
"VehicleTypeId": "00000000-0000-0000-0000-000000000000",
"VehicleTypeName": "DOMESTIC FLIGHT (SPO) (MMKWW25-26.1)"
},
{
"ReservationTransferID": "7baa949d-2cb6-4eb1-8c53-e7fc1c16a078",
"TouristID": "31f71cce-7f8b-4af2-9437-8e7d5445a697",
"TransferDate": "2026-01-02T00:00:00",
"ServiceName": "DEPARTURE",
"FromTerminalName": null,
"ToTerminalName": "MLE",
"FromHotelID": "50601468-2c60-496a-91ab-06644e7e9ec7",
"FromHotelName": "Mercure Maldives Kooddoo",
"ToHotelID": null,
"ToHotelName": null,
"VehicleTypeId": "00000000-0000-0000-0000-000000000000",
"VehicleTypeName": "DOMESTIC FLIGHT (SPO) (MMKWW25-26.1)"
}
],
"ReservationServices": [
{
"ReservationServiceID": "1964d5bb-3089-4f11-9e2d-2e5b2a2c5355",
"TouristID": "31f71cce-7f8b-4af2-9437-8e7d5445a697",
"ServiceDate": "2025-12-30T00:00:00",
"ServiceName": "GALA DINNER / NEW YEAR EVE DINNER (31.12.2025) - Main Person - NEW YEAR EVE DINNER (31.12.2025) AL - d6add68e51"
},
{
"ReservationServiceID": "1964d5bb-3089-4f11-9e2d-2e5b2a2c5355",
"TouristID": "384311fe-b41a-4332-b25e-9d2d3efd8f8d",
"ServiceDate": "2025-12-30T00:00:00",
"ServiceName": "GALA DINNER / NEW YEAR EVE DINNER (31.12.2025) - Main Person - NEW YEAR EVE DINNER (31.12.2025) AL - d6add68e51"
}
]
}
}
