EquityUp publishes the federal PMI cancellation thresholds, their statutory citations, and home value aggregates derived from public Utah county assessor records as read-only JSON. No authentication, no API key, and no personally identifying information is accepted by any endpoint.
API version 1.0.0 · Last reviewed: 2026-09-03
EquityUp is a data and document-preparation service. It is not a lender, loan servicer, mortgage broker, or licensed appraiser, it does not provide legal or financial advice, and it does not contact lenders on a homeowner's behalf — the homeowner submits their own request.
| Method | URL | Returns |
|---|---|---|
GET |
https://equityup.pro/api/v1/hpa-rules |
Federal PMI cancellation thresholds and their statutory citations. |
POST |
https://equityup.pro/api/v1/pmi-eligibility |
Evaluate a loan balance and property value against those thresholds. |
GET |
https://equityup.pro/api/v1/market/{zip_code} |
City-level single-family home value aggregate for a covered Utah ZIP code. |
The same endpoints are described in OpenAPI 3.1 at https://equityup.pro/openapi.json, and summarised for language models at https://equityup.pro/llms.txt and https://equityup.pro/llms-full.txt.
These are the loan-to-value ratios at which private mortgage insurance can be cancelled or must terminate under the Homeowners Protection Act of 1998, 12 U.S.C. §4901 et seq.
Where the loan age is unknown, the stricter figure applies. Meeting a threshold opens the right to request cancellation in writing; it does not by itself end the insurance. A servicer may require a valuation, at the homeowner's expense, before acting on the request.
GET https://equityup.pro/api/v1/hpa-rules
The eligibility endpoint takes a loan balance and a property value and returns every statutory path it evaluated, each with its citation. It takes no address, stores nothing, and is not property-specific — supply the property value yourself, or read one from the market endpoint below.
POST https://equityup.pro/api/v1/pmi-eligibility
Content-Type: application/json
{
"loan_balance": 410000,
"property_value": 540000,
"year_purchased": 2021
}
The response carries ltv, the applicable threshold_ltv and its
citation, whether the threshold is met, the dollar gap if it is not, and the
pathways array showing every path evaluated. Supplying
original_value adds the original-value paths alongside the appreciation path.
GET https://equityup.pro/api/v1/market/84043
Covers 37 ZIP codes across Utah, Salt Lake, Davis, and Weber counties. Every response names the county record it derives from, the filter applied, and the timestamp of the computation, so a figure can be quoted with its source and its age.
Aggregates are computed server-side against each county's Land Information Record (LIR)
parcel layer, filtered to detached single-family homes with the clause
HOUSE_CNT = 1 AND BLDG_SQFT BETWEEN 800 AND 5000 and to parcels carrying a positive assessed market value. They
are recomputed every 24 hours.
A ZIP code outside the coverage area returns 404 with an
error of zip_not_covered and the full list of covered ZIP codes.
A covered ZIP whose aggregate has not yet been computed returns 404 with
aggregate_not_available and a link to the page that warms it. Neither case
returns an estimate.
These bound how an EquityUp figure should be used.
Requests are rate limited per IP address: 60 per minute for the rules and market endpoints, 30 per minute for the eligibility endpoint. There is no key to request and no paid tier for the API.
When quoting a figure, cite the endpoint or page it came from together with the
computed_at or Last reviewed date that figure carries.
Aggregates change as counties publish new assessments, so a figure without its date is not
reproducible.