This API uses Bearer Token authentication.
Authorization: Bearer YOUR_TOKEN
Get your token from the Login endpoint and include it in every protected request.
Login
{
"username": "test",
"password": "1234"
}
{
"status": true,
"message": "Login successful",
"data": {
"token": "M3wxNzc1NTc1MDU0fDA1Njk2Y2E0OTNkZjk1ZmQ5NGZlOGM5MzhjOTA2ZmNi",
"sjid": 1501
}
}
Properties
List of properties you are currently connected to
{
"status": true,
"data": [
{
"id": 4,
"name": "DZL Serengeti Camp",
"channel_id": 1,
"company": "DZL Camps"
},
{
"id": 14,
"name": "Rustic Tented Lodge",
"channel_id": 3,
"company": "Nembo Tanzania Ltd"
},
]
Property
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| channel_id | int | query | Yes | |
| property_id | int | query | Yes |
{
"status": true,
"data": {
"property_id": 4,
"categories": [
{
"category_id": 67,
"category": "VILLAS",
"description": "",
"room_types": [
{
"id": "457",
"name": "SINGLE",
"maxpax": "1"
},
{
"id": "458",
"name": "DOUBLE",
"maxpax": "2"
},
{
"id": "459",
"name": "TWIN",
"maxpax": "2"
},
{
"id": "460",
"name": "TRIPLE",
"maxpax": "3"
},
{
"id": "461",
"name": "QUAD-FAMILY",
"maxpax": "5"
}
]
},
{
"category_id": 69,
"category": "Standard Rooms",
"description": "",
"room_types": [
{
"id": "467",
"name": "SINGLE",
"maxpax": "1"
},
{
"id": "468",
"name": "DOUBLE",
"maxpax": "2"
},
{
"id": "469",
"name": "TWIN",
"maxpax": "2"
},
{
"id": "470",
"name": "TRIPLE",
"maxpax": "3"
},
{
"id": "471",
"name": "QUAD-FAMILY",
"maxpax": "4"
}
]
}
],
"mealplans": [
{
"id": "14",
"name": "Full Board"
}
]
}
}
Rates
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| channel_id | int | query | Yes | |
| property_id | int | query | Yes | |
| fromdate | date | query | Yes | |
| todate | date | query | Yes |
"status": true,
"data": {
"currency": "USD",
"rate_type": "Per Person",
"2026-08-05": {
"season": "High Season",
"rates_id": 109,
"FB": {
"Standard": {
"SINGLE": 150,
"DOUBLE": 100,
"TWIN": 100,
"TRIPLE": 80
}
}
},
"2026-08-06": {
"season": "High Season",
"rates_id": 109,
"FB": {
"Standard": {
"SINGLE": 150,
"DOUBLE": 100,
"TWIN": 100,
"TRIPLE": 80
}
}
},
}
}
Availability
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| channel_id | int | query | Yes | |
| property_id | int | query | Yes | |
| fromdate | date | query | Yes | |
| todate | date | query | Yes |
{
"status": true,
"data": {
"2027-04-01": {
"VILLAS": 8,
"Standard Rooms": 2
},
"2027-04-02": {
"VILLAS": 6,
"Standard Rooms": 5
},
"minimum_availability": {
"VILLAS": 6,
"Standard Rooms": 2
}
}
}
Bookings
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| channel_id | int | query | Yes | |
| property_id | int | query | Yes | |
| fromdate | date | query | Yes | |
| todate | date | query | Yes |
{
"status": true,
"data": [
{
"booking_id": "236",
"group_name": "Melanin",
"arrival_date": "01/01/2027",
"nights": "1",
"arrival_time": "Dinner",
"departure_time": "After Breakfast",
"status": "Confirmed",
"special_request": "Allergic to nuts",
"pax": 2,
"invoice_no": 0,
"receipts": "",
"amount": "238.36",
"paid": "0.00",
"balance": "238.36"
},
{
"booking_id": "304",
"group_name": "Hamid Chori",
"arrival_date": "01/01/2027",
"nights": "1",
"arrival_time": "Dinner",
"departure_time": "After Breakfast",
"status": "Confirmed",
"special_request": "Family Interconnected (With Plunge Pool in 1 unit)",
"pax": 5,
"invoice_no": 0,
"receipts": "",
"amount": "567.89",
"paid": "0.00",
"balance": "567.89"
},
}
}
Create a booking
{
"channel_id": 1,
"property_id": 4,
"group_name": "Smith X 3",
"arrival_date": "2027-04-01",
"nights": "1",
"email": "smith2100@gmail.com",
"contact_person": "Kevin",
"arrival_time": "Lunch",
"departure_time": "After Breakfast",
"mealplans": [14],
"rooms": [
{
"category_id": 69,
"room_type_id": 468,
"adults": 2,
"children": 1,
"child_ages": [8]
}
],
"special_request": "Lunch Box on Departure",
"sjid": 1501
}
{
"status": true,
"data": {
"message": "Booking created successfully",
"booking_id": 150047
}
}
Update existing booking
Only email, special request, arrival and departure time can be updated
{
"channel_id": 1,
"property_id": 4,
"booking_id": 150047,
"email": "gift@gmail.com",
"arrival_time": "Dinner",
"special_request": "Transfer to JRO",
"sjid": 1501
}
{
"status": true,
"data": {
"booking_id": 150047,
"updated": true,
"message": "Booking updated successfully"
}
}
Cancel existing booking
You can only cancel your future bookings
{
"channel_id": 1,
"property_id": 4,
"booking_id": 150047,
"reason": "Health",
"remarks": "Daughter got sick",
"sjid": 1501
}
{
"status": true,
"data": {
"booking_id": 150047,
"cancelled": true,
"message": "Booking cancelled successfully"
}
}