{"openapi":"3.1.0","info":{"title":"Lost to Found Calculator API","version":"1.0.0-beta.1","description":"Free anonymous beta. All fields required; no implicit defaults. 16 KiB JSON maximum. 120 POST requests per minute shared across the service. Calculation version 2026-09-07.1."},"servers":[{"url":"https://losttofound.org"}],"paths":{"/api/v1/calculators/mortgage":{"post":{"operationId":"calculate_mortgage","summary":"Calculate mortgage","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["price","downPercent","rate","years","loanType","vaUse","financeFee","taxPercent","annualInsurance","monthlyHoa","pmiPercent","maintenancePercent","closingPercent","extraCash","reserveMonths","savings","grossIncome","monthlyDebts","customUpfrontFee","customMonthlyInsurance"],"properties":{"price":{"type":"number","minimum":1,"maximum":10000000,"description":"price"},"downPercent":{"type":"number","minimum":0,"maximum":100,"description":"down percent"},"rate":{"type":"number","minimum":0,"maximum":30,"description":"User-supplied annual interest rate in percentage points. No rate lookup or lender quote is performed."},"years":{"type":"integer","minimum":1,"maximum":40,"description":"Fully amortizing fixed-rate years; USDA must be 30."},"loanType":{"type":"string","description":"loan type","enum":["conventional","fha","va","usda","jumbo","other"]},"vaUse":{"type":"string","description":"va use","enum":["first","subsequent","exempt"]},"financeFee":{"type":"boolean","description":"finance fee"},"taxPercent":{"type":"number","minimum":0,"maximum":100,"description":"tax percent"},"annualInsurance":{"type":"number","minimum":0,"maximum":1000000000,"description":"annual insurance"},"monthlyHoa":{"type":"number","minimum":0,"maximum":1000000000,"description":"monthly hoa"},"pmiPercent":{"type":"number","minimum":0,"maximum":100,"description":"pmi percent"},"maintenancePercent":{"type":"number","minimum":0,"maximum":100,"description":"maintenance percent"},"closingPercent":{"type":"number","minimum":0,"maximum":100,"description":"closing percent"},"extraCash":{"type":"number","minimum":0,"maximum":1000000000,"description":"extra cash"},"reserveMonths":{"type":"number","minimum":0,"maximum":120,"description":"reserve months"},"savings":{"type":"number","minimum":0,"maximum":1000000000,"description":"savings"},"grossIncome":{"type":"number","minimum":0,"maximum":1000000000,"description":"gross income"},"monthlyDebts":{"type":"number","minimum":0,"maximum":1000000000,"description":"monthly debts"},"customUpfrontFee":{"type":"number","minimum":0,"maximum":1000000000,"description":"custom upfront fee"},"customMonthlyInsurance":{"type":"number","minimum":0,"maximum":1000000000,"description":"custom monthly insurance"}}},"example":{"price":350000,"downPercent":10,"rate":6.71,"years":30,"loanType":"conventional","vaUse":"first","financeFee":true,"taxPercent":1.1,"annualInsurance":1800,"monthlyHoa":0,"pmiPercent":0.5,"maintenancePercent":1,"closingPercent":3,"extraCash":1500,"reserveMonths":3,"savings":0,"grossIncome":0,"monthlyDebts":0,"customUpfrontFee":0,"customMonthlyInsurance":0}}}},"responses":{"200":{"description":"Versioned results with assumptions and sources.","content":{"application/json":{"schema":{"type":"object","required":["apiVersion","calculationVersion","model","currency","result","assumptions","sources","disclaimer"],"properties":{"apiVersion":{"const":"v1"},"calculationVersion":{"type":"string"},"model":{"const":"mortgage"},"currency":{"const":"USD"},"result":{"type":"object","required":["down","baseLoan","feePercent","fundingFee","loan","principalInterest","tax","insurance","pmi","monthlyInsurance","annualInsurancePercent","insuranceLabel","upfrontFeeLabel","insuranceDuration","housing","maintenance","monthly","closing","cashFee","upfront","reserves","cashTarget","gap","debtToIncome","totalInterest"],"properties":{"down":{"type":["number","null"]},"baseLoan":{"type":["number","null"]},"feePercent":{"type":["number","null"]},"fundingFee":{"type":["number","null"]},"loan":{"type":["number","null"]},"principalInterest":{"type":["number","null"]},"tax":{"type":["number","null"]},"insurance":{"type":["number","null"]},"pmi":{"type":["number","null"]},"monthlyInsurance":{"type":["number","null"]},"annualInsurancePercent":{"type":["number","null"]},"insuranceLabel":{"type":"string"},"upfrontFeeLabel":{"type":"string"},"insuranceDuration":{"type":"string"},"housing":{"type":["number","null"]},"maintenance":{"type":["number","null"]},"monthly":{"type":["number","null"]},"closing":{"type":["number","null"]},"cashFee":{"type":["number","null"]},"upfront":{"type":["number","null"]},"reserves":{"type":["number","null"]},"cashTarget":{"type":["number","null"]},"gap":{"type":["number","null"]},"debtToIncome":{"type":["number","null"]},"totalInterest":{"type":["number","null"]}},"description":"See model-specific units in the examples. Null indicates an unavailable result, never zero."},"assumptions":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"string","format":"uri"}},"disclaimer":{"type":"string"}}},"example":{"apiVersion":"v1","calculationVersion":"2026-09-07.1","model":"mortgage","currency":"USD","result":{"down":35000,"baseLoan":315000,"feePercent":0,"fundingFee":0,"loan":315000,"principalInterest":2034.7155423173795,"tax":320.83333333333337,"insurance":150,"pmi":131.25,"monthlyInsurance":131.25,"annualInsurancePercent":0,"insuranceLabel":"Mortgage insurance (PMI)","upfrontFeeLabel":"VA funding fee","insuranceDuration":"PMI is an initial estimate; cancellation rules and lender terms determine when it ends.","housing":2636.798875650713,"maintenance":291.6666666666667,"monthly":2928.4655423173795,"closing":10500,"cashFee":0,"upfront":47000,"reserves":8785.396626952139,"cashTarget":55785.39662695214,"gap":55785.39662695214,"debtToIncome":null,"totalInterest":417497.5952342566},"assumptions":["User-supplied rate; no live quote or eligibility check.","All dollar amounts are USD; rate and percentage fields use percentage points, not fractions.","Fixed fully amortizing loan; mortgage insurance is an initial estimate.","Taxes, insurance, closing costs and upkeep are supplied assumptions."],"sources":["https://www.consumerfinance.gov/owning-a-home/","https://www.hud.gov/buying/loans","https://www.va.gov/housing-assistance/home-loans/"],"disclaimer":"Educational estimate, not a quote, appraisal, approval or personalized financial advice."}}}},"400":{"description":"Invalid JSON or URL parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"405":{"description":"Unsupported method","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"408":{"description":"Body timeout","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"413":{"description":"Body exceeds 16 KiB","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"415":{"description":"Unsupported content type","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"422":{"description":"Invalid, unknown or missing input","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"429":{"description":"Shared rate limit; observe Retry-After","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"503":{"description":"Temporary unavailability","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}},"/api/v1/calculators/rental-property":{"post":{"operationId":"calculate_rental_property","summary":"Calculate rental-property","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["price","down","rate","term","closing","rehab","reserves","rent","other","vacancy","tax","insurance","hoa","utilities","repairs","capex","management"],"properties":{"price":{"type":"number","minimum":1,"maximum":1000000000,"description":"Purchase price ($)"},"down":{"type":"number","minimum":0,"maximum":100,"description":"Down payment (%)"},"rate":{"type":"number","minimum":0,"maximum":30,"description":"Annual loan interest rate (%). Illustrative fixed rate; use a lender quote."},"term":{"type":"integer","minimum":1,"maximum":40,"description":"Mortgage term (years)"},"closing":{"type":"number","minimum":0,"maximum":100,"description":"Purchase closing costs (%)"},"rehab":{"type":"number","minimum":0,"maximum":1000000000,"description":"Initial repairs / renovation ($)"},"reserves":{"type":"number","minimum":0,"maximum":1000000000,"description":"Initial cash reserves ($)"},"rent":{"type":"number","minimum":0,"maximum":1000000000,"description":"Monthly scheduled rent (all units) ($)"},"other":{"type":"number","minimum":0,"maximum":1000000000,"description":"Monthly other income ($)"},"vacancy":{"type":"number","minimum":0,"maximum":99,"description":"Vacancy / uncollected income (%)"},"tax":{"type":"number","minimum":0,"maximum":1000000000,"description":"Annual property taxes ($)"},"insurance":{"type":"number","minimum":0,"maximum":1000000000,"description":"Annual property insurance ($)"},"hoa":{"type":"number","minimum":0,"maximum":1000000000,"description":"Monthly HOA ($)"},"utilities":{"type":"number","minimum":0,"maximum":1000000000,"description":"Monthly owner-paid utilities / other costs ($)"},"repairs":{"type":"number","minimum":0,"maximum":1000000000,"description":"Annual routine repairs ($)"},"capex":{"type":"number","minimum":0,"maximum":1000000000,"description":"Annual capital replacement reserve ($)"},"management":{"type":"number","minimum":0,"maximum":99,"description":"Management fee on collected income (%)"}}},"example":{"price":350000,"down":20,"rate":7,"term":30,"closing":3,"rehab":10000,"reserves":10000,"rent":2800,"other":0,"vacancy":5,"tax":4200,"insurance":1800,"hoa":0,"utilities":100,"repairs":2000,"capex":2000,"management":8}}}},"responses":{"200":{"description":"Versioned results with assumptions and sources.","content":{"application/json":{"schema":{"type":"object","required":["apiVersion","calculationVersion","model","currency","result","assumptions","sources","disclaimer"],"properties":{"apiVersion":{"const":"v1"},"calculationVersion":{"type":"string"},"model":{"const":"rental-property"},"currency":{"const":"USD"},"result":{"type":"object","required":["headline","metrics","rows","notes"],"properties":{"headline":{"type":"string"},"metrics":{"type":"array","items":{"type":"object","required":["label","value","format"],"properties":{"label":{"type":"string"},"value":{"type":["number","null"]},"format":{"type":"string"}}}},"rows":{"type":"array","items":{"type":"object","required":["label","value","format"],"properties":{"label":{"type":"string"},"value":{"type":["number","null"]},"format":{"type":"string"}}}},"notes":{"type":"array","items":{"type":"string"}}},"description":"See model-specific units in the examples. Null indicates an unavailable result, never zero."},"assumptions":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"string","format":"uri"}},"disclaimer":{"type":"string"}}},"example":{"apiVersion":"v1","calculationVersion":"2026-09-07.1","model":"rental-property","currency":"USD","result":{"headline":"This property needs cash each month","metrics":[{"label":"Monthly cash flow","value":-348.98031983504615,"format":"money"},{"label":"Cash needed to buy","value":100500,"format":"money"},{"label":"Cap rate","value":5.7618285714285715,"format":"percent"},{"label":"Cash-on-cash return","value":-4.166929192060252,"format":"percent"}],"rows":[{"label":"Scheduled annual income","value":33600,"format":"money"},{"label":"Vacancy allowance","value":1680,"format":"money"},{"label":"Operating expenses","value":11753.6,"format":"money"},{"label":"Net operating income (NOI)","value":20166.4,"format":"money"},{"label":"Capital replacement reserve","value":2000,"format":"money"},{"label":"Annual mortgage payments","value":22354.163838020555,"format":"money"},{"label":"NOI / debt service","value":0.9021317078163511,"format":"ratio"},{"label":"Monthly rent needed to break even","value":3199.2909837929587,"format":"money"},{"label":"Downside monthly cash flow","value":-709.6203198350462,"format":"money"}],"notes":["NOI excludes financing, income taxes and capital replacements. Cash flow includes your capital reserve. No appreciation or tax benefits are assumed.","Downside: scheduled rent and other income fall 10%, vacancy rises 5 percentage points, and fixed expenses remain unchanged.","Verify actual rent rolls, property taxes after sale, insurance quotes, local rules, repairs and vacancy. Rates and costs are editable assumptions, not investment-loan quotes."]},"assumptions":["USD; rent, other, HOA and utilities are monthly. Tax, insurance, repairs and capex are annual.","Vacancy and management are percentages; down and closing are percentages of price.","Before income taxes, appreciation and depreciation benefits.","Downside reduces scheduled income 10% and raises vacancy 5 percentage points."],"sources":["https://www.consumerfinance.gov/owning-a-home/prepare/figure-out-how-much-you-want-to-spend/","https://www.irs.gov/publications/p527"],"disclaimer":"Educational estimate, not a quote, appraisal, approval or personalized financial advice."}}}},"400":{"description":"Invalid JSON or URL parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"405":{"description":"Unsupported method","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"408":{"description":"Body timeout","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"413":{"description":"Body exceeds 16 KiB","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"415":{"description":"Unsupported content type","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"422":{"description":"Invalid, unknown or missing input","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"429":{"description":"Shared rate limit; observe Retry-After","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"503":{"description":"Temporary unavailability","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}},"/api/v1/calculators/business":{"post":{"operationId":"calculate_business","summary":"Calculate business","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["price","revenue","earnings","basis","unsupported","labor","reinvestment","ownerPay","debt","acquiredCash","annualDebt","down","rate","years","costs","workingCapital","low","high","decline","target","assets"],"properties":{"price":{"type":"number","minimum":1,"maximum":10000000,"description":"price"},"revenue":{"type":"number","minimum":0,"maximum":1000000000,"description":"revenue"},"earnings":{"type":"number","minimum":-1000000000,"maximum":1000000000,"description":"earnings"},"basis":{"type":"string","description":"basis","enum":["sde","ebitda"]},"unsupported":{"type":"number","minimum":0,"maximum":1000000000,"description":"unsupported"},"labor":{"type":"number","minimum":0,"maximum":1000000000,"description":"labor"},"reinvestment":{"type":"number","minimum":0,"maximum":1000000000,"description":"reinvestment"},"ownerPay":{"type":"number","minimum":0,"maximum":1000000000,"description":"owner pay"},"debt":{"type":"number","minimum":0,"maximum":1000000000,"description":"debt"},"acquiredCash":{"type":"number","minimum":0,"maximum":1000000000,"description":"acquired cash"},"annualDebt":{"type":"number","minimum":0,"maximum":1000000000,"description":"Annual principal plus interest on assumed debt. Must be positive when debt is positive; deferred-payment debt is outside this beta."},"down":{"type":"number","minimum":0,"maximum":100,"description":"down"},"rate":{"type":"number","minimum":0,"maximum":100,"description":"rate"},"years":{"type":"integer","minimum":1,"maximum":30,"description":"Acquisition loan amortization years."},"costs":{"type":"number","minimum":0,"maximum":1000000000,"description":"costs"},"workingCapital":{"type":"number","minimum":0,"maximum":1000000000,"description":"working capital"},"low":{"type":"number","minimum":0,"maximum":30,"description":"low"},"high":{"type":"number","minimum":0,"maximum":30,"description":"high"},"decline":{"type":"number","minimum":0,"maximum":100,"description":"decline"},"target":{"type":"number","minimum":1,"maximum":100,"description":"target"},"assets":{"type":"number","minimum":0,"maximum":1000000000,"description":"assets"}}},"example":{"price":450000,"revenue":900000,"earnings":180000,"basis":"sde","unsupported":15000,"labor":0,"reinvestment":15000,"ownerPay":60000,"debt":0,"acquiredCash":0,"annualDebt":0,"down":20,"rate":10,"years":10,"costs":15000,"workingCapital":30000,"low":2,"high":3,"decline":20,"target":1.25,"assets":0}}}},"responses":{"200":{"description":"Versioned results with assumptions and sources.","content":{"application/json":{"schema":{"type":"object","required":["apiVersion","calculationVersion","model","currency","result","assumptions","sources","disclaimer"],"properties":{"apiVersion":{"const":"v1"},"calculationVersion":{"type":"string"},"model":{"const":"business"},"currency":{"const":"USD"},"result":{"type":"object","required":["normalized","operatingPrice","lowValue","highValue","loan","payment","debtService","available","residual","surplus","coverage","stressCoverage","stressedResidual","cashNeeded","earningsMultiple","revenueMultiple","margin","leverage","cashReturn","assetEquity","pricePosition"],"properties":{"normalized":{"type":["number","null"]},"operatingPrice":{"type":["number","null"]},"lowValue":{"type":["number","null"]},"highValue":{"type":["number","null"]},"loan":{"type":["number","null"]},"payment":{"type":["number","null"]},"debtService":{"type":["number","null"]},"available":{"type":["number","null"]},"residual":{"type":["number","null"]},"surplus":{"type":["number","null"]},"coverage":{"type":["number","null"]},"stressCoverage":{"type":["number","null"]},"stressedResidual":{"type":["number","null"]},"cashNeeded":{"type":["number","null"]},"earningsMultiple":{"type":["number","null"]},"revenueMultiple":{"type":["number","null"]},"margin":{"type":["number","null"]},"leverage":{"type":["number","null"]},"cashReturn":{"type":["number","null"]},"assetEquity":{"type":["number","null"]},"pricePosition":{"type":"string"}},"description":"See model-specific units in the examples. Null indicates an unavailable result, never zero."},"assumptions":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"string","format":"uri"}},"disclaimer":{"type":"string"}}},"example":{"apiVersion":"v1","calculationVersion":"2026-09-07.1","model":"business","currency":"USD","result":{"normalized":165000,"operatingPrice":450000,"lowValue":330000,"highValue":495000,"loan":360000,"payment":4757.42652774342,"debtService":57089.11833292103,"available":150000,"residual":92910.88166707897,"surplus":32910.88166707897,"coverage":2.6274709503352227,"stressCoverage":2.0494273412614734,"stressedResidual":-89.11833292103256,"cashNeeded":135000,"earningsMultiple":2.727272727272727,"revenueMultiple":0.5,"margin":18.333333333333332,"leverage":2.1818181818181817,"cashReturn":24.37843086450294,"assetEquity":0,"pricePosition":"Within your selected range"},"assumptions":["All dollars are USD and cash-flow inputs are annual unless specified.","User-selected SDE or EBITDA multiples; no appraisal or automatic comparable-deal lookup.","One fully amortizing acquisition loan; transferred debt payments are supplied separately.","No tax, balloon, refinancing or lender eligibility model."],"sources":["https://www.bizbuysell.com/insight-report-data-tables/","https://www.sba.gov/loans/7a-loans/"],"disclaimer":"Educational estimate, not a quote, appraisal, approval or personalized financial advice."}}}},"400":{"description":"Invalid JSON or URL parameters","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"405":{"description":"Unsupported method","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"408":{"description":"Body timeout","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"413":{"description":"Body exceeds 16 KiB","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"415":{"description":"Unsupported content type","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"422":{"description":"Invalid, unknown or missing input","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"429":{"description":"Shared rate limit; observe Retry-After","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"503":{"description":"Temporary unavailability","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}}}