Skip to content

Connect your AI tool

Connect your AI tool to ask questions about your Rentametrix properties.

https://api.rentametrix.com/mcp

No API key. You sign in with your Rentametrix login.

  • An invited Rentametrix account that can sign in to the app.
  • AI connector access is turned on for you. Your account admin asks Rentametrix to turn it on; there is no switch for it in the app yet.
  • A client from the list below.

Claude needs a paid plan. ChatGPT needs developer mode on a Plus, Pro, Business, Enterprise, or Edu plan. A workspace admin may need to allow it.

Client menus change over time. Each tab links to the vendor’s setup guide.

  1. On ChatGPT web, open Settings > Apps and Connectors > Advanced settings. Turn on Developer mode.
  2. Choose Create app or Create connector. Name it Rentametrix and enter https://api.rentametrix.com/mcp as the MCP server URL.
  3. Choose OAuth authentication. Leave the client ID empty. Click Connect.

A browser window opens. Sign in with your Rentametrix login. Click Allow.

  1. In a chat, add Rentametrix from the tools menu.

ChatGPT setup guide

Your client lists Rentametrix tools. Ask:

List my authorized Rentametrix properties.

Approve the tool call the first time.

Leasing pace and prelease

Compare leasing pace and prelease estimates for your properties.

Rates and rate tiers

Review rates, tier ladders, and rate schedules.

Market and comps

Compare your property’s position with its market and competitors.

Leases and renewals

Check lease trends and renewal rates by season.

Your client sees four tools: search_tools, describe_tool, describe_bundle, and invoke_tool. Behind them are the data tools below. What you can use depends on what your admin granted. If nothing is granted yet, search_tools returns an empty list; ask your admin. The API overview explains the four tools.

Context

ToolWhat it doesAccess needed
context.list_authorized_resourcesList a bounded page of resources authorized for this request. The result contains usable resource identities and no grant metadata.Read, resident data access
context.resolve_authorized_resourceResolve one authorized resource by exact name or canonical ID. Unauthorized and nonexistent resources return the same safe result.Read, resident data access

Leasing

ToolWhat it doesAccess needed
leasing.get_floorplan_renewal_rateGet minimized renewal rates by floor-plan type for an exact authorized property and season.Read, resident data access
leasing.get_renewal_rateGet the season's renewal reading for one authorized property and lease season, every figure on a named population: renewals and new leases executed season to date (with the executed renewal percentage), renewals committed but not yet executed (pending), committed renewals and committed leases, the prior season's expiring book as the renewal-rate denominator with that season's name, and the latest week's executed and pending renewal activity as a separate block. Counts are read off the season's bed placements through its as-of date, grouped by lease origination type, the same population the flight-path contract uses. Renewals and new leases are counted separately at the source; neither is derived by subtracting the other from a total, and a season whose renewals are all still pending is a readable population, not a gap.Read, resident data access

Lease query

ToolWhat it doesAccess needed
lease_query.aggregate_leasesAggregate leases for one authorized property and season with composable filters and grouping. Count includes real, active leases assigned to virtual-overflow beds; overflowLeases reports that subset so totals reconcile with physical bed inventory. Renewal rate is renewals divided by total leases in each group. Non-Rentable placeholder rows and Terminated leases are excluded from the default population; pass origination=unknown or status=Terminated/all to include them. cohort.statuses reports the included status set.Read, resident data access
lease_query.aggregate_leases_by_groupAggregate leases across every member property of one authorized property group and season. Count includes real, active leases assigned to virtual-overflow beds; overflowLeases reports that subset. Non-Rentable placeholder rows and Terminated leases are excluded from the default population; pass origination=unknown or status=Terminated/all to include them. cohort.statuses reports the included status set.Read, resident data access
lease_query.get_flight_pathGet observed leasing for one authorized property and season, including event markers and planState. Without a rate-tier packet, returns partial observations and inventory; with a packet, also returns plan curves, tolerance bands and velocity projections.Read, resident data access
lease_query.get_lease_detailsGet charges and adjustments for a specific lease in an authorized property.Read, resident data access
lease_query.get_rate_tiersGet minimized configured rate tiers for an exact authorized property and lease season.resident data access
lease_query.get_resident_lease_detailsGet minimized non-PII lease terms and bounded charges for an exact lease in an authorized property.resident data access
lease_query.list_leasesList minimized non-PII leases for one authorized property and season with composable filters and cursor pagination. Non-Rentable placeholder rows are excluded by default; pass origination=unknown to include them.Read, resident data access
lease_query.search_lease_recordsSearch the Records lens for one authorized property and global lease season (e.g. 2026). Optional scopeKind narrows to a floorPlanType, floorPlan or unit (pass the ancestor ids the same way the Records page does); search reaches the server (unit, property, floor plan and plan type names, exact ids) and then narrows the returned rows locally over unit, bed, floor plan, plan type, lease id, property and unit id text, exactly as the Records page does (bed and partial-id text only narrow returned rows); status and origin (new | renewal) facets, includeOverflow (default false) and includeLegacy (default true) apply the page's own rules. Cursor paging is the endpoint's own keyset cursor; limit is clamped to 100. Facets and local search narrow each server page after it is fetched, so a page may come back with zero records while nextCursor is still set: pageRowsBeforeFilters says how many rows the page held, and the caller should page forward.Read, resident data access

Market

ToolWhat it doesAccess needed
market.get_comp_setGet semantic market-property rate rows. Returns ALL active properties in the market by default and filters to configured competitors only when explicitly requested. Contributed values are visible only to the contributing account.Read, resident data access
market.get_market_lensGet the Market lens composite for one market: weekly timeline, rate position against the comp set, bedroom-type rows, intel sources, public rates, movements and counts, specials, incentives, intel articles, freshness and survey coverage. Optionally anchor it on one of the caller's own properties to get 'ours vs the comp set'. Contributed values are visible only to the contributing account. Remote MCP callers must pass the market and property as UUIDs; NOT FOR full standalone specials or review history (use market.get_market_specials instead) and NOT FOR the public comp-set roster alone (use market.get_comp_set instead).Read, resident data access
market.get_prelease_estimatesGet prelease for every property in one market for a lease season, plus the market total, the market ceiling and the supply and demand behind it. Each property is `reported` (a value someone reported, with its date and source), `estimated` (a range from the market model, never a reported value) or `unknown`. When you cite an estimated row, say "estimated" and give the range (for example "22 to 31%, estimated"). Never present an estimate as reported and never read an unknown as 0%. `estimateScope` says whether the numbers use public data only or also your account's own reports; say which. If `estimatesServed` is false, only reported values are available. NOT FOR our own property's pace against its goal (use `lease_query.get_flight_path`) and NOT FOR advertised rents (use `market.list_rate_observations`).Read
market_history.get_market_pacing_dataGet tenant-scoped market pacing data for Partner and Customer callers. Returns only internally tracked properties owned by the caller's account.Read

Position

ToolWhat it doesAccess needed
position.get_position_by_portfolioGet this week's Position KPI ticker (blended rate, net revenue, tours, new leases, prelease) for every property in one authorized portfolio and lease season, exactly as GET /api/v1/position returns it. Most accounts have no authorized 'portfolio' resources; check context.list_authorized_resources(resourceKind: 'portfolio') first and use get_position_by_property_group when it is empty.Read, resident data access
position.get_position_by_propertyGet this week's Position KPI ticker (blended rate, net revenue, tours, new leases, prelease) for one authorized property and lease season, exactly as GET /api/v1/position returns it.Read, resident data access
position.get_position_by_property_groupGet this week's Position KPI ticker (blended rate, net revenue, tours, new leases, prelease) for every member of one authorized property group and lease season, exactly as GET /api/v1/position returns it.Read, resident data access

Property setup

ToolWhat it doesAccess needed
property_setup.get_property_addressGet the minimized configured postal address for an exact authorized property.resident data access
property_setup.get_rate_tierGet minimized rate-tier packet detail for an exact authorized property and lease season.resident data access
property_setup.list_rate_tiersList minimized configured rate-tier packets for an exact authorized property.resident data access

Rate tier

ToolWhat it doesAccess needed
rate_tier.get_scheduleRead the rate-tier schedule, committed-bed usage, and plan revisions for one authorized property and season.Read, resident data access

Specials

ToolWhat it doesAccess needed
specials.get_specialsCaptured property specials with floor-plan attribution, source links, and retirement state. Retired history is opt-in.Read, resident data access

Fees and concessions

ToolWhat it doesAccess needed
fees_concessions.list_concessionsList minimized active concessions for an exact authorized property, optionally filtered to one floor plan. Each concession's floorPlan names the plan it was observed against; null means the concession applies property-wide rather than to a specific plan - floor-plan scope is only recorded for some concessions, so null is not the same as 'not modelled', it means this concession has no plan-level restriction.resident data access

Residents

ToolWhat it doesAccess needed
residents.get_residentsList the synced Entrata resident roster for an authorized property. Gender and employment/salary values are returned only when protected-field exposure is enabled; otherwise those stable fields are null.Read, resident data access
  • Monday leasing check: “Give me a Monday leasing check for Example Apartments.” The client finds the property and reviews leasing pace and market pacing.
  • Competitor pricing: “Are competitors undercutting Example Apartments? Include specials.” The client gets the comp set and compares competitor specials.
  • Renewal rates: “Check renewal rates at Example Apartments for the fall season.” The client resolves the property and gets its seasonal renewal rate.
  • Rate tier ladder: “Show the rate tier ladder and schedule for Example Apartments.” The client finds the rate tiers and reads their schedules, if your access allows it.
  • Prelease against the market: “Compare prelease at Example Apartments against the market.” The client gets prelease estimates and market context.

The connector does not show up Check that you added Rentametrix in the client’s settings. Reopen the client and check its tools menu. On a managed workspace, ask your workspace admin to allow custom connectors.

Sign-in says my account is not enabled Ask your Rentametrix admin to turn on AI connector access for your invited account.

The browser did not open CLI clients need a browser on the same machine. Run the client on a machine with a browser, then try authentication again.

The tools list is empty or says insufficient scope Disconnect Rentametrix and connect again. If it still fails, ask your admin to check your access.

I am asked to sign in again The session expired. Sign in with your Rentametrix login and click Allow again.

Cursor or VS Code does not use the tools Switch to Agent mode. Cursor and VS Code only use these tools in Agent mode.

ChatGPT developer mode is off in my workspace Ask your workspace admin to allow developer mode and the Rentametrix connector.

If sign-in is not available for your account yet, or the client runs without a browser (a script or a scheduled agent), use an account key. Write to support@rentametrix.com with your account, the properties and what the tool must do. The full key shows once; keep it in a secret store.

Send it as a header on every request to the same URL:

Authorization: Bearer <your key>

For example, in Claude Code:

Terminal window
claude mcp add --transport http rentametrix https://api.rentametrix.com/mcp \
--header "Authorization: Bearer <your key>"

Most clients take the same header in their MCP settings. Never paste a key into a chat.

Remove Rentametrix in your client’s connector or MCP settings. Your admin can also turn access off; see revoking access. Tokens your client already holds stay valid until they expire.