The price recommendations endpoint is the core of the RM API — it returns Wheelhouse's suggested nightly price for every day in a listing's pricing horizon. Use it to pull recommendations into your own dashboard, push prices to an external channel, or build automated pricing logic.
Pull daily price recommendations
curl "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/price_recommendations?channel=airbnb&attribution=false" \
-H "X-Integration-Api-Key: your_api_key_here"
Replace 12345678 with your listing_id and airbnb with your listing's channel.
Reading the response
A successful response returns a data array — one entry per day — along with base price information:
{
"data": [
{
"stay_date": "2026-03-20",
"price": 189,
"currency": "USD",
"min_stay": 2,
"custom_type": ""
},
{
"stay_date": "2026-03-21",
"price": 215,
"currency": "USD",
"min_stay": 2,
"custom_type": ""
}
],
"base_price": 175,
"base_price_recommended": 175,
"base_price_conservative": 158,
"base_price_aggressive": 193,
"global_min_stay": 2,
"automatic_rate_posting_enabled": true
}
Key fields:
stay_date— the date the price applies to (YYYY-MM-DD)price— Wheelhouse's recommended nightly ratecurrency— the currency of the pricemin_stay— minimum nights required for that datecustom_type— non-empty when a custom rate is overriding the recommendation (see Custom Rates for details)automatic_rate_posting_enabled— whether Wheelhouse is already auto-posting prices to the channel
Optional parameters
currency — Convert all prices to a specific currency before returning:
?channel=airbnb¤cy=EUR
attribution — Set to true to see a breakdown of what factors drove each day's price (seasonality, demand, day of week, etc.):
?channel=airbnb&attribution=true
Syncing across your portfolio
To sync recommendations for all your listings, first pull your full listing list, then loop through each listing_id + channel pair:
import requests
headers = {"X-Integration-Api-Key": "your_api_key_here"}
base_url = "https://api.usewheelhouse.com/ss_api/v1"
listings = requests.get(f"{base_url}/listings?exclude_inactive=true", headers=headers).json()
for listing in listings:
listing_id = listing["id"]
channel = listing["channel"]
recs = requests.get(
f"{base_url}/listings/{listing_id}/price_recommendations",
headers=headers,
params={"channel": channel, "attribution": "false"}
).json()
# process recs["data"] here
Next steps
How to read and update pricing preferences