Skip to main content

Custom Rates: Set and Delete Date-Specific Prices

Written by Ryo

Custom rates let you override Wheelhouse's price recommendations for specific date ranges. You can set a fixed nightly price or a percentage adjustment. Rates are applied per listing per channel and can be set per day of the week within the date range.


GET /listings/:listing_id/custom_rates

Get all active and upcoming custom rates for a listing. Expired rate periods are excluded.

curl "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/custom_rates?channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here"

Parameters

  • listing_id (string, path, required)

  • channel (string, query, required)

Response

Returns an array of rate_period_response objects. Each includes:

  • id — Wheelhouse's internal rate period ID

  • rate_type"fixed" or "adjustment"

  • currency — currency code (only for fixed rates)

  • start_date / end_date — the rate period dates (inclusive)

  • sunday through saturday — price or adjustment value for each day

  • expires_at — when the rate expires (null if it never expires)

  • created_at / updated_at — timestamps


PUT /listings/:listing_id/custom_rates

Create or replace a custom rate for a date range.

curl -X PUT "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/custom_rates?channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"start_date": "2026-08-01",
"end_date": "2026-08-31",
"rate_type": "fixed",
"currency": "USD",
"sunday": 180,
"monday": 150,
"tuesday": 150,
"wednesday": 150,
"thursday": 160,
"friday": 200,
"saturday": 220
}'
bash

Parameters

  • listing_id (string, path, required)

  • channel (string, query, required)

Request body fields

  • start_date (string, required) — start of the date range (YYYY-MM-DD)

  • end_date (string, required) — end of the date range (YYYY-MM-DD)

  • rate_type (string, required) — "fixed" for an absolute nightly price; "adjustment" for a percentage multiplier applied to Wheelhouse's recommendation

  • currency (string) — ISO-4217 currency code; required when rate_type is "fixed"

  • sunday through saturday (integer, min 1) — price or adjustment value per day of the week within the range

  • expires_at (string, optional) — ISO 8601 datetime; when set, the rate automatically expires at this time

For adjustment rates: per-day values are percentages where 100 = no change, 110 = +10%, 90 = −10%. Do not use raw percentages — 10 means 10% of the recommended price, not 10% above it.

If the new range overlaps an existing custom rate, the existing rate is shortened or split. Custom rates are not stacked — a new adjustment rate replaces any existing adjustment for the same dates.

Returns the created rate_period_response on success.


PUT /listings/:listing_id/bulk_custom_rates

Set multiple custom rates for a listing in one request.

curl -X PUT "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/bulk_custom_rates?channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"custom_rates": [
{
"start_date": "2026-12-23",
"end_date": "2026-12-26",
"rate_type": "fixed",
"currency": "USD",
"sunday": 350, "monday": 350, "tuesday": 350,
"wednesday": 350, "thursday": 350, "friday": 400, "saturday": 400
},
{
"start_date": "2026-12-31",
"end_date": "2027-01-01",
"rate_type": "fixed",
"currency": "USD",
"sunday": 450, "monday": 450, "tuesday": 450,
"wednesday": 450, "thursday": 450, "friday": 500, "saturday": 500
}
]
}'

Request body

  • custom_rates (array, required) — each item uses the same fields as the single PUT /custom_rates body

Status codes

  • 200 — all rates set successfully; response includes updated_custom_rates array

  • 207 — some rates succeeded, some failed; response includes both updated_custom_rates and errors

  • 424 — all rates failed; response includes errors


DELETE /listings/:listing_id/custom_rates

Delete all custom rates overlapping a date range. Returns 204 No Content on success.

curl -X DELETE "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/custom_rates?start_date=2026-08-01&end_date=2026-08-31&channel=airbnb" \
-H "X-Integration-Api-Key: your_api_key_here"

Query parameters

  • start_date (string, required) — start of the range to clear (YYYY-MM-DD, inclusive)

  • end_date (string, required) — end of the range to clear (YYYY-MM-DD, inclusive)

  • channel (string, required)

If a rate period extends beyond the deleted range on one side, it is truncated. If the deleted range falls in the middle of an existing period, that period is split into two. Deleted dates revert to Wheelhouse's recommendations.


DELETE /listings/:listing_id/bulk_custom_rates

Delete custom rates for multiple date ranges in one request.

curl -X DELETE "https://api.usewheelhouse.com/ss_api/v1/listings/12345678/bulk_custom_rates" \
-H "X-Integration-Api-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"channel": "airbnb",
"delete_ranges": [
{"start_date": "2026-08-01", "end_date": "2026-08-31"},
{"start_date": "2026-12-20", "end_date": "2026-12-28"}
]
}'

Request body

  • channel (string, optional) — channel name for this listing

  • delete_ranges (array, required) — each entry:

    • start_date (string, required) — inclusive start (YYYY-MM-DD)

    • end_date (string, required) — inclusive end (YYYY-MM-DD)

Status codes

  • 204 — all ranges deleted successfully

  • 207 — some deleted, some failed; response includes errors

  • 424 — all ranges failed

Related

How to set custom rates for specific dates

Did this answer your question?