Home · MCP API
A read-only rental-intelligence API built for AI agents. Wire it into Claude Desktop, Cursor, or any MCP client in two minutes, then call seven tools that return data, a confidence score, and a freshness stamp on every response.
The fastest path is a raw HTTP call. No key is required on the free tier (60 requests/hour/IP). Every endpoint is a GET with query parameters.
Every response uses the same envelope, so an agent can branch on confidence and freshness without per-tool parsing:
{
"data": { "...": "tool-specific fields" },
"confidence_score": 90,
"data_freshness": "2024-10-15T14:23:11.000Z",
"data_source": "HUD FMR FY2024 (public) + BLS CPI Shelter trend",
"error": null
}
LandlordIQ exposes a tool-discovery manifest at /manifest.json. An MCP client reads it once, then knows every tool, its parameters, and its auth requirements. Below are drop-in configs for the most common clients. Swap YOUR_API_KEY only if you have a paid key — the free tier needs none.
Add this to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/). It uses an HTTP-to-MCP bridge so Claude can call the REST tools directly.
Add to .cursor/mcp.json in your project root (or the global Cursor MCP settings).
Any MCP-aware runtime can point at the manifest URL. Discovery and auth follow the standard tool-manifest convention.
No bridge installed? Any agent that can make HTTP requests (LangChain, the OpenAI/Anthropic tool-calling APIs, a cron job, a spreadsheet script) can call the same endpoints directly — see the playbooks.
X-API-Key header. Email api@rentalanalytics.com to provision a key.Every response sets X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, and X-RateLimit-Tier headers. CORS is enabled, so browser-based agents work too.
Every tool returns a confidence_score from 0–100 and a data_freshness timestamp. Agents should treat these as first-class inputs, not decoration. Use the bands below to decide whether to act, hedge, or ask a human.
Direct HUD anchor or curated dataset match. Safe to use for screening and ballpark underwriting. Still confirm against live comps before a binding price.
Estimated blend (vacancy, growth, cap-rate bands). Directionally useful; widen your margin of safety and label outputs as estimates.
National fallback or extrapolation (ZIP not in sample, 5+ BR, uncovered metro). Treat as a placeholder and prompt for a human check.
Recommended agent rule: if confidence_score < 50, do not present a single number as fact — present a range and flag it as extrapolated. The data_freshness field is the as-of date of the underlying source, not the request time; HUD anchors are FY2024 and aged forward with a labeled CPI trend.
Seven tools. get_landlord_market_summary is the preferred one-call rollup; the others are focused lookups. Expand each for parameters, response fields, and confidence behavior.
get_landlord_market_summary — one-call rollup (start here)Single call that returns rent by bedroom, vacancy, YoY growth, cap-rate band, and a regulation snapshot for a ZIP. Cheapest way for an agent to brief itself on a market.
| Param | Type | Required | Notes |
|---|---|---|---|
zip_code | string (5-digit) | yes | U.S. ZIP |
Returns: rent_by_bedroom, vacancy_rate, yoy_growth, cap_rate_band, regulation_snapshot, metro, metro_tier. Confidence is the lowest of its component tools so a single low input pulls the rollup down.
get_market_rent — HUD-anchored rent estimateMarket rent for a ZIP, bedroom count, and property type.
| Param | Type | Required | Default |
|---|---|---|---|
zip_code | string (5-digit) | yes | — |
bedrooms | int (0–8) | no | 2 |
property_type | apartment · single_family · townhouse · condo · duplex_unit | no | apartment |
Returns: median_rent, low, high, percentile_in_metro, comparable_count, city, state, metro, fallback. Confidence 72–92 on a direct ZIP match; ~38 on national fallback (fallback: true).
get_vacancy_rate — metro vacancyMetro-level rental vacancy for a U.S. city, with an optional property-type adjustment.
| Param | Type | Required |
|---|---|---|
city | string | yes |
state | string (2-letter) | yes |
property_type | string | no |
Returns: vacancy_rate, metro, as_of. Estimated blend — moderate confidence (50–71).
get_rent_growth — YoY + forward projectionYear-over-year rent growth and a 12-month forward projection for a metro.
| Param | Type | Required |
|---|---|---|
metro | slug or name (e.g. "austin-tx") | yes |
timeframe | yoy · 12mo_projection · cagr | no |
Returns: yoy_pct, projection_12mo_pct, metro, method. Moderate confidence; projection blends recent trend with BLS shelter CPI.
get_cap_rate_benchmark — metro cap-rate bandTypical cap-rate band for a metro tier and property type.
| Param | Type | Required |
|---|---|---|
zip_code | string | no (defaults to Tier 2) |
property_type | single_family · small_multifamily_2_4 · multifamily_5_plus · condo | no |
Returns: tier, low, mid, high, property_type. Estimated from CBRE survey ranges + NCREIF tiers — moderate confidence.
get_lease_renewal_recommendation — renewal rent + retention riskCompares current rent to market and recommends a renewal rent plus a retention-risk tier.
| Param | Type | Required |
|---|---|---|
current_rent | number | yes |
zip_code | string | yes |
bedrooms | int | no |
Returns: recommended_rent, gap_to_market_pct, retention_risk (low/moderate/high), rationale. Confidence inherits from the underlying rent estimate.
get_regulations — landlord-tenant summaryPlain-English landlord-tenant regulation summary for a covered city (top 20 U.S. cities).
| Param | Type | Required |
|---|---|---|
city | string | yes |
state | string (2-letter) | yes |
Returns: rent_control, late_fee_cap_pct, security_deposit_max, notice_to_vacate_days, just_cause_eviction, notes, reviewed_on. Editorial summary, not legal advice — agents should surface the disclaimer with any regulation output.
Paste these into Claude, ChatGPT, or Perplexity once the MCP server is connected. They are written so the model knows which tool to call and how to read confidence.
A typical underwriting agent chains several tools, gating each step on confidence. Example: from a ZIP to a renewal decision and a written summary.
get_landlord_market_summary?zip_code=78704 to pull rent, vacancy, growth, cap-rate band, and regulations in one shot.cap_rate_band confidence is moderate or better, call get_cap_rate_benchmark for the specific property type to benchmark the deal's underwritten cap rate.get_lease_renewal_recommendation?current_rent=...&zip_code=78704 to get a renewal rent and retention-risk read.data_source and data_freshness; flag any field with confidence < 50 as estimated and recommend a human confirm against live comps.Any failure returns HTTP 400/429 with the same envelope: data: null, confidence_score: 0, and a human-readable error string. Agents should read error and either retry with corrected params or report the problem — never fabricate a value.
{
"data": null,
"confidence_score": 0,
"data_freshness": "2024-10-15T14:23:11.000Z",
"data_source": "HUD FMR FY2024 (public)",
"error": "zip_code must be a 5-digit U.S. ZIP"
}
error, fix params, retry once.X-RateLimit-Reset, or provision a key.data) — the ZIP was not in the sample; the number is a national extrapolation. Confidence will be low; present a range, not a point.$ cd server && npm install
$ PORT=8787 LANDLORDIQ_API_KEYS=demo-key-001 npm start
LandlordIQ listening on http://0.0.0.0:8787
# Discover tools
$ curl http://localhost:8787/manifest.json
# Read the OpenAPI spec
$ curl http://localhost:8787/openapi.json
The API is free-tier. Data sources retain their original licenses: HUD, BLS, and U.S. Census are public-domain; CBRE / ApartmentList / Zillow figures are blended estimates, not republished verbatim. Regulation summaries are editorial and not legal advice. User-count figures shown elsewhere on the site are simulated for demonstration and labeled as such.