Real estate deal memo
Real estate deal memo from a US address: AVM, rent, comps, cap rate, cash-on-cash, DSCR, red flags.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"deal-memo": {
"url": "https://agentwares-deal-memo.vercel.app/api/mcp"
}
}
}원격 엔드포인트
https://agentwares-deal-memo.vercel.app/api/mcpstreamable-http할 수 있는 일
도구 목록
도구 (2)
🟢realestate_deal_memo(address, strategy, assumptions, memo, sample)
Underwrite a US residential property from its street address for a rental, flip or hold strategy. Pulls the property record (owner, last sale, taxes, HOA), the automated value estimate with sale comps and the long-term rent estimate with rental comps from RentCast, then computes NOI, cap rate, cash-on-cash, DSCR, GRM and break-even occupancy from stated assumptions with deterministic math (plus 70%-rule, profit and ROI for a flip; a multi-year exit projection for a hold), lists red flags with a pass/review/fail screen, and adds a one-paragraph analyst memo. Returns {data, sources, as_of, confidence, notice}. Not financial advice: verify before acting. Paid: $0.75 per call; without credit you get a PAYMENT_REQUIRED result. Set sample=true for a free example response.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "Full US street address: number, street, city, state, zip (e.g. 1547 Example Ave, Cleveland, OH 44109). Required unless sample=true.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"strategy": {
"default": "rental",
"type": "string",
"enum": [
"rental",
"flip",
"hold"
],
"description": "rental: buy and rent out (NOI, cap rate, cash-on-cash, DSCR). flip: buy, rehab, resell (70% rule, profit, ROI). hold: rental metrics plus a multi-year exit projection (appreciation, principal paydown, equity multiple)."
},
"assumptions": {
"type": "object",
"properties": {
"purchase_price": {
"description": "Offer or purchase price in USD. Default: the RentCast value estimate (AVM).",
"type": "number",
"exclusiveMinimum": 0
},
"monthly_rent": {
"description": "Expected monthly rent in USD. Default: the RentCast long-term rent estimate.",
"type": "number",
"exclusiveMinimum": 0
},
"down_payment_pct": {
"description": "Down payment as a fraction of price. Default 0.25. 1 = all cash.",
"type": "number",
"minimum": 0,
"maximum": 1
},
"interest_rate": {
"description": "Annual note rate as a fraction, e.g. 0.07. Default 0.07.",
"type": "number",
"minimum": 0,
"maximum": 0.3
},
"loan_term_years": {
"description": "Default 30.",
"type": "integer",
"minimum": 1,
"maximum": 40
},
"closing_costs_pct": {
"description": "Buyer closing costs as a fraction of price. Default 0.03.",
"type": "number",
"minimum": 0,
"maximum": 0.15
},
"vacancy_pct": {
"description": "Vacancy and credit loss as a fraction of gross rent. Default 0.05.",
"type": "number",
"minimum": 0,
"maximum": 0.5
},
"management_pct": {
"description": "Property management as a fraction of gross rent. Default 0.08.",
"type": "number",
"minimum": 0,
"maximum": 0.3
},
"maintenance_pct": {
"description": "Repairs as a fraction of gross rent. Default 0.05.",
"type": "number",
"minimum": 0,
"maximum": 0.3
},
"capex_pct": {
"description": "Capital reserves as a fraction of gross rent. Default 0.05.",
"type": "number",
"minimum": 0,
"maximum": 0.3
},
"insurance_annual": {
"description": "Annual landlord insurance in USD. Default 0.5% of price.",
"type": "number",
"minimum": 0
},
"property_tax_annual": {
"description": "Annual property tax in USD. Default: latest RentCast tax record, else 1.1% of price.",
"type": "number",
"minimum": 0
},
"hoa_monthly": {
"description": "Monthly HOA dues in USD. Default: RentCast HOA fee, else 0.",
"type": "number",
"minimum": 0
},
"rehab_budget": {
"description": "Renovation budget in USD, paid in cash at purchase. Default 0.",
"type": "number",
"minimum": 0
},
"arv": {
"description": "After-repair value in USD (flip). Default: the RentCast value estimate.",
"type": "number",
"exclusiveMinimum": 0
},
"holding_months": {
"description": "Months from purchase to resale (flip). Default 6.",
"type": "integer",
"minimum": 1,
"maximum": 36
},
"selling_costs_pct": {
"description": "Commissions and closing at sale as a fraction of sale price. Default 0.06.",
"type": "number",
"minimum": 0,
"maximum": 0.15
},
"appreciation_pct": {
"description": "Annual value growth (hold). Default 0.03.",
"type": "number",
"minimum": -0.2,
"maximum": 0.3
},
"rent_growth_pct": {
"description": "Annual rent growth (hold). Default 0.02.",
"type": "number",
"minimum": -0.2,
"maximum": 0.3
},
"hold_years": {
"description": "Years held before sale (hold). Default 5.",
"type": "integer",
"minimum": 1,
"maximum": 30
}
},
"description": "Underwriting assumptions. Every field is optional; omitted fields use the documented defaults."
},
"memo": {
"default": true,
"description": "Include the one-paragraph memo (cheap model, cached). Default true.",
"type": "boolean"
},
"sample": {
"default": false,
"description": "Set true to return an example response at no charge (sample mode). Default false.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"strategy": {
"type": "string",
"enum": [
"rental",
"flip",
"hold"
],
"description": "rental: buy and rent out (NOI, cap rate, cash-on-cash, DSCR). flip: buy, rehab, resell (70% rule, profit, ROI). hold: rental metrics plus a multi-year exit projection (appreciation, principal paydown, equity multiple)."
},
"property": {
"type": "object",
"properties": {
"rentcast_id": {
"type": "string"
},
"address": {
"type": "object",
"properties": {
"formatted": {
"type": "string"
},
"line1": {
"type": [
"string",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"state": {
"type": [
"string",
"null"
]
},
"zip": {
"type": [
"string",
"null"
]
},
"county": {
"type": [
"string",
"null"
]
}
},
"required": [
"formatted",
"line1",
"city",
"state",
"zip",
"county"
],
"additionalProperties": false
},
"location": {
"anyOf": [
{
"type": "object",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"property_type": {
"type": [
"string",
"null"
]
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"square_footage": {
"type": [
"number",
"null"
]
},
"lot_size_sqft": {
"type": [
"number",
"null"
]
},
"year_built": {
"type": [
"number",
"null"
]
},
"zoning": {
"type": [
"string",
"null"
]
},
"hoa_monthly": {
"type": [
"number",
"null"
]
},
"last_sale": {
"anyOf": [
{
"type": "object",
"properties": {
"date": {
"type": "string"
},
"price": {
"type": [
"number",
"null"
]
}
},
"required": [
"date",
"price"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"tax": {
"anyOf": [
{
"type": "object",
"properties": {
"year": {
"type": "number"
},
"annual_total": {
"type": "number"
}
},
"required": [
"year",
"annual_total"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"assessment": {
"anyOf": [
{
"type": "object",
"properties": {
"year": {
"type": "number"
},
"value": {
"type": "number"
},
"land": {
"type": [
"number",
"null"
]
},
"improvements": {
"type": [
"number",
"null"
]
}
},
"required": [
"year",
"value",
"land",
"improvements"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"owner": {
"anyOf": [
{
"type": "object",
"properties": {
"names": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"description": "Individual or Organization",
"type": [
"string",
"null"
]
},
"occupied": {
"type": [
"boolean",
"null"
]
},
"mailing_address": {
"type": [
"string",
"null"
]
}
},
"required": [
"names",
"type",
"occupied",
"mailing_address"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"history": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"event": {
"type": "string"
},
"price": {
"type": [
"number",
"null"
]
}
},
"required": [
"date",
"event",
"price"
],
"additionalProperties": false
}
}
},
"required": [
"rentcast_id",
"address",
"location",
"property_type",
"bedrooms",
"bathrooms",
"square_footage",
"lot_size_sqft",
"year_built",
"zoning",
"hoa_monthly",
"last_sale",
"tax",
"assessment",
"owner",
"history"
],
"additionalProperties": false
},
"owner": {
"anyOf": [
{
"type": "object",
"properties": {
"names": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"description": "Individual or Organization",
"type": [
"string",
"null"
]
},
"occupied": {
"type": [
"boolean",
"null"
]
},
"mailing_address": {
"type": [
"string",
"null"
]
}
},
"required": [
"names",
"type",
"occupied",
"mailing_address"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"avm": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"range": {
"type": "object",
"properties": {
"low": {
"type": "number"
},
"high": {
"type": "number"
}
},
"required": [
"low",
"high"
],
"additionalProperties": false
}
},
"required": [
"value",
"range"
],
"additionalProperties": false
},
"rent_estimate": {
"type": "object",
"properties": {
"monthly_rent": {
"type": "number"
},
"range": {
"type": "object",
"properties": {
"low": {
"type": "number"
},
"high": {
"type": "number"
}
},
"required": [
"low",
"high"
],
"additionalProperties": false
}
},
"required": [
"monthly_rent",
"range"
],
"additionalProperties": false
},
"comps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"price": {
"type": "number",
"description": "sale price for value comps; monthly rent for rent comps"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"square_footage": {
"type": [
"number",
"null"
]
},
"year_built": {
"type": [
"number",
"null"
]
},
"property_type": {
"type": [
"string",
"null"
]
},
"distance_miles": {
"type": [
"number",
"null"
]
},
"days_old": {
"description": "days since the comp was last seen on market",
"type": [
"number",
"null"
]
},
"correlation": {
"description": "RentCast similarity 0..1",
"type": [
"number",
"null"
]
},
"listing_type": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
}
},
"required": [
"address",
"price",
"bedrooms",
"bathrooms",
"square_footage",
"year_built",
"property_type",
"distance_miles",
"days_old",
"correlation",
"listing_type",
"status"
],
"additionalProperties": false
},
"description": "sale comps behind the value estimate, best match first"
},
"rent_comps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"price": {
"type": "number",
"description": "sale price for value comps; monthly rent for rent comps"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"square_footage": {
"type": [
"number",
"null"
]
},
"year_built": {
"type": [
"number",
"null"
]
},
"property_type": {
"type": [
"string",
"null"
]
},
"distance_miles": {
"type": [
"number",
"null"
]
},
"days_old": {
"description": "days since the comp was last seen on market",
"type": [
"number",
"null"
]
},
"correlation": {
"description": "RentCast similarity 0..1",
"type": [
"number",
"null"
]
},
"listing_type": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
}
},
"required": [
"address",
"price",
"bedrooms",
"bathrooms",
"square_footage",
"year_built",
"property_type",
"distance_miles",
"days_old",
"correlation",
"listing_type",
"status"
],
"additionalProperties": false
},
"description": "rental comps behind the rent estimate"
},
"cap_rate": {
"type": "number"
},
"cash_on_cash": {
"type": [
"number",
"null"
]
},
"dscr": {
"type": [
"number",
"null"
]
},
"red_flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"detail": {
"type": "string"
}
},
"required": [
"code",
"severity",
"detail"
],
"additionalProperties": false
}
},
"underwriting": {
"type": "object",
"properties": {
"strategy": {
"type": "string",
"enum": [
"rental",
"flip",
"hold"
],
"description": "rental: buy and rent out (NOI, cap rate, cash-on-cash, DSCR). flip: buy, rehab, resell (70% rule, profit, ROI). hold: rental metrics plus a multi-year exit projection (appreciation, principal paydown, equity multiple)."
},
"inputs": {
"type": "object",
"properties": {
"purchase_price": {
"type": "number"
},
"monthly_rent": {
"type": "number"
},
"down_payment_pct": {
"type": "number"
},
"interest_rate": {
"type": "number"
},
"loan_term_years": {
"type": "number"
},
"closing_costs_pct": {
"type": "number"
},
"vacancy_pct": {
"type": "number"
},
"management_pct": {
"type": "number"
},
"maintenance_pct": {
"type": "number"
},
"capex_pct": {
"type": "number"
},
"insurance_annual": {
"type": "number"
},
"property_tax_annual": {
"type": "number"
},
"hoa_monthly": {
"type": "number"
},
"rehab_budget": {
"type": "number"
},
"arv": {
"type": "number"
},
"holding_months": {
"type": "number"
},
"selling_costs_pct": {
"type": "number"
},
"appreciation_pct": {
"type": "number"
},
"rent_growth_pct": {
"type": "number"
},
"hold_years": {
"type": "number"
},
"defaults_used": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"purchase_price",
"monthly_rent",
"down_payment_pct",
"interest_rate",
"loan_term_years",
"closing_costs_pct",
"vacancy_pct",
"management_pct",
"maintenance_pct",
"capex_pct",
"insurance_annual",
"property_tax_annual",
"hoa_monthly",
"rehab_budget",
"arv",
"holding_months",
"selling_costs_pct",
"appreciation_pct",
"rent_growth_pct",
"hold_years",
"defaults_used"
],
"additionalProperties": false
},
"income": {
"type": "object",
"properties": {
"gross_scheduled_rent": {
"type": "number"
},
"vacancy_loss": {
"type": "number"
},
"effective_gross_income": {
"type": "number"
}
},
"required": [
"gross_scheduled_rent",
"vacancy_loss",
"effective_gross_income"
],
"additionalProperties": false
},
"expenses": {
"type": "object",
"properties": {
"property_tax": {
"type": "number"
},
"insurance": {
"type": "number"
},
"hoa": {
"type": "number"
},
"management": {
"type": "number"
},
"maintenance": {
"type": "number"
},
"capex": {
"type": "number"
},
"total_operating": {
"type": "number"
}
},
"required": [
"property_tax",
"insurance",
"hoa",
"management",
"maintenance",
"capex",
"total_operating"
],
"additionalProperties": false
},
"noi": {
"type": "number"
},
"financing": {
"anyOf": [
{
"type": "object",
"properties": {
"loan_amount": {
"type": "number"
},
"ltv": {
"type": "number"
},
"monthly_payment": {
"type": "number"
},
"annual_debt_service": {
"type": "number"
}
},
"required": [
"loan_amount",
"ltv",
"monthly_payment",
"annual_debt_service"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "null when all cash"
},
"cash_invested": {
"type": "object",
"properties": {
"down_payment": {
"type": "number"
},
"closing_costs": {
"type": "number"
},
"rehab": {
"type": "number"
},
"total": {
"type": "number"
}
},
"required": [
"down_payment",
"closing_costs",
"rehab",
"total"
],
"additionalProperties": false
},
"metrics": {
"type": "object",
"properties": {
"cap_rate": {
"type": "number"
},
"cash_on_cash": {
"description": "null when no cash is invested",
"type": [
"number",
"null"
]
},
"dscr": {
"description": "null when all cash",
"type": [
"number",
"null"
]
},
"grm": {
"type": "number"
},
"rent_to_price": {
"type": "number"
},
"break_even_occupancy": {
"type": "number"
},
"annual_cash_flow": {
"type": "number"
},
"monthly_cash_flow": {
"type": "number"
}
},
"required": [
"cap_rate",
"cash_on_cash",
"dscr",
"grm",
"rent_to_price",
"break_even_occupancy",
"annual_cash_flow",
"monthly_cash_flow"
],
"additionalProperties": false
},
"flip": {
"anyOf": [
{
"type": "object",
"properties": {
"arv": {
"type": "number"
},
"max_offer_70_rule": {
"type": "number"
},
"passes_70_rule": {
"type": "boolean"
},
"holding_costs": {
"type": "number"
},
"selling_costs": {
"type": "number"
},
"total_cost": {
"type": "number"
},
"profit": {
"type": "number"
},
"cash_in_deal": {
"type": "number"
},
"roi_on_cash": {
"type": [
"number",
"null"
]
},
"annualized_roi": {
"type": [
"number",
"null"
]
}
},
"required": [
"arv",
"max_offer_70_rule",
"passes_70_rule",
"holding_costs",
"selling_costs",
"total_cost",
"profit",
"cash_in_deal",
"roi_on_cash",
"annualized_roi"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"hold": {
"anyOf": [
{
"type": "object",
"properties": {
"years": {
"type": "number"
},
"projected_value": {
"type": "number"
},
"remaining_loan_balance": {
"type": "number"
},
"equity_at_exit": {
"type": "number"
},
"cumulative_cash_flow": {
"type": "number"
},
"total_profit": {
"type": "number"
},
"equity_multiple": {
"type": [
"number",
"null"
]
},
"annualized_return": {
"type": [
"number",
"null"
]
}
},
"required": [
"years",
"projected_value",
"remaining_loan_balance",
"equity_at_exit",
"cumulative_cash_flow",
"total_profit",
"equity_multiple",
"annualized_return"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"red_flags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"detail": {
"type": "string"
}
},
"required": [
"code",
"severity",
"detail"
],
"additionalProperties": false
}
},
"screen": {
"type": "object",
"properties": {
"result": {
"type": "string",
"enum": [
"pass",
"review",
"fail"
]
},
"rule": {
"type": "string"
}
},
"required": [
"result",
"rule"
],
"additionalProperties": false
}
},
"required": [
"strategy",
"inputs",
"income",
"expenses",
"noi",
"financing",
"cash_invested",
"metrics",
"flip",
"hold",
"red_flags",
"screen"
],
"additionalProperties": false
},
"memo": {
"description": "one-paragraph analyst memo",
"type": [
"string",
"null"
]
},
"memo_status": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"generated",
"cached",
"template",
"skipped"
],
"description": "generated: fresh LLM paragraph; cached: identical request served from the LLM cache; template: deterministic paragraph (sample mode, LLM disabled or LLM error); skipped: memo=false"
},
"model": {
"type": [
"string",
"null"
]
},
"cost_usd": {
"type": "number"
},
"reason": {
"type": [
"string",
"null"
]
}
},
"required": [
"status",
"model",
"cost_usd",
"reason"
],
"additionalProperties": false
}
},
"required": [
"address",
"strategy",
"property",
"owner",
"avm",
"rent_estimate",
"comps",
"rent_comps",
"cap_rate",
"cash_on_cash",
"dscr",
"red_flags",
"underwriting",
"memo",
"memo_status"
],
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "RentCast"
},
"endpoint": {
"type": "string"
},
"url": {
"type": "string"
},
"fetched_at": {
"type": "string"
},
"cached": {
"type": "boolean"
}
},
"required": [
"name",
"endpoint",
"url",
"fetched_at",
"cached"
],
"additionalProperties": false
}
},
"as_of": {
"type": "string",
"description": "ISO time of the oldest upstream data point in this response"
},
"confidence": {
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"score": {
"type": "number",
"description": "0..1"
},
"factors": {
"type": "array",
"items": {
"type": "string"
},
"description": "what lowered the score"
}
},
"required": [
"level",
"score",
"factors"
],
"additionalProperties": false
},
"notice": {
"type": "string",
"description": "liability disclaimer; always present"
},
"sample": {
"type": "boolean",
"description": "true when this is the free example, not a live lookup"
}
},
"required": [
"data",
"sources",
"as_of",
"confidence",
"notice",
"sample"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢realestate_lookup(address, kind, sample)
Fetch one RentCast record for a US street address. kind=property: characteristics, owner, last sale, tax bill, assessment, HOA and sale history. kind=value: automated value estimate with a low/high range and the sale comps behind it. kind=rent: long-term rent estimate with a range and rental comps. One upstream call per lookup; use realestate_deal_memo when you need all three plus the underwriting. Returns {data, sources, as_of, confidence, notice}. Paid: $0.10 per call; without credit you get a PAYMENT_REQUIRED result. Set sample=true for a free example response.
입력 스키마
{
"type": "object",
"properties": {
"address": {
"description": "Full US street address: number, street, city, state, zip (e.g. 1547 Example Ave, Cleveland, OH 44109). Required unless sample=true.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"kind": {
"default": "property",
"type": "string",
"enum": [
"property",
"value",
"rent"
],
"description": "property: characteristics, owner, last sale, taxes, HOA. value: automated value estimate with range and sale comps. rent: long-term rent estimate with range and rental comps."
},
"sample": {
"default": false,
"description": "Set true to return an example response at no charge (sample mode). Default false.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}출력 스키마
{
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"property",
"value",
"rent"
],
"description": "property: characteristics, owner, last sale, taxes, HOA. value: automated value estimate with range and sale comps. rent: long-term rent estimate with range and rental comps."
},
"property": {
"anyOf": [
{
"type": "object",
"properties": {
"rentcast_id": {
"type": "string"
},
"address": {
"type": "object",
"properties": {
"formatted": {
"type": "string"
},
"line1": {
"type": [
"string",
"null"
]
},
"city": {
"type": [
"string",
"null"
]
},
"state": {
"type": [
"string",
"null"
]
},
"zip": {
"type": [
"string",
"null"
]
},
"county": {
"type": [
"string",
"null"
]
}
},
"required": [
"formatted",
"line1",
"city",
"state",
"zip",
"county"
],
"additionalProperties": false
},
"location": {
"anyOf": [
{
"type": "object",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
},
"required": [
"latitude",
"longitude"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"property_type": {
"type": [
"string",
"null"
]
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"square_footage": {
"type": [
"number",
"null"
]
},
"lot_size_sqft": {
"type": [
"number",
"null"
]
},
"year_built": {
"type": [
"number",
"null"
]
},
"zoning": {
"type": [
"string",
"null"
]
},
"hoa_monthly": {
"type": [
"number",
"null"
]
},
"last_sale": {
"anyOf": [
{
"type": "object",
"properties": {
"date": {
"type": "string"
},
"price": {
"type": [
"number",
"null"
]
}
},
"required": [
"date",
"price"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"tax": {
"anyOf": [
{
"type": "object",
"properties": {
"year": {
"type": "number"
},
"annual_total": {
"type": "number"
}
},
"required": [
"year",
"annual_total"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"assessment": {
"anyOf": [
{
"type": "object",
"properties": {
"year": {
"type": "number"
},
"value": {
"type": "number"
},
"land": {
"type": [
"number",
"null"
]
},
"improvements": {
"type": [
"number",
"null"
]
}
},
"required": [
"year",
"value",
"land",
"improvements"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"owner": {
"anyOf": [
{
"type": "object",
"properties": {
"names": {
"type": "array",
"items": {
"type": "string"
}
},
"type": {
"description": "Individual or Organization",
"type": [
"string",
"null"
]
},
"occupied": {
"type": [
"boolean",
"null"
]
},
"mailing_address": {
"type": [
"string",
"null"
]
}
},
"required": [
"names",
"type",
"occupied",
"mailing_address"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"history": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"event": {
"type": "string"
},
"price": {
"type": [
"number",
"null"
]
}
},
"required": [
"date",
"event",
"price"
],
"additionalProperties": false
}
}
},
"required": [
"rentcast_id",
"address",
"location",
"property_type",
"bedrooms",
"bathrooms",
"square_footage",
"lot_size_sqft",
"year_built",
"zoning",
"hoa_monthly",
"last_sale",
"tax",
"assessment",
"owner",
"history"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"value": {
"anyOf": [
{
"type": "object",
"properties": {
"value": {
"type": "number"
},
"range": {
"type": "object",
"properties": {
"low": {
"type": "number"
},
"high": {
"type": "number"
}
},
"required": [
"low",
"high"
],
"additionalProperties": false
},
"comps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"price": {
"type": "number",
"description": "sale price for value comps; monthly rent for rent comps"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"square_footage": {
"type": [
"number",
"null"
]
},
"year_built": {
"type": [
"number",
"null"
]
},
"property_type": {
"type": [
"string",
"null"
]
},
"distance_miles": {
"type": [
"number",
"null"
]
},
"days_old": {
"description": "days since the comp was last seen on market",
"type": [
"number",
"null"
]
},
"correlation": {
"description": "RentCast similarity 0..1",
"type": [
"number",
"null"
]
},
"listing_type": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
}
},
"required": [
"address",
"price",
"bedrooms",
"bathrooms",
"square_footage",
"year_built",
"property_type",
"distance_miles",
"days_old",
"correlation",
"listing_type",
"status"
],
"additionalProperties": false
}
}
},
"required": [
"value",
"range",
"comps"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"rent": {
"anyOf": [
{
"type": "object",
"properties": {
"monthly_rent": {
"type": "number"
},
"range": {
"type": "object",
"properties": {
"low": {
"type": "number"
},
"high": {
"type": "number"
}
},
"required": [
"low",
"high"
],
"additionalProperties": false
},
"comps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"address": {
"type": "string"
},
"price": {
"type": "number",
"description": "sale price for value comps; monthly rent for rent comps"
},
"bedrooms": {
"type": [
"number",
"null"
]
},
"bathrooms": {
"type": [
"number",
"null"
]
},
"square_footage": {
"type": [
"number",
"null"
]
},
"year_built": {
"type": [
"number",
"null"
]
},
"property_type": {
"type": [
"string",
"null"
]
},
"distance_miles": {
"type": [
"number",
"null"
]
},
"days_old": {
"description": "days since the comp was last seen on market",
"type": [
"number",
"null"
]
},
"correlation": {
"description": "RentCast similarity 0..1",
"type": [
"number",
"null"
]
},
"listing_type": {
"type": [
"string",
"null"
]
},
"status": {
"type": [
"string",
"null"
]
}
},
"required": [
"address",
"price",
"bedrooms",
"bathrooms",
"square_footage",
"year_built",
"property_type",
"distance_miles",
"days_old",
"correlation",
"listing_type",
"status"
],
"additionalProperties": false
}
}
},
"required": [
"monthly_rent",
"range",
"comps"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"address",
"kind",
"property",
"value",
"rent"
],
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "RentCast"
},
"endpoint": {
"type": "string"
},
"url": {
"type": "string"
},
"fetched_at": {
"type": "string"
},
"cached": {
"type": "boolean"
}
},
"required": [
"name",
"endpoint",
"url",
"fetched_at",
"cached"
],
"additionalProperties": false
}
},
"as_of": {
"type": "string",
"description": "ISO time of the oldest upstream data point in this response"
},
"confidence": {
"type": "object",
"properties": {
"level": {
"type": "string",
"enum": [
"high",
"medium",
"low"
]
},
"score": {
"type": "number",
"description": "0..1"
},
"factors": {
"type": "array",
"items": {
"type": "string"
},
"description": "what lowered the score"
}
},
"required": [
"level",
"score",
"factors"
],
"additionalProperties": false
},
"notice": {
"type": "string",
"description": "liability disclaimer; always present"
},
"sample": {
"type": "boolean",
"description": "true when this is the free example, not a live lookup"
}
},
"required": [
"data",
"sources",
"as_of",
"confidence",
"notice",
"sample"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}커뮤니티
증거