{"openapi":"3.1.0","info":{"title":"Real Estate Investment API","version":"1.0.0","description":"Real-estate investment maths as an API, computed locally and deterministically — the property-analysis layer a loan calculator leaves out. The cap-rate endpoint gives the net operating income and capitalization rate of a rental from its price, gross rent, vacancy allowance and operating expenses (NOI = gross rent × (1 − vacancy) − expenses; cap rate = NOI / price), plus the gross rent multiplier — the unlevered view a buyer compares deals on. The cash-flow endpoint adds financing: from a down payment (amount or percent), interest rate and term it amortizes the mortgage, then returns the monthly payment, annual debt service, the property cash flow, the cash-on-cash return (annual cash flow ÷ cash invested), the debt-service-coverage ratio (DSCR = NOI ÷ debt service, the figure lenders underwrite to) and the loan-to-value. The metrics endpoint runs the quick screening ratios investors filter on — the 1 % rule (monthly rent ≥ 1 % of price), gross rental yield, gross rent multiplier and price per square foot. Money in, ratios out, in one consistent currency. Everything is computed locally and deterministically, so it is instant and private. Ideal for proptech, real-estate-investment, rental-analysis and landlord app developers, deal-screening and underwriting tools, and personal-finance dashboards. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 compute endpoints. This is property-investment analysis; for pure loan amortization use a loan API and for DCF/NPV use an investment-appraisal API.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/realestate-api","description":"oanor gateway"}],"tags":[{"name":"RealEstate"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/cap-rate":{"get":{"operationId":"get_v1_cap_rate","tags":["RealEstate"],"summary":"Cap rate and NOI","description":"","parameters":[{"name":"price","in":"query","required":true,"description":"Property price/value","schema":{"type":"string"},"example":"500000"},{"name":"annual_gross_rent","in":"query","required":true,"description":"Annual gross rent","schema":{"type":"string"},"example":"48000"},{"name":"vacancy_rate","in":"query","required":false,"description":"Vacancy % (default 0)","schema":{"type":"string"},"example":"5"},{"name":"operating_expenses","in":"query","required":false,"description":"Annual operating expenses","schema":{"type":"string"},"example":"12000"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"noi":33600,"note":"Cap rate = NOI / price, where NOI = gross rent × (1 − vacancy) − operating expenses (before any mortgage). GRM = price / annual gross rent.","inputs":{"price":500000,"vacancy_rate":5,"annual_gross_rent":48000,"operating_expenses":12000},"cap_rate_percent":6.72,"gross_rent_multiplier":10.417,"effective_gross_income":45600},"meta":{"timestamp":"2026-06-05T19:50:10.007Z","request_id":"9b87bbf7-9e6f-482f-bcc3-93aefbbea9d1"},"status":"ok","message":"Cap rate and NOI","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/cash-flow":{"get":{"operationId":"get_v1_cash_flow","tags":["RealEstate"],"summary":"Cash-on-cash and DSCR","description":"","parameters":[{"name":"price","in":"query","required":true,"description":"Property price","schema":{"type":"string"},"example":"500000"},{"name":"annual_gross_rent","in":"query","required":true,"description":"Annual gross rent","schema":{"type":"string"},"example":"48000"},{"name":"down_payment_percent","in":"query","required":false,"description":"Down payment % (or down_payment)","schema":{"type":"string"},"example":"20"},{"name":"down_payment","in":"query","required":false,"description":"Down payment amount","schema":{"type":"string"}},{"name":"interest_rate","in":"query","required":true,"description":"Annual interest rate %","schema":{"type":"string"},"example":"7"},{"name":"loan_term_years","in":"query","required":true,"description":"Loan term in years","schema":{"type":"string"},"example":"30"},{"name":"vacancy_rate","in":"query","required":false,"description":"Vacancy %","schema":{"type":"string"},"example":"5"},{"name":"operating_expenses","in":"query","required":false,"description":"Annual operating expenses","schema":{"type":"string"},"example":"12000"},{"name":"closing_costs","in":"query","required":false,"description":"Closing costs","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"noi":33600,"dscr":1.0522,"note":"Levered view: cash-on-cash = (NOI − annual debt service) / cash invested. DSCR = NOI / annual debt service (lenders usually want ≥ 1.2). LTV = loan / price.","inputs":{"price":500000,"down_payment":100000,"vacancy_rate":5,"closing_costs":0,"interest_rate":7,"loan_term_years":30,"annual_gross_rent":48000,"operating_expenses":12000},"loan_amount":400000,"ltv_percent":80,"monthly_payment":2661.21,"annual_cash_flow":1665.48,"monthly_cash_flow":138.79,"annual_debt_service":31934.52,"cash_on_cash_percent":1.6655},"meta":{"timestamp":"2026-06-05T19:50:10.105Z","request_id":"c8fd14a4-97a9-4957-aa73-d092b11b840e"},"status":"ok","message":"Cash-on-cash and DSCR","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/metrics":{"get":{"operationId":"get_v1_metrics","tags":["RealEstate"],"summary":"Screening ratios","description":"","parameters":[{"name":"price","in":"query","required":true,"description":"Property price","schema":{"type":"string"},"example":"200000"},{"name":"monthly_rent","in":"query","required":true,"description":"Monthly rent","schema":{"type":"string"},"example":"2000"},{"name":"square_feet","in":"query","required":false,"description":"Living area (sqft)","schema":{"type":"string"},"example":"1500"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"Screening ratios: the 1% rule wants monthly rent ≥ 1% of price; gross yield = annual rent / price; GRM = price / annual rent; price per square foot for comparison.","inputs":{"price":200000,"square_feet":1500,"monthly_rent":2000},"price_per_sqft":133.33,"gross_yield_percent":12,"gross_rent_multiplier":8.333,"meets_one_percent_rule":true,"one_percent_rule_percent":1},"meta":{"timestamp":"2026-06-05T19:50:10.213Z","request_id":"fdeb2d41-66f2-45f0-bdfe-47465e805fd9"},"status":"ok","message":"Screening ratios","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"notes":"Money in, ratios out — use one consistent currency. NOI is before debt; cash-on-cash and DSCR add financing. For pure loan amortization use a loan API; for DCF/NPV use an investment-appraisal API.","service":"realestate-api","endpoints":{"GET /v1/meta":"This document.","GET /v1/metrics":"Quick screening ratios — 1% rule, gross yield, GRM, price per sqft.","GET /v1/cap-rate":"NOI, capitalization rate and GRM (unlevered).","GET /v1/cash-flow":"Financed analysis: mortgage payment, cash-on-cash return, DSCR, LTV."},"description":"Real-estate investment maths: cap rate, NOI, cash-on-cash return, DSCR, GRM and screening ratios."},"meta":{"timestamp":"2026-06-05T19:50:10.316Z","request_id":"ac415721-d5ba-48e3-978b-61c3fe191116"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":3950,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":690,"monthly_call_quota":41500,"rps_limit":6,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1820,"monthly_call_quota":205000,"rps_limit":15,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5400,"monthly_call_quota":1150000,"rps_limit":40,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/realestate-api"}