Listing Preferences
Read and update detailed pricing preferences for listings, including base price, seasonality, discounts, min stay rules, and more.
Note: These preferences are called "Settings" in the Wheelhouse app.
Settings your channel may not support
Not every channel can act on every setting. Some have no concept of check-in/check-out day rules, some cannot take minimum stays, and support for long-term discounts ranges from none at all, through fixed weekly and monthly tiers, to arbitrary ones. Which settings a listing accepts therefore depends on the channel it is connected to.
A setting the channel cannot act on is not applied — it is discarded rather than stored, so it never appears to have taken effect. The rest of the request still applies, and the response is still a success.
Each listing reports what it accepts as supported_settings, on both the listing object and the preferences object. Read it before sending a setting rather than after: a setting reported false will be discarded. It reflects any per-account early access, so two listings on the same channel can differ.
Every write also returns warnings, naming each setting that was not applied, why, and which attributes it covered. The array is present and empty when everything applied, so it can be read unconditionally. reason is not_supported_by_channel when the channel has no such feature, or partially_supported_by_channel when it accepts a narrower form than what was sent and only the excess was dropped.
UI settings panel groups
The Wheelhouse Settings panel organizes preferences into labeled groups. The table below maps each group to its corresponding API fields.
| UI Group | UI Setting Name | API Field(s) |
|---|---|---|
| Pricing Engine | Base price | base_price, base_price_adjustment |
| Pricing Engine | Seasonality | seasonality_adjustment |
| Pricing Engine | Day of week | day_of_week |
| Pricing Engine | Last minute | last_minute_discount |
| Pricing Engine | Far future | far_future_premium |
| Pricing Engine | Gaps & Adjacencies | gap_night |
| Model Weights | Demand sensitivity | demand_sensitivity_rules |
| Model Weights | Historical anchoring | historical_anchoring_rules |
| Limits | Maximum prices | maximum_price_rules_v3 |
| Limits | Minimum prices | minimum_price_rules_v3, min_min_price |
| Operations | Minimum stays | minimum_stay_rules_v3, min_min_stay |
| Operations | Length of stay pricing | long_term_discounts, weekly_discount, monthly_discount |
| Calendar Pacing | Occupancy pacing | occupancy_pacing |
| Configuration | Events & Seasons | custom_date_ranges |
Retrieve preferences for a batch of listings.
Retrieve preferences for a batch of listings.
Update preferences for a batch of listings.
Updates pricing preferences for multiple listings in one request.
Get preferences for a listing.
Get preferences for a listing.
Update preferences for a listing.
Updates pricing preferences for a listing.
Copy preferences from one listing to another.
Copies the preferences (and optionally custom rates) from a source listing to the target listing. **This is a destructive action** — it will overwrite the target listing's existing preferences.
Update a single pricing setting for a listing.
Updates one of the following settings to a preset level (conservative/recommended/aggressive), or toggles automatic rate posting on/off.
Get the long-term discount settings for a listing.
This endpoint can be used to fetch weekly and monthly discounts set up through Wheelhouse for a listing.
Get the recent changelog of all changes to a listing.
Returns a list of recent change events for the listing, most recent first. Despite sitting under `/preferences`, the changelog is not limited to preference changes: it is the single history of everything recorded against the listing. It covers changes to the pricing settings, prices posted to the channel and any post or calendar sync that failed, custom rates added, split or removed, a change of pricing engine, and reservations imported for the listing. Read `event` on each entry to tell them apart. Custom rate history is therefore read from here rather than from the Custom Rates endpoints, which report the rates currently in force.