---
title: "Work out how much house someone can afford"
method: POST
path: "/api/v1/calculate-affordability"
tags: ["calculations"]
---

# Work out how much house someone can afford

`POST /api/v1/calculate-affordability`

## Request

- Base URL: `https://www.usmortgagecalc.com`
- URL: `https://www.usmortgagecalc.com/api/v1/calculate-affordability`
- Auth: none declared

Maximum affordable home price from income, existing debt payments and available down payment, using the 28/36 qualifying ratios. Reports which of the two ratios is the binding constraint, which is the actionable part: a buyer limited by the back-end ratio can raise their budget by clearing debt, one limited by the front-end ratio cannot.

## Request body

- object: Maximum affordable home price from income, debts and available down payment.
  - `annualGrossIncome` number, required: Household income before tax, in US dollars per year.
  - `monthlyDebtPayments` number: Existing minimum monthly debt payments: car loans, student loans, credit card minimums. Excludes housing.
  - `downPaymentAmount` number, required: Cash available for the down payment, in US dollars. A dollar amount, not a percentage.
  - `annualInterestRatePercent` number: Annual nominal interest rate as a percentage, for example 6.5 for 6.5%.
  - `loanTermYears` integer: Loan term in years. Most US mortgages are 15 or 30.
  - `annualInsurance` number: Annual homeowners insurance premium.
  - `monthlyHoa` number: Monthly HOA dues.
  - `frontEndRatioPercent` number: Maximum housing cost as a share of gross income. 28 is the conservative standard.
  - `backEndRatioPercent` number: Maximum total debt as a share of gross income. 36 is conservative; lenders often allow 45 and sometimes 50.
  - `state` string: Full US state name, for example "Texas". Used to look up the average property tax rate. Either this or propertyTaxRatePercent is required.
  - `propertyTaxRatePercent` number: Annual property tax as a percentage of home value. Omit and pass `state` instead to use that state's average.

## Response `200`

Calculation result.

- object
  - `data` object: The calculation result.
  - `meta` object
    - `operation` string
    - `computedAt` string, date-time

## Other responses

- `400`: Input failed validation. The message names the offending field.
- `429`: Rate limit exceeded. Retry after the interval in Retry-After.

---

[API](https://skmtc.dev/usmortgagecalc/apis/us-mortgage-calculator-api.md) · [All operations](https://skmtc.dev/usmortgagecalc/apis/us-mortgage-calculator-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usmortgagecalc/apis/us-mortgage-calculator-api/revisions/4439848058a8?raw)
