Docs navigation
The REIzer deal-analysis API
Underwrite any residential investment deal over JSON: send a strategy and your assumptions — get back cash flow, cap rate, DSCR, stress tests, and a 0–100 strategy-aware deal score. The core analysis endpoints are live in beta — free, no API key, no account. Keyed data endpoints (comps, records, market data) and a remote MCP server are in development; their sections below are the draft contract.
Try it now
The analysis endpoints are live. Inputs use the engine's camelCase keys; all rates and percents are fractions (0.0675, not 6.75). Omit any operating input and REIzer fills a documented default and lists it under assumptions.estimated_fields. Discover each strategy's inputs at GET /api/v1/strategies.
# No API key, no account — try it from your terminal curl -X POST https://reizer.io/api/v1/analyze \ -H "Content-Type: application/json" \ -d '{ "strategy": "ltr", "inputs": { "price": 285000, "marketRent": 3100, "downPct": 0.25, "rate": 0.0675, "term": 30, "closing": 6000, "taxes": 3200, "insurance": 1500 } }'
{
"strategy": "ltr",
"score": 96,
"verdict": "Strong",
"metrics": {
"monthly_cash_flow": 636.85,
"cash_on_cash": 0.0989,
"cap_rate": 0.0852,
"dscr": 1.4594,
"gross_yield": 0.1305,
"cash_invested": 77250
},
"stress": [ /* 7 scenarios with verdicts */ ],
"thresholds": { "break_even_rent": 2282.53, "max_rate": 0.0878, "max_vacancy": 0.3005 },
"assumptions": { "estimated_fields": ["vacancyPct", "mgmtPct", "maintPct", "capexPct"] },
"summary": "Strong (96/100). $637/mo cash flow, DSCR 1.46, 8.5% cap rate, 9.9% cash-on-cash on $77,250 invested. Some inputs are estimates.",
"report_url": "https://reizer.io/report.html?id=…", /* shareable 30-day report */
"access_level": "anonymous",
"assumptions_source": "caller_supplied",
"available_with_key": ["comps", "str_comps", "public_records", "market_data", "pdf_export"],
"upgrade_url": "https://reizer.io/pricing.html?utm_source=api"
}
Free vs keyed access
The line sits exactly where it sits in the web app: everything computed by REIzer's own engine is free; everything backed by licensed third-party data requires an API key tied to a paid account.
| Anonymous (no key) | API key (paid plan) | |
|---|---|---|
| Deal analysis, all 6 strategies | ✓ full output, not a teaser | ✓ |
| 0–100 scoring + verdict | ✓ | ✓ |
| Sensitivity & stress tests | ✓ | ✓ |
| MAO solver & 70% rule | ✓ | ✓ |
| Link to full interactive report | ✓ | ✓ |
| Sale & rent comps | — | ✓ metered |
| STR market comps | — | ✓ metered |
| Public-records auto-fill | — | ✓ metered |
| Market Trends data | — | ✓ Pro+ |
| Saved deals & portfolio | — | ✓ |
Anonymous calls to a keyed endpoint return HTTP 402 (not 401) with the plan that unlocks it and a signup link — an upgrade path, not a broken credential. API usage draws from the same monthly allowances as the web app, shown on the same usage meters.
Endpoints
Two are live today; the rest are the draft contract for the keyed tier.
Full analysis for one strategy — score, stress tests, thresholds, summary.
Screen a property across every strategy you provided inputs for, ranked by score.
Reverse-solve the maximum offer from your return targets (override defaults via targets). How it works.
Machine-readable list of strategies and their input schemas.
Sale and rental comparables for a subject address. Metered.
Nearby short-term-rental listings with ADR / occupancy / revenue stats. Metered.
Public-records auto-fill: beds, baths, sqft, taxes, AVM. Metered.
County / ZIP yield and market data.
Retrieve a saved deal.
Add or update a tracked property.
Authentication & keys
- Analysis endpoints need no authentication at all.
- Keyed endpoints use an API key created on your account's settings page, sent as a header. Keys look like
rz_live_…(andrz_test_…for testing); the raw key is shown once at creation and stored only as a hash. - Your key's entitlements always reflect your live subscription — a plan change applies to the very next request.
Rate limits
Every tier has a per-minute ceiling as a runaway guard (draft figures, tuned at launch). Exceeding it returns HTTP 429 with a retry_after value agents can honor.
| Access | Analyses / min | Analyses / day |
|---|---|---|
| Anonymous | 5 | 15 per IP |
| Explorer (keyed) | 5 | shares the web plan's monthly allowance |
| Investor | 20 | 500 |
| Pro | 40 | 2,000 |
| Elite | 60 | 5,000 |
Remote MCP server LIVE
The same capabilities are exposed as a remote MCP (Model Context Protocol) server at https://reizer.io/mcp — Claude, Cursor, and other agent hosts call REIzer as native tools. Free tools: analyze_deal, best_use, solve_max_offer, list_strategies; pull_comps and str_market_data are listed but key-gated until the keyed tier ships. Responses are compact JSON plus a deterministic summary — no server-side LLM narration.
claude mcp add --transport http reizer https://reizer.io/mcp
{
"mcpServers": {
"reizer": { "type": "http", "url": "https://reizer.io/mcp" }
}
}
What you could build
AI assistants that underwrite
Give a chat agent real underwriting instead of head-math: verified cash flow, DSCR, and a defensible score for any address the user mentions, with a report link to hand off.
Deal-flow screening
Pipe listings from any source through /best-use and /analyze, filter on score or DSCR, and only look at deals that clear your bar.
PropTech integrations
Embed strategy scoring and MAO math in your own product without building an underwriting engine — and pull comps and records through one metered key.
FAQ
Is the API live?
Not yet — it's in active development. This page is the draft contract, published early so integrators can plan against it and tell us what they need before schemas freeze.
Why is deal analysis free without a key?
Analysis runs entirely on REIzer's own engine — the same math documented under Methodology — with no third-party data cost. What costs us money (licensed comps, records, and market data) is what needs a key.
What will keyed access cost?
API keys come with paid REIzer plans (see pricing) and draw from the same monthly allowances as the web app — one subscription, one set of meters, whether you click or call.
Will the numbers match the web app?
Yes — same engine, same scoring rubrics, same default assumptions. Every response also declares its assumptions_source, so an agent can tell the user when results rest on caller-supplied figures rather than pulled data.
How do I get early access?
Contact us with a line about what you're building. Early integrators shape what ships first, and MCP configs will be published for Claude, ChatGPT, Cursor, and friends at launch.
In the meantime: the full methodology is at reizer.io/docs, and machine-readable summaries live at /llms.txt and /llms-full.txt.