Skip to main content

RM API behavior by listing plan, role, and MCP

How the Wheelhouse Revenue Management (RM) API behaves for each listing plan, each user access role, and through the Wheelhouse MCP server.

Written by Ryo

This guide explains how the Wheelhouse Revenue Management (RM) API behaves for each listing plan (Free, Pro Trial, Pro Flex, and Pro Flat), for each user access role, and through the Wheelhouse MCP server. It is written for Wheelhouse customers, developers building on the RM API, and support teams.

The Endpoint reference section lists every RM API endpoint with its MCP tool name and plan behavior.


Key Facts

  • A listing's plan changes only a few RM API endpoints: how far ahead price recommendations go, manual syncs, calendar day history, and market reports.

  • Pro Trial, Pro Flex, and Pro Flat behave the same in the RM API. Pro Flex and Pro Flat differ only in how the account is billed.

  • Free listings get price recommendations 30 days ahead by default. Pro listings get 18 months (545 days) ahead.

  • Free listings get the same KPIs and calendars as Pro listings.

  • Free and onboarding listings cannot run manual syncs. Pro listings have no daily limit on manual syncs.

  • Every RM API key is limited to 60 requests per minute, whatever the listing plan. Higher limits are available on request.

  • What a user can change depends on their access level on the listing and on whether their API key is read-only, not on the listing's plan.

  • The Wheelhouse MCP server uses the signed-in user's own RM API key, so it has the same access and the same rate limit.

How to read this guide

Endpoint: One specific call the RM API accepts, written as a method and a path, such as GET /listings. GET reads data. POST, PUT, and DELETE create, change, or remove data.

Pro: In this guide, "Pro" means Pro Trial, Pro Flex, and Pro Flat together.

Beta: The RM API is in beta and may change without notice.


Plan Tiers at a Glance

The GET /listings/{listing_id}/pricing_tier endpoint returns a listing's tier name and its horizon, the number of days of price recommendations Wheelhouse generates. It is the fastest way to confirm which plan a listing is on.

Free

Pro Trial

Pro Flex

Pro Flat

Pricing horizon

30 days by default, longer for some channel partners

18 months (545 days)

18 months (545 days)

18 months (545 days)

How a listing gets this plan

Default for newly connected listings, and where a listing goes when a trial ends

Set by Wheelhouse, not through the API. Moves to Free when the trial ends

Chosen by the account. Billed per automated booking

Chosen by the account. Billed a flat monthly fee per listing

Manual sync

Refused with 429

Allowed, no daily limit

Allowed, no daily limit

Allowed, no daily limit

Calendar day history

Refused with 402

Allowed, up to 180 days back

Allowed, up to 180 days back

Allowed, up to 180 days back

Market reports

Only for markets where the user also has a Pro listing

Available for markets with a Pro listing

Available for markets with a Pro listing

Available for markets with a Pro listing

KPIs and calendars

Full window, same as Pro

Full window

Full window

Full window

Pro Flex and Pro Flat behave the same in the RM API. They differ only in how the account is billed. When a Pro Trial ends, the listing moves to Free.

One other tier name can appear:

  • Pro Onboarding: A listing that is still being set up. It has Pro features except pricing automation, and it cannot run manual syncs.

Key terms: plan tiers

Listing plan (tier): The plan a single listing is on: Free, Pro Trial, Pro Flex, or Pro Flat. Plans belong to listings, not accounts, so one account can have listings on different plans.

Pricing horizon: How many days ahead, starting today, Wheelhouse generates price recommendations for a listing. Free listings get 30 days by default, and some channel partners give Free listings more. Pro listings get about 18 months (545 days).

Price recommendation: The nightly price the Wheelhouse Pricing Engine suggests for a future date.

Manual sync: A request to push a listing's latest price recommendations to its connected channel and refresh its reservations right away, like clicking Sync in the Wheelhouse app. It runs in the background.

Calendar day history: For one stay date, every price Wheelhouse posted and snapshots of that date's availability and booking state, up to 180 days back.

Market report: Data about a geographic area Wheelhouse tracks, called a market. Users see only the markets where they have at least one Pro listing.


Endpoints That Behave Differently by Plan

These are the only RM API endpoints whose behavior depends on the listing's plan. Pro Trial, Pro Flex, and Pro Flat all behave the same.

Endpoint

Free

Pro Trial

Pro Flex

Pro Flat

Notes

GET /listings/{listing_id}/price_recommendations

30 days by default

18 months

18 months

18 months

The data array always starts today. A Free listing returns fewer days. Some channel partners give Free listings a longer horizon.

GET /listings/{listing_id}/pricing_tier

Returns name and horizon

Returns name and horizon

Returns name and horizon

Returns name and horizon

Call this first when a question depends on the listing's plan.

POST /listings/{listing_id}/sync

Refused with 429

202 Accepted, queued

202 Accepted, queued

202 Accepted, queued

No daily limit for Pro. Each sync uses 3 to 4 API calls, which count toward the key's 60-requests-per-minute rate limit. A second sync for the same listing within 60 seconds returns 423.

GET /listings/{listing_id}/calendar_day_history

Refused with 402

Posted prices and calendar snapshots

Posted prices and calendar snapshots

Posted prices and calendar snapshots

Looks back at most 180 days.

GET /market_report and its bedroom_groups, time_series, and distribution endpoints

Only markets where the user has a Pro listing

Markets containing a Pro listing

Markets containing a Pro listing

Markets containing a Pro listing

Access is per market, not per listing. A market the user cannot access returns 404.

Endpoints With No Plan Difference

All other RM API endpoints behave the same on every plan. This includes KPIs, calendars, preferences and settings, custom rates, reservations, tags and flags, notes, notifications, webhooks, teams, segments, usage, and neighborhood pricing and occupancy. A Free listing gets the same calendar window as a Pro listing, about 18 months, with blank values on dates that have no data. Every KPI comes back for its full window on every plan. Only price recommendations stop at the Free pricing horizon.

Key terms: plan-based endpoints

KPI: A performance measure for a listing, such as occupancy or revenue.

Forward metric: A KPI about future dates, such as forward occupancy or revenue_score. Free listings get forward metrics for the full window, the same as Pro listings.

API calls per sync: Each manual sync makes 3 to 4 API calls behind the scenes, and every one counts toward the key's rate limit.

Sync lock: A short lockout that refuses a second sync for the same listing within 60 seconds, so duplicate jobs do not pile up.

Lookback: How far back in time a history request can reach. Calendar day history reaches back at most 180 days.

Market: A geographic area Wheelhouse tracks. Access to a market's reports depends on having a Pro listing in that market, not on any one listing's plan.


Roles and Access

Whether a user can make changes through the RM API depends on two things that are independent of the listing's plan: the user's access level on the listing, and whether their API key is read-only.

Listing Access Level

Every listing returned by GET /listings includes an access_level and an owner_user. Listings shared with the user appear alongside the listings they own.

access_level

Reads (GET)

Writes (PUT, POST, DELETE)

owner

Yes

Yes

manager

Yes

Yes

editor

Yes

Yes

restricted_editor

Yes

Yes, with two exceptions: tags can be read but not changed, and the batch PUT /preferences returns 403 for their listings. Use PUT /preferences/{listing_id} instead

viewer

Yes

No. Write endpoints return 403

API Key Type

A read-only API key can use GET, HEAD, and OPTIONS calls, and POST calls that only calculate a result, such as previews. PUT and DELETE calls return 403, and so do POST calls that create or change data, such as notes, segments, sets, webhooks, team invites, and syncs. This applies on top of the listing access level, so an owner with a read-only key still cannot make changes.

Team Members

A team owner sets each team member's auto_managed_listing_level: N disabled, R viewer, E restricted editor, F editor, or M manager. If no segments are assigned, the level applies to all of the owner's listings. Assigning portfolio segments limits the level to the listings in those segments. Team endpoints act on the authenticated user's own team, and a read-only key cannot invite, remove, or change team members.

Listing ID Type and Error Codes

When a listing is identified with channel=wheelhouse, a listing the user cannot access returns 404, the same as an ID that does not exist. When a listing is identified by its channel listing ID, the same situation returns 403. Access is the same either way.

Key terms: roles and access

Access level: What a user can do with one specific listing, shown as access_level on the listing. It is separate from the listing's plan.

Owner, manager, editor, restricted editor, and viewer: The five access levels. A viewer is fully read-only. A restricted_editor (Single Listing Editor in the Wheelhouse app) can change one assigned listing at a time and cannot change tags, in both the API and the app.

RM API key: A secret token sent with each RM API call that identifies the user. Users generate it in their Wheelhouse account under "Api Key".

Read-only key: An API key that can read data but not change it. It can use GET, HEAD, OPTIONS, and POST calls that only calculate something, such as a preview.

Preview: A POST call that calculates and returns what a change would do, without saving it.

Team owner and team member: The team owner is the main account holder. Team members are users the owner invites to work in the account. The RM API calls team members "sub users".

Portfolio segment: A saved filter that groups listings in the Wheelhouse app. A team member's access can be limited to specific segments.

Channel and listing ID: A channel is the booking platform or property management system a listing is connected to. Each listing has an ID on its channel and its own Wheelhouse ID, so API calls must say which one they use.


Dynamic Sets

Dynamic sets have their own free and paid plan, separate from listing plans. An account with only Pro Flat listings can still have a free set. Use is_paid on GET /sets to tell free and paid sets apart.

Endpoint

Free set

Paid set

GET /sets, GET /sets/{set_id}, GET /sets/candidates

Works

Works

PUT and DELETE on /sets/{set_id}/listings and /sets/{set_id}/associated_listings

Works

Works

POST /sets/{set_id}/share

Works

Works

GET /sets/{set_id}/aggregated_metrics, time_series, and distribution

404

Works

GET /sets/{set_id}/price_calendar

404

Works for sets of 25 or fewer member listings, otherwise 422

GET /sets/{set_id}/changelog

404

Works

POST /sets/{set_id}/upgrade

Buys the paid set plan

409, already paid

A 404 from a paid-only endpoint on a free set does not mean the set is missing. It means the feature needs a paid set.

Set Roles

Set access levels are R viewer, E restricted editor, F editor, M manager, and N disabled. Only the set owner or a set manager can share or upgrade a set. Changing a set's members requires editor or manager access, and read-only keys cannot make any change.

Upgrading a Set Is a Purchase

POST /sets/{set_id}/upgrade creates a paid subscription and charges the billable user's payment method. It returns 402 when no valid payment method is on file or the charge fails. Any read/write key can call it, including an MCP session, so confirm with the account holder before calling it.

Key terms: dynamic sets

Dynamic set: A saved group of listings used to compare performance. Each set has its own free or paid plan, separate from any listing's plan.

KPI data: Performance measures such as occupancy and revenue. Only paid sets return KPI data.

Aggregated metrics: Monthly performance figures combined across the set's active listings.

Upgrade: Changes a free set to a paid set and starts a paid subscription.

Billable user: The user whose payment method is charged when a set is upgraded.


Common Errors

Most plan and permission limits show up as an HTTP status code. The same code can mean a plan limit on one endpoint and something unrelated on another.

Code

Plan-related meaning

Other common meanings

402

Calendar day history on a Free listing

Set upgrade with no valid payment method

403

None

Listing not accessible, a viewer trying to write, or a read-only key trying to write

404

Paid-only endpoint on a free dynamic set. Market report for a market without a Pro listing

Listing not found. With channel=wheelhouse, a listing outside the user's portfolio

406

None

Neighborhood endpoints on an inactive listing

409

None

Another write is in progress for the same listing or set. Retry

422

None

Listing not in a market Wheelhouse covers (recommendations, preview, base price, neighborhood). Set price calendar with more than 25 member listings

423

None

Recommendations or preferences still generating. A second sync for the same listing within 60 seconds

429

Manual sync on a Free or onboarding listing

More than 60 requests per minute on the key. Check the Retry-After header

207 / 424

None

Batch writes where some (207) or all (424) items failed

204

None

No check-in and check-out settings, or not enough market data. Not an error

A 429 on a manual sync can mean either "not available on this plan" for a Free or onboarding listing, or "too many requests" for any listing. Check the listing's plan first.

Key terms: errors

Status code: A three-digit number returned with every API response. Codes starting with 2 mean success. Codes starting with 4 mean the request was refused or could not be completed.

Rate limit: The number of requests one API key can make in a rolling minute: 60 for every key, whatever the listing plan. Higher limits are available on request. Each response reports how many requests remain, and a 429 response includes Retry-After, the number of seconds to wait.

Batch write: One request that changes several items at once. 207 means some items succeeded and some failed. 424 means all items failed.

Payment Required (402): The feature needs a Pro plan, or a purchase could not be charged.

Locked (423): The item is busy or not ready yet. Retrying after a short wait usually works.


Using the RM API Through the Wheelhouse MCP Server

The Wheelhouse MCP server gives AI assistants access to the same RM API, so every plan limit in this guide applies in the same way. What differs is how the user signs in and how the tools are named.

Sign-in and Access

Users connect the MCP server by signing in to their Wheelhouse account with OAuth. The server then uses that user's own RM API key for every RM API call. That key can read and write, so an MCP session is never read-only. The user's access level on each listing still applies: a viewer gets 403 on any write.

Tool Names and Endpoints

Each MCP tool name is the endpoint's operation ID with a wheelhouse_ prefix. For example, wheelhouse_rmGetListingPricingTier calls GET /listings/{listing_id}/pricing_tier. The /mcp endpoint exposes the tools directly. The beta /mcp/beta endpoint uses Code Mode, where an assistant finds tools with search and get_schema and runs them inside execute.

Behaviors to Know

  • Check the plan first. The MCP server does not check plans itself. Call wheelhouse_rmGetListingPricingTier before explaining a short or empty response.

  • Rate limit. MCP calls count toward the same 60 requests per minute as the user's RM API key. For portfolio-wide questions, GET /listings/kpis ranks every listing on one metric in a single call. Wait and retry after a 429.

  • Market reports. Use the market_id values returned by wheelhouse_rmGetMarketReport, which lists only markets with a Pro listing. A listing's own market_id can return 404 on the market report tools.

  • Batch preferences. wheelhouse_rmGetPreferencesBatch needs listing_ids. Without them it returns an empty list, which can look like missing data.

  • Rule lists are replaced, not merged. Sending a partial minimum_stay_rules_v3 or custom_date_ranges list deletes the rules left out. Read the current rules, merge, preview, and then write.

  • Purchases. wheelhouse_rmUpgradeSet charges a payment method. Confirm with the account holder before calling it.

  • Two listing ID types. A listing id must be sent with its channel. A wheelhouse_id must be sent with channel=wheelhouse. Mixing them up returns 404, and with channel=wheelhouse a 404 means the listing is not in the user's portfolio, not that it does not exist.

  • Tags. wheelhouse_rmPutTags creates imported tags only. Overwriting does not remove tags that users created in the Wheelhouse app.

  • Long lists. Results come in pages of up to 100 items. Request every page before concluding that a listing is missing.

Key terms: MCP

MCP (Model Context Protocol) server: A connector that lets AI assistants, such as Claude, use the RM API on a user's behalf.

OAuth: A sign-in flow where the user logs in with their Wheelhouse account through the AI assistant, so no API key is pasted anywhere.

Tool: One action an AI assistant can take through MCP. Each tool maps to one RM API endpoint.

Operation ID: The unique name the RM API specification gives an endpoint, such as rmGetListings.

Code Mode: How the beta /mcp/beta endpoint works. The assistant searches for tools and runs several in one step instead of calling them one at a time.

Pagination: Returning a long list in pages of up to 100 items. A caller keeps requesting pages until one returns fewer items than the page size.

Preferences and rules: Settings and rules that control how Wheelhouse prices a listing, such as minimum stays or seasonal adjustments.

Imported tag: A tag created through an integration, as opposed to one a user created in the Wheelhouse app.


Troubleshooting

Start with two checks: the listing's plan from GET /listings/{listing_id}/pricing_tier, and the user's access_level from GET /listings.

What you see

Likely cause

What to check

Price recommendations end after about a month

Free listing with the default 30-day pricing horizon

pricing_tier returns Free and a horizon of 30

A manual sync returns 429

Free or onboarding listing, or the key went over 60 requests per minute. Each sync uses 3 to 4 calls

The listing's plan first. If it is Pro, check Retry-After and how many calls the key made in the last minute

A manual sync returns 423

A sync for the same listing ran in the last 60 seconds

Wait 60 seconds and retry once

Calendar day history returns 402

The listing is on Free

pricing_tier

The market report list is empty, or a market returns 404

No Pro listing in that market

GET /market_report for the markets the user can access

Dynamic set metrics, price calendar, or changelog return 404

The set is free

is_paid on GET /sets

Writes return 403 for the account owner

A read-only API key, or the listing is shared with the user as viewer

The key type and the listing's access_level. MCP sessions are never read-only

A restricted editor's change is refused

The call changes several listings, or it changes tags

Send one call per listing. Changing tags needs editor access or higher

A setting was accepted but nothing changed

The listing's channel does not support that setting. This is unrelated to plan

warnings on the write response and supported_settings on the listing

Price recommendations return 422

The listing is not in a market Wheelhouse covers. This is unrelated to plan

The listing's location and market_id

A Pro Trial listing returns 18 months of prices

Expected. Pro Trial has the same pricing horizon as other Pro plans

pricing_tier returns Pro Trial and a horizon of 545

A listing seems to be missing over MCP

The listing is not in the user's portfolio, or only the first page of listings was read

Read every page of wheelhouse_rmGetListings

Key terms: troubleshooting

Covered market: A location where Wheelhouse generates prices. Listings outside a covered market get 422 on price recommendations.

supported_settings: A field on each listing that shows which settings its channel supports.

warnings: Messages returned with a write, such as a setting the channel ignored.


Frequently Asked Questions

Do Pro Flex and Pro Flat listings behave differently in the RM API?

No. Pro Flex and Pro Flat listings have the same features, limits, and API behavior. They differ only in how the account is billed: Pro Flex is billed per automated booking, and Pro Flat is billed a flat monthly fee per listing.

How far ahead does the RM API return price recommendations?

Free listings get 30 days by default, and some channel partners give Free listings more. Pro Trial, Pro Flex, and Pro Flat listings get 18 months (545 days). GET /listings/{listing_id}/pricing_tier returns the exact horizon for a listing.

Can a Free listing run a manual sync through the RM API?

No. POST /listings/{listing_id}/sync returns 429 for Free and onboarding listings. In the Wheelhouse app, the Sync button asks these users to upgrade.

Is there a daily limit on manual syncs for Pro listings?

No. Pro Trial, Pro Flex, and Pro Flat listings can sync as often as needed. Each sync uses 3 to 4 API calls that count toward the key's 60-requests-per-minute rate limit, and a second sync for the same listing within 60 seconds returns 423.

Do Free listings get KPIs and calendars?

Yes. Free listings get every KPI, including forward metrics such as forward occupancy and revenue_score, for the full window. The price, last-posted-price, fee-impact, and minimum-stay calendars return about 18 months for every plan. Only price recommendations are limited by the Free pricing horizon.

What happens when a Pro Trial ends?

The listing moves to Free. Its price recommendations return to the Free pricing horizon, and manual syncs and calendar day history stop being available.

What is the RM API rate limit?

Every RM API key can make 60 requests per minute, whatever the listing plan. A request over the limit returns 429 with a Retry-After header. Higher limits are available on request.

Does the Wheelhouse MCP server have its own rate limit?

No. The MCP server uses the signed-in user's own RM API key, so MCP calls count toward that key's 60 requests per minute.

Can a restricted editor make changes through the RM API?

Yes, with the same limits as the Single Listing Editor role in the Wheelhouse app. A restricted editor can read and write the listing itself, including several custom rates on one listing in one call. They can read tags but not change them, and the batch PUT /preferences returns 403 for their listings. Use PUT /preferences/{listing_id} for those instead.

Why does a market report return 404?

Market reports are available only for markets where the user has at least one Pro listing. Use the market IDs returned by GET /market_report.

Why does a dynamic set endpoint return 404 when the set exists?

Aggregated metrics, time series, distribution, price calendar, and changelog are available only on paid sets. Check is_paid on GET /sets, and upgrade the set with POST /sets/{set_id}/upgrade if needed.


Endpoint Reference

This section lists all 93 operations in the RM API specification (version 1.0, beta), grouped by area, with the MCP tool name for each.

  • Plan columns show what each plan gets from the endpoint. "No difference" means the endpoint behaves the same on every plan. "Set plan decides" means the dynamic set's own free or paid plan applies instead of the listing's plan.

  • Blocked for lists who gets 403 on that call: read-only keys, listing viewers, restricted editors, or set members below the required role. "None" means the call is a read and is open to every role.

  • MCP tool is the name an AI assistant uses to call the endpoint through the Wheelhouse MCP server.

Filter endpoints

93 endpoints

Listings endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /listings

wheelhouse_rmGetListings

No difference

No difference

No difference

No difference

None

GET /listings/kpis

wheelhouse_rmGetBulkListingKpis

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}

wheelhouse_rmGetListing

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}/pricing_tier

wheelhouse_rmGetListingPricingTier

Returns tier and horizon

Returns tier and horizon

Returns tier and horizon

Returns tier and horizon

None

GET /listings/{listing_id}/recent_changes

wheelhouse_rmGetListingRecentChanges

No difference

No difference

No difference

No difference

None

POST /listings/{listing_id}/sync

wheelhouse_rmPostListingSync

Refused with 429

202 queued, no daily limit

202 queued, no daily limit

202 queued, no daily limit

Read-only key; viewer

GET /listings/{listing_id}/kpis

wheelhouse_rmGetListingKpis

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}/kpis/monthly

wheelhouse_rmGetListingKpisMonthly

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}/kpis/quarterly

wheelhouse_rmGetListingKpisQuarterly

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}/kpis/yearly

wheelhouse_rmGetListingKpisYearly

No difference

No difference

No difference

No difference

None

Recommendations endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /listings/{listing_id}/price_recommendations

wheelhouse_rmGetPriceRecommendations

30 days by default

18 months

18 months

18 months

None

POST /preferences/{listing_id}/preview

wheelhouse_rmPreviewPreferences

No difference

No difference

No difference

No difference

None. Allowed for read-only keys

GET /listings/{listing_id}/base_price_recommendation

wheelhouse_rmGetBasePriceRecommendation

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}/checkin_checkout

wheelhouse_rmGetCheckinCheckout

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}/min_max_prices

wheelhouse_rmGetMinMaxPrices

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}/monthly_seasonality

wheelhouse_rmGetMonthlySeasonality

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}/base_price_history

wheelhouse_rmGetBasePriceHistory

No difference

No difference

No difference

No difference

None

Listing Preferences endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /preferences

wheelhouse_rmGetPreferencesBatch

No difference

No difference

No difference

No difference

None

PUT /preferences

wheelhouse_rmPutPreferencesBatch

No difference

No difference

No difference

No difference

Read-only key; viewer; restricted editor when the call spans several listings

GET /preferences/{listing_id}

wheelhouse_rmGetPreferences

No difference

No difference

No difference

No difference

None

PUT /preferences/{listing_id}

wheelhouse_rmPutPreferences

No difference

No difference

No difference

No difference

Read-only key; viewer

PUT /preferences/{listing_id}/copy

wheelhouse_rmCopyPreferences

No difference

No difference

No difference

No difference

Read-only key; viewer

PUT /preferences/{listing_id}/{setting}

wheelhouse_rmPutPreferenceSetting

No difference

No difference

No difference

No difference

Read-only key; viewer

GET /preferences/{listing_id}/long_term_discounts

wheelhouse_rmGetLongTermDiscounts

No difference

No difference

No difference

No difference

None

GET /preferences/{listing_id}/changelog

wheelhouse_rmGetPreferencesChangelog

No difference

No difference

No difference

No difference

None

Custom Rates endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /listings/{listing_id}/custom_rates

wheelhouse_rmGetCustomRates

No difference

No difference

No difference

No difference

None

PUT /listings/{listing_id}/custom_rates

wheelhouse_rmPutCustomRate

No difference

No difference

No difference

No difference

Read-only key; viewer

DELETE /listings/{listing_id}/custom_rates

wheelhouse_rmDeleteCustomRate

No difference

No difference

No difference

No difference

Read-only key; viewer

PUT /listings/{listing_id}/bulk_custom_rates

wheelhouse_rmBulkPutCustomRates

No difference

No difference

No difference

No difference

Read-only key; viewer

DELETE /listings/{listing_id}/bulk_custom_rates

wheelhouse_rmBulkDeleteCustomRates

No difference

No difference

No difference

No difference

Read-only key; viewer

Reservations endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /listings/{listing_id}/reservations

wheelhouse_rmGetReservations

No difference

No difference

No difference

No difference

None

Listing Tags endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /listings/{listing_id}/tags

wheelhouse_rmGetTags

No difference

No difference

No difference

No difference

None

PUT /listings/{listing_id}/tags

wheelhouse_rmPutTags

No difference

No difference

No difference

No difference

Read-only key; viewer; restricted editor

Listing Flags endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /listings/{listing_id}/flags

wheelhouse_rmGetFlags

No difference

No difference

No difference

No difference

None

Calendar endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /listings/{listing_id}/price_calendar

wheelhouse_rmGetPriceCalendar

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}/last_posted_prices

wheelhouse_rmGetLastPostedPrices

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}/calendar_day_history

wheelhouse_rmGetCalendarDayHistory

Refused with 402

Works, 180-day lookback

Works, 180-day lookback

Works, 180-day lookback

None

GET /listings/{listing_id}/fee_impact_calendar

wheelhouse_rmGetFeeImpactCalendar

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}/min_stay_calendar

wheelhouse_rmGetMinStayCalendar

No difference

No difference

No difference

No difference

None

Market Reports endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /market_report

wheelhouse_rmGetMarketReport

Only markets with a Pro listing

Available

Available

Available

None

GET /market_report/{market_id}/bedroom_groups

wheelhouse_rmGetMarketBedroomGroups

Only markets with a Pro listing

Available

Available

Available

None

GET /market_report/{market_id}/time_series

wheelhouse_rmGetMarketTimeSeries

Only markets with a Pro listing

Available

Available

Available

None

GET /market_report/{market_id}/distribution

wheelhouse_rmGetMarketDistribution

Only markets with a Pro listing

Available

Available

Available

None

Segments endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /segments

wheelhouse_rmGetSegments

No difference

No difference

No difference

No difference

None

POST /segments

wheelhouse_rmPostSegments

No difference

No difference

No difference

No difference

Read-only key

PUT /segments/{segment_id}

wheelhouse_rmPutSegment

No difference

No difference

No difference

No difference

Read-only key

GET /segments/{segment_id}/listings

wheelhouse_rmGetSegmentListings

No difference

No difference

No difference

No difference

None

GET /segments/{segment_id}/aggregated_metrics

wheelhouse_rmGetSegmentAggregatedMetrics

No difference

No difference

No difference

No difference

None

Neighborhood Data endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /listings/{listing_id}/neighborhood/pricing

wheelhouse_rmGetNeighborhoodPricing

No difference

No difference

No difference

No difference

None

GET /listings/{listing_id}/neighborhood/occupancy

wheelhouse_rmGetNeighborhoodOccupancy

No difference

No difference

No difference

No difference

None

Dynamic Sets endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /sets

wheelhouse_rmGetSets

No difference

No difference

No difference

No difference

None

POST /sets

wheelhouse_rmCreateSet

No difference

No difference

No difference

No difference

Read-only key

GET /sets/candidates

wheelhouse_rmGetSetCandidates

No difference

No difference

No difference

No difference

None

GET /sets/{set_id}

wheelhouse_rmGetSet

No difference

No difference

No difference

No difference

None

POST /sets/{set_id}/upgrade

wheelhouse_rmUpgradeSet

Set plan purchase, not listing plan

Set plan purchase, not listing plan

Set plan purchase, not listing plan

Set plan purchase, not listing plan

Read-only key; set non-owner or non-manager

GET /sets/{set_id}/aggregated_metrics

wheelhouse_rmGetSetAggregatedMetrics

Set plan decides, not listing plan

Set plan decides, not listing plan

Set plan decides, not listing plan

Set plan decides, not listing plan

None

GET /sets/{set_id}/listings

wheelhouse_rmGetSetListings

No difference

No difference

No difference

No difference

None

PUT /sets/{set_id}/listings

wheelhouse_rmPutSetListings

No difference

No difference

No difference

No difference

Read-only key; set access below editor

DELETE /sets/{set_id}/listings

wheelhouse_rmDeleteSetListings

No difference

No difference

No difference

No difference

Read-only key; set access below editor

GET /sets/{set_id}/associated_listings

wheelhouse_rmGetSetAssociatedListings

No difference

No difference

No difference

No difference

None

PUT /sets/{set_id}/associated_listings

wheelhouse_rmPutSetAssociatedListings

No difference

No difference

No difference

No difference

Read-only key; set access below editor

DELETE /sets/{set_id}/associated_listings

wheelhouse_rmDeleteSetAssociatedListings

No difference

No difference

No difference

No difference

Read-only key; set access below editor

GET /sets/{set_id}/price_calendar

wheelhouse_rmGetSetPriceCalendar

Set plan decides, not listing plan

Set plan decides, not listing plan

Set plan decides, not listing plan

Set plan decides, not listing plan

None

GET /sets/{set_id}/changelog

wheelhouse_rmGetSetChangelog

Set plan decides, not listing plan

Set plan decides, not listing plan

Set plan decides, not listing plan

Set plan decides, not listing plan

None

POST /sets/{set_id}/share

wheelhouse_rmShareSet

No difference

No difference

No difference

No difference

Read-only key; set non-owner or non-manager

GET /sets/{set_id}/time_series

wheelhouse_rmGetSetTimeSeries

Set plan decides, not listing plan

Set plan decides, not listing plan

Set plan decides, not listing plan

Set plan decides, not listing plan

None

GET /sets/{set_id}/distribution

wheelhouse_rmGetSetDistribution

Set plan decides, not listing plan

Set plan decides, not listing plan

Set plan decides, not listing plan

Set plan decides, not listing plan

None

Notes endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /listings/{listing_id}/notes

wheelhouse_rmGetNotes

No difference

No difference

No difference

No difference

None

POST /listings/{listing_id}/notes

wheelhouse_rmPostNote

No difference

No difference

No difference

No difference

Read-only key; viewer

PUT /listings/{listing_id}/notes/{note_id}

wheelhouse_rmPutNote

No difference

No difference

No difference

No difference

Read-only key; viewer

DELETE /listings/{listing_id}/notes/{note_id}

wheelhouse_rmDeleteNote

No difference

No difference

No difference

No difference

Read-only key; viewer

Notifications endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /notifications

wheelhouse_rmGetNotifications

No difference

No difference

No difference

No difference

None

POST /notifications/dismiss

wheelhouse_rmDismissNotifications

No difference

No difference

No difference

No difference

Read-only key

GET /notification_settings

wheelhouse_rmGetNotificationSettings

No difference

No difference

No difference

No difference

None

PUT /notification_settings

wheelhouse_rmUpdateNotificationSettings

No difference

No difference

No difference

No difference

Read-only key

Webhooks endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /webhook_events

wheelhouse_rmGetWebhookEvents

No difference

No difference

No difference

No difference

None

GET /webhooks

wheelhouse_rmGetWebhooks

No difference

No difference

No difference

No difference

None

POST /webhooks

wheelhouse_rmCreateWebhook

No difference

No difference

No difference

No difference

Read-only key

GET /webhooks/{id}

wheelhouse_rmGetWebhook

No difference

No difference

No difference

No difference

None

PUT /webhooks/{id}

wheelhouse_rmUpdateWebhook

No difference

No difference

No difference

No difference

Read-only key

DELETE /webhooks/{id}

wheelhouse_rmDeleteWebhook

No difference

No difference

No difference

No difference

Read-only key

POST /webhooks/{id}/rotate_secret

wheelhouse_rmRotateWebhookSecret

No difference

No difference

No difference

No difference

Read-only key

GET /webhooks/{id}/deliveries

wheelhouse_rmGetWebhookDeliveries

No difference

No difference

No difference

No difference

None

Teams endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /teams/members

wheelhouse_rmGetTeamMembers

No difference

No difference

No difference

No difference

None

POST /teams/members/invite

wheelhouse_rmPostTeamMemberInvite

No difference

No difference

No difference

No difference

Read-only key

DELETE /teams/members/{sub_user_id}

wheelhouse_rmDeleteTeamMember

No difference

No difference

No difference

No difference

Read-only key

POST /teams/members/{sub_user_id}/auto_managed_listing_level

wheelhouse_rmPostTeamMemberAutoManagedListingLevel

No difference

No difference

No difference

No difference

Read-only key

POST /teams/members/{sub_user_id}/assigned_segments

wheelhouse_rmPostTeamMemberAssignedSegments

No difference

No difference

No difference

No difference

Read-only key

POST /teams/members/{sub_user_id}/refresh_auto_managed_listings

wheelhouse_rmPostTeamMemberRefreshAutoManagedListings

No difference

No difference

No difference

No difference

Read-only key

GET /teams/memberships

wheelhouse_rmGetTeamMemberships

No difference

No difference

No difference

No difference

None

POST /teams/memberships/{master_user_id}

wheelhouse_rmPostTeamMembership

No difference

No difference

No difference

No difference

Read-only key

DELETE /teams/memberships/{master_user_id}

wheelhouse_rmDeleteTeamMembership

No difference

No difference

No difference

No difference

Read-only key

Usage endpoints

Endpoint

MCP tool

Free

Pro Trial

Pro Flex

Pro Flat

Blocked for

GET /usage

wheelhouse_rmGetUsage

No difference

No difference

No difference

No difference

None


Related Resources

The RM API is in beta and may change without notice. This guide describes RM API behavior as of October 2026.

Did this answer your question?