Skip to main content

Monthly Availability Grid API

Overview​

Generates a monthly calendar matrix grid with day-by-day room availability, blackout status, prices per night, and statistics.

  • Endpoint: /api/availability/monthly
  • Method: GET

Query Parameters​

ParameterTypeRequiredDescription
hotelIdString (UUID)ConditionalTarget hotel ID
hotelRoomIdString (UUID)ConditionalTarget room ID
monthNumberYesMonth number (1 - 12)
yearNumberYesYear (2020 - 2100)

Response Example (200 OK)​

{
"success": true,
"data": {
"year": 2026,
"month": 10,
"totalDays": 31,
"stats": {
"totalAvailableDays": 29,
"totalClosedDays": 2,
"averagePricePerNight": 4750.00
},
"calendar": [
{
"day": 1,
"date": "2026-10-01",
"dayType": "WEEKDAY",
"totalCapacity": 10,
"availableRooms": 8,
"bookedCount": 2,
"blockedCount": 0,
"pricePerNight": 4500,
"isClosed": false,
"isAvailable": true,
"minimumStayNights": 1,
"rooms": [
{
"hotelRoomId": "room_1122",
"roomName": "Deluxe King Room",
"roomType": "DELUXE",
"totalCapacity": 5,
"bookedCount": 1,
"blockedCount": 0,
"availableRooms": 4,
"pricePerNight": 4500,
"minimumStayNights": 1,
"isClosed": false,
"isAvailable": true,
"closureReason": null
},
{
"hotelRoomId": "room_3344",
"roomName": "Executive Suite",
"roomType": "SUITE",
"totalCapacity": 5,
"bookedCount": 1,
"blockedCount": 0,
"availableRooms": 4,
"pricePerNight": 7500,
"minimumStayNights": 1,
"isClosed": false,
"isAvailable": true,
"closureReason": null
}
]
}
]
},
"message": "Monthly availability grid fetched successfully"
}