Price quotes
POST /partner/v1/quote runs the same engine that prices the agency’s own
website. The quote you get is the quote a guest would pay — seasonal nightly
rates, cleaning fee, VAT, Tourism Dirham and any active promotion included.
Request
Section titled “Request”curl https://api.myrentalcalendar.com/partner/v1/quote \ -H "Authorization: Bearer $STAYOS_KEY" \ -H "Content-Type: application/json" \ -d '{ "unit": "marina-loft-2br", "arrival": "2026-09-10", "departure": "2026-09-14" }'Requires scope read:rates.
Response
Section titled “Response”{ "available": true, "instantBook": true, "currency": "AED", "quote": { "lines": [ { "kind": "nights", "label": "4 nights", "amount": 180000 }, { "kind": "cleaning", "label": "Cleaning fee", "amount": 25000 }, { "kind": "tourism_fee", "label": "Tourism Dirham", "amount": 8000 }, { "kind": "vat", "label": "VAT 5%", "amount": 10650 } ], "total": 223650 }, "nightlyRates": [ { "night": "2026-09-10", "price": 45000, "level": "low" } ], "promos": [], "totalBeforePromo": null}All amounts are integers in the currency’s minor unit (223650 = AED 2,236.50).
The exact line kinds vary with the agency’s configuration — render the lines
array as given instead of recomputing it.
available— the quote is calculated even when the dates clash, so you can show “these dates are taken, here is what a similar stay costs”. Check the flag before offering a booking.promos/totalBeforePromo— when a promotion applied,promosnames it andtotalBeforePromocarries the undiscounted engine total for a strike-through price. Without promotions it isnull.
Minimum stay
Section titled “Minimum stay”Too-short stays are rejected with 422 and the effective minimum for those
dates (seasonal rules can raise a unit’s base minimum):
{ "code": "MIN_STAY", "title": "Minimum stay is 4 nights", "minStay": 4 }