Rate Restrictions POST
Aiosell POSTs rate-plan-level restrictions (stop-sell, min/max stay, advance booking windows, etc.) to Staydeed.
POST
https://staydeed.com/api/ota/ratesSent to the SAME endpoint as Rate POST - you do not build a separate endpoint. The payload adds a restrictions object to each rate entry.
Same restriction fields as inventory restrictions, but scoped to a (room, rateplan).
Restriction fields you omit keep their stored value. A field sent as null clears it (booleans reset to false).
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 | Restriction update blocks. |
updates[].startDate | string (YYYY-MM-DD) | Yes | Inclusive start date. |
updates[].endDate | string (YYYY-MM-DD) | Yes | Inclusive end date. |
updates[].rates | array<Rate> | Yes | Per (room, rateplan) restriction entries. |
updates[].rates[].roomCode | string | Yes | Room type identifier. |
updates[].rates[].rateplanCode | string | Yes | Rate plan identifier. |
updates[].rates[].rate | number | No | Nightly rate; may accompany restrictions. |
updates[].rates[].restrictions | object | Yes | Restriction object (see fields below). |
restrictions.stopSell | boolean | No | Disable all bookings for this date. |
restrictions.minimumStay | integer | No | Minimum nights required (0 - 65535). |
restrictions.maximumStay | integer | null | No | Maximum nights allowed (0 - 65535). |
restrictions.closeOnArrival | boolean | No | Block check-ins on this date. |
restrictions.closeOnDeparture | boolean | No | Block check-outs on this date. |
restrictions.minimumStayArrival | integer | null | No | Minimum stay if arriving on this date. |
restrictions.maximumStayArrival | integer | null | No | Maximum stay if arriving on this date. |
restrictions.exactStayArrival | integer | null | No | Exact stay length if arriving on this date. |
restrictions.minimumAdvanceReservation | integer | null | No | Min days ahead a booking can be made. |
restrictions.maximumAdvanceReservation | integer | null | No | Max days ahead a booking can be made. |
Sample payload
{
"hotelCode": "sandbox-pms",
"updates": [
{
"startDate": "2026-11-10",
"endDate": "2026-11-12",
"rates": [
{
"roomCode": "executive",
"rateplanCode": "executive-d-ep",
"restrictions": {
"stopSell": false,
"minimumStay": 2,
"maximumStay": null,
"closeOnArrival": false,
"closeOnDeparture": false,
"minimumStayArrival": null,
"maximumStayArrival": null,
"exactStayArrival": null,
"minimumAdvanceReservation": null,
"maximumAdvanceReservation": null
}
}
]
}
]
}Responses
200Success
{
"success": true,
"message": "Rates Updated Successfully",
"nights": 3
}404Unknown or disabled hotelCode
{
"success": false,
"message": "Unknown hotelCode"
}401Missing or invalid Basic Auth credentials
{
"success": false,
"message": "Unauthorized"
}