For agents & developers
Underwriting API
The same multifamily math behind our free calculators, available as JSON. No API key, no account, no rate-limit tier. Every endpoint is a pure function of its query string — same input, same answer, no state stored.
Base URL
https://keptdo.com/api/v1
Machine-readable description: /openapi.json (OpenAPI 3.1) · Catalog: /.well-known/api-catalog
Endpoints
All endpoints accept GET and return JSON. Percentages are passed as percents, so 6.5 means 6.5%.
Net operating income from a cap rate and price.
/api/v1/noi?capRate=6.5&price=8000000Cap rate from NOI and price, plus price per unit.
/api/v1/cap-rate?noi=570000&price=8000000&units=100Monthly payment, annual debt service, and total interest.
/api/v1/loan-payment?principal=1000000&rate=6.5&years=30Year-by-year payoff schedule, with optional extra payment.
/api/v1/amortization?principal=1000000&rate=6.5&extraMonthly=500Internal rate of return for a cash flow series.
/api/v1/irr?cashflows=-1000000,80000,85000,90000,1400000Full deal screen: NOI, value, DSCR, cash-on-cash, IRR, equity multiple.
/api/v1/napkin?grossRent=1200000&capRate=6.5&units=100Analyst hours and dollars saved versus a manual underwrite.
/api/v1/roi?dealsPerYear=30&hourlyRate=150Response shape
Every calculation echoes the inputs it used, so a result is self-describing even when defaults filled in the gaps.
{
"inputs": { "capRate": 6.5, "price": 8000000 },
"result": { "noi": 520000, "noiMonthly": 43333.33 },
"formula": "NOI = cap rate × purchase price",
"disclaimer": "Quick screen only — not investment, tax, or legal advice."
}A value that cannot be computed — a cap rate with no price, an IRR that cannot be bracketed — comes back as null rather than zero, so it is never mistaken for a real answer.
Errors
A missing, non-numeric, or out-of-range parameter returns 400 with a message naming the field at fault.
{
"error": "bad_request",
"message": "Missing required parameter \"capRate\"."
}Using this from an agent
We publish a skill describing how to screen a deal with these endpoints, including how to read the output and which assumptions to disclose.
Skills index: /.well-known/agent-skills/index.json
Skill: multifamily-napkin-underwriting
Pages on this site also return markdown to clients that send Accept: text/markdown.
Limits and honesty
These are screens, not investment advice. The napkin model assumes a level fixed-rate loan, operating expenses held at the entered ratio, NOI growing at the entered rate, and a sale priced on forward-year NOI at the exit cap rate. It excludes capital expenditures, income taxes, and reserves — so a heavy value-add deal will look better here than it will in reality.
There is no authentication because there is nothing to protect: no data is stored and no account exists. Please be reasonable with request volume. If you need something this API does not cover, email mdelval@delvalinvestmentgroup.com.
For a full underwrite — normalized T-12, rent roll analysis, scenario modeling, market comps, and LP-ready output — see the Multifamily Deal Analyzer Pro.