Developers · Public beta

Useful calculations.
Clear assumptions.

Bring mortgage estimates, rental analysis and business-listing checks into your own app. Powered by the same calculation models as our free tools.

OpenAPI 3.1 specification ↗ Use the calculators

Beta contract

  • POST JSON to /api/v1/calculators/mortgage, /rental-property or /business under the same prefix. Every documented field is required. Unknown fields and numeric strings are rejected.
  • No key or payment. Shared service-wide limit: 120 POST requests per UTC minute. This is not a per-user allocation or availability guarantee. On 429, wait for the Retry-After interval and use backoff; do not retry in a tight loop.
  • Maximum request: 16 KiB UTF-8 JSON, delivered within five seconds. Use POST bodies; query parameters are rejected. Public CORS supports browser integrations without credentials.
  • The application does not store or log financial request bodies or responses. It stores a single aggregate counter. Infrastructure may record operational metadata such as request paths, timestamps and IP addresses; never send names, account numbers or financial inputs in URLs.
  • API schema: v1. Calculation version: 2026-09-07.1. Capture the returned version with your result. Beta model changes may occur; check the version rather than assuming results remain identical across releases.
  • Amounts are USD. Percentage fields use percentage points: 7 means 7%, not 0.07. Mortgage and business rates are user-supplied; no current market-rate lookup occurs.

Existing website calculators continue to calculate in the visitor’s tab. They do not send visitor inputs to this API.

Try a fictional example

This sends the documented sample numbers to the API. No account or key required.

mortgage

POST /api/v1/calculators/mortgage

Monthly payment components, loan fees and cash needed. Fixed fully amortizing loans only; USDA Guaranteed requires a 30-year term.

Request example: curl
curl https://losttofound.org/api/v1/calculators/mortgage \
  -H 'Content-Type: application/json' \
  --data '{
  "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
}'
Input fields, units and bounds
FieldType / boundsMeaning
pricenumber · 1 to 10000000price
downPercentnumber · 0 to 100down percent
ratenumber · 0 to 30User-supplied annual interest rate in percentage points. No rate lookup or lender quote is performed.
yearsinteger · 1 to 40Fully amortizing fixed-rate years; USDA must be 30.
loanTypeconventional, fha, va, usda, jumbo, otherloan type
vaUsefirst, subsequent, exemptva use
financeFeebooleanfinance fee
taxPercentnumber · 0 to 100tax percent
annualInsurancenumber · 0 to 1000000000annual insurance
monthlyHoanumber · 0 to 1000000000monthly hoa
pmiPercentnumber · 0 to 100pmi percent
maintenancePercentnumber · 0 to 100maintenance percent
closingPercentnumber · 0 to 100closing percent
extraCashnumber · 0 to 1000000000extra cash
reserveMonthsnumber · 0 to 120reserve months
savingsnumber · 0 to 1000000000savings
grossIncomenumber · 0 to 1000000000gross income
monthlyDebtsnumber · 0 to 1000000000monthly debts
customUpfrontFeenumber · 0 to 1000000000custom upfront fee
customMonthlyInsurancenumber · 0 to 1000000000custom monthly insurance

Dollar fields use annual amounts unless their name starts with “monthly”, or they are a price, balance, fee, savings or cash amount. See model assumptions in the response. Business ownerPay, labor, reinvestment and annualDebt are annual; rental rent, other, HOA and utilities are monthly.

Successful response 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."
}

rental-property

POST /api/v1/calculators/rental-property

Rental NOI, cash flow, cap rate, cash-on-cash return and downside. All operating income and cost assumptions are supplied by the caller.

Request example: curl
curl https://losttofound.org/api/v1/calculators/rental-property \
  -H 'Content-Type: application/json' \
  --data '{
  "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
}'
Input fields, units and bounds
FieldType / boundsMeaning
pricenumber · 1 to 1000000000Purchase price ($)
downnumber · 0 to 100Down payment (%)
ratenumber · 0 to 30Annual loan interest rate (%). Illustrative fixed rate; use a lender quote.
terminteger · 1 to 40Mortgage term (years)
closingnumber · 0 to 100Purchase closing costs (%)
rehabnumber · 0 to 1000000000Initial repairs / renovation ($)
reservesnumber · 0 to 1000000000Initial cash reserves ($)
rentnumber · 0 to 1000000000Monthly scheduled rent (all units) ($)
othernumber · 0 to 1000000000Monthly other income ($)
vacancynumber · 0 to 99Vacancy / uncollected income (%)
taxnumber · 0 to 1000000000Annual property taxes ($)
insurancenumber · 0 to 1000000000Annual property insurance ($)
hoanumber · 0 to 1000000000Monthly HOA ($)
utilitiesnumber · 0 to 1000000000Monthly owner-paid utilities / other costs ($)
repairsnumber · 0 to 1000000000Annual routine repairs ($)
capexnumber · 0 to 1000000000Annual capital replacement reserve ($)
managementnumber · 0 to 99Management fee on collected income (%)

Dollar fields use annual amounts unless their name starts with “monthly”, or they are a price, balance, fee, savings or cash amount. See model assumptions in the response. Business ownerPay, labor, reinvestment and annualDebt are annual; rental rent, other, HOA and utilities are monthly.

Successful response 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."
}

business

POST /api/v1/calculators/business

SDE / EBITDA range, acquisition financing, debt coverage and buyer cash. Assumed debt requires a positive annual payment schedule; deferred debt is outside this beta.

Request example: curl
curl https://losttofound.org/api/v1/calculators/business \
  -H 'Content-Type: application/json' \
  --data '{
  "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
}'
Input fields, units and bounds
FieldType / boundsMeaning
pricenumber · 1 to 10000000price
revenuenumber · 0 to 1000000000revenue
earningsnumber · -1000000000 to 1000000000earnings
basissde, ebitdabasis
unsupportednumber · 0 to 1000000000unsupported
labornumber · 0 to 1000000000labor
reinvestmentnumber · 0 to 1000000000reinvestment
ownerPaynumber · 0 to 1000000000owner pay
debtnumber · 0 to 1000000000debt
acquiredCashnumber · 0 to 1000000000acquired cash
annualDebtnumber · 0 to 1000000000Annual principal plus interest on assumed debt. Must be positive when debt is positive; deferred-payment debt is outside this beta.
downnumber · 0 to 100down
ratenumber · 0 to 100rate
yearsinteger · 1 to 30Acquisition loan amortization years.
costsnumber · 0 to 1000000000costs
workingCapitalnumber · 0 to 1000000000working capital
lownumber · 0 to 30low
highnumber · 0 to 30high
declinenumber · 0 to 100decline
targetnumber · 1 to 100target
assetsnumber · 0 to 1000000000assets

Dollar fields use annual amounts unless their name starts with “monthly”, or they are a price, balance, fee, savings or cash amount. See model assumptions in the response. Business ownerPay, labor, reinvestment and annualDebt are annual; rental rent, other, HOA and utilities are monthly.

Successful response 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."
}

Errors & responsible integration

Errors are JSON: {"error":{"code":"invalid_input","message":"…"}}. Expect 400 for malformed JSON or query parameters, 405 for unsupported methods, 408 for slow bodies, 413 for size, 415 for content type, 422 for inputs, 429 for rate limits and 503 for temporary unavailability. Never display a failed request as a zero-dollar estimate.

Return assumptions and source links alongside results, and identify unavailable values rather than converting null to zero. These are educational estimates, not loan quotes, appraisals, approvals or personalized advice.

For learning projects

Older students can compare a hand calculation, the browser calculator and an API response using fictional inputs. Explore calculator lesson plans and activities →