Inventory POST
Aiosell POSTs room availability updates to Staydeed for date ranges and room types.
POST
https://staydeed.com/api/ota/inventoryThis endpoint is hosted by Staydeed. Updates are sent as (room, date-range) grain.
The SAME endpoint also receives Inventory Restrictions - there is no separate restrictions URL. See the Inventory Restrictions page.
Dates use YYYY-MM-DD. Every request needs HTTP Basic Auth. Send Staydeed the hotelCode you were given at onboarding.
Headers
| Name | Required | Example |
|---|---|---|
Content-Type | Yes | application/json |
Authorization | Yes | Basic <base64(user:pass)> |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
hotelCode | string | Yes | Property identifier. |
updates | array<Update> | Yes | Inventory update blocks (at least one). |
updates[].startDate | string (YYYY-MM-DD) | Yes | Inclusive start date. |
updates[].endDate | string (YYYY-MM-DD) | Yes | Inclusive end date; on or after startDate. |
updates[].rooms | array<Room> | Yes | Per-room availability. |
updates[].rooms[].roomCode | string | Yes | Room type identifier. |
updates[].rooms[].available | integer | Yes | Non-negative available count. Optional only when restrictions is sent. |
Sample payload
{
"hotelCode": "sandbox-pms",
"updates": [
{
"startDate": "2026-11-10",
"endDate": "2026-11-12",
"rooms": [
{
"roomCode": "suite",
"available": 3
},
{
"roomCode": "executive",
"available": 20
}
]
}
]
}Responses
200Success
{
"success": true,
"message": "Inventory Updated Successfully"
}200Success
{
"success": true,
"message": "Inventory Updated Successfully",
"warnings": [
"UNKNOWN_ROOM_CODE : deluxe"
]
}200Inbound inventory switched off for the property
{
"success": true,
"skipped": true,
"message": "Inventory inbound is switched off for this property"
}404Unknown or disabled hotelCode
{
"success": false,
"message": "Unknown hotelCode"
}401Missing or invalid Basic Auth credentials
{
"success": false,
"message": "Unauthorized"
}422Validation failed
{
"message": "The updates field is required.",
"errors": {
"updates": [
"The updates field is required."
]
}
}