Minimum Stays¶
| Endpoint | Method | Scope | Description |
|---|---|---|---|
/api/v1/listings/<id>/customizations/min-stays/ |
GET | listings:read |
Get min-stays customization for a listing |
/api/v1/listings/<id>/customizations/min-stays/ |
PATCH | listings:write |
Update min-stays customization for a listing |
Try it out
Explore schemas and live requests in the Swagger UI.
Part of Listing Customizations: its conventions and errors apply to every customization type.
Use min-stays to manage minimum-night requirements for a listing. This
customization supports a combination of year-round defaults, weekday overrides,
seasonal rules, lead-time rules, and gap-fill behavior.
Minimum stays are applied in the following order:
- Seasonal Time-Based Minimum Stays
- Time-Based Minimum Stays
- Seasonal Minimum Stays
- Day of Week Minimum Stays
- Annual Minimum Stays
Gap fills apply across minimum stay rules to help protect short orphan gaps in availability.
A GET returns every rule family. Unconfigured families come back as empty
lists. This example shows each family configured:
{
"data": {
"type": "min-stay-customizations",
"id": "123",
"attributes": {
"min-stay": 2,
"gap-fill-min-stay": {"enabled": true, "gaps": 3, "buffer": 1},
"seasonal-min-stays": [
{"start-date": "2026-12-20", "end-date": "2027-01-05",
"rollover": true, "min-stay": 5, "min-stay-locked": false}
],
"last-minute-min-stays": [
{"days-away": 7, "direction": "within", "min-stay": 1}
],
"day-of-week-min-stays": [
{"weekday": "monday", "min-stay": null},
{"weekday": "tuesday", "min-stay": null},
{"weekday": "wednesday", "min-stay": null},
{"weekday": "thursday", "min-stay": null},
{"weekday": "friday", "min-stay": 2},
{"weekday": "saturday", "min-stay": 2},
{"weekday": "sunday", "min-stay": null}
],
"seasonal-day-of-week-min-stays": [
{"start-date": "2026-08-28", "end-date": "2026-08-30",
"rollover": false,
"min-stays": [
{"weekday": "monday", "min-stay": null},
{"weekday": "tuesday", "min-stay": null},
{"weekday": "wednesday", "min-stay": null},
{"weekday": "thursday", "min-stay": null},
{"weekday": "friday", "min-stay": null},
{"weekday": "saturday", "min-stay": null},
{"weekday": "sunday", "min-stay": 2}
]}
],
"seasonal-gap-fill-min-stays": [
{"start-date": "2026-07-01", "end-date": "2026-07-31",
"rollover": true,
"gap-fill-min-stay": {"enabled": true, "gaps": 1, "buffer": 2}}
],
"seasonal-time-based-min-stays": [
{"start-date": "2027-01-01", "end-date": "2027-01-22",
"rollover": false, "exclude": false,
"time-based-min-stays": [
{"days-away": 3, "direction": "within", "min-stay": 2}
]},
{"start-date": "2027-04-01", "end-date": "2027-04-15",
"rollover": false, "exclude": true}
]
}
}
}
Annual Minimum Stay¶
Use min-stay to set the default minimum stay across all dates, except where a
day-of-week or seasonal rule overrides it. We recommend setting this to the
shortest minimum stay you would accept during lower-demand periods.
If the annual minimum stay is left blank, it defaults to a 1-night stay.
Annual Minimum Stays By Day Of Week¶
Use day-of-week-min-stays to set year-round minimum stays for specific
weekdays. These values take precedence over the annual minimum stay. Days set to
null inherit the annual minimum stay value.
Seasonal Minimum Stays By Day Of Week¶
Use seasonal-day-of-week-min-stays to set weekday minimum stays for a date
range. Each entry carries a min-stays list with all seven weekdays; days set
to null fall back to the lower-precedence rules. Seasonal weekday minimum
stays override annual rules and annual weekday rules for their date range. They
are still superseded by seasonal minimum stays, time-based minimum stays, and
gap-fill rules.
Seasonal Minimum Stays¶
Use seasonal-min-stays to create date-range specific rules for holidays,
events, or other periods of predictable demand. Set rollover to true to
repeat the rule every year on the same dates; a repeating range must be shorter
than one year. Set min-stay-locked to true to protect the value from
automatic changes. These rules override annual and day-of-week minimum
stays, but time-based minimum stays and gap fills still take precedence.
Time-Based Minimum Stays¶
Use last-minute-min-stays to set a minimum stay based on how far away a
booking is from today. Each rule carries days-away, a direction (within
for dates within that many days, after for dates at least that many days
away), and the min-stay to require. These rules take precedence over seasonal
minimum stays.
Seasonal Time-Based Minimum Stays¶
Use seasonal-time-based-min-stays to tailor lead-time rules to specific date
ranges so minimum-night requirements can vary by season. Each entry lists its
own rules under time-based-min-stays, using the same shape as
last-minute-min-stays. Set exclude to true to turn lead-time rules off for
the range; an excluding entry carries no time-based-min-stays list.
Gap Fill Minimum Stays¶
Gap-fill settings apply minimum-stay protections around short openings between
bookings. Use gap-fill-min-stay for the year-round setting and
seasonal-gap-fill-min-stays for date-range overrides; a seasonal entry wraps
its own gap-fill-min-stay object. gaps is the longest opening, in nights,
that triggers the rule, and buffer adds extra nights around the gap that still
count toward the rule.