Mortgage Calculator API

The Mortgage Calculator API provides detailed mortgage and other home financing payment information. It uses the standard mortgage calculation formulas to calculate interest and monthly/annual payments.



Returns monthly payment, annual payment and interest rate informations based on give mortgage parameters.


Either loan_amount or (home_value + downpayment) must be set.

loan_amount - principle loan amount.

home_value - total value of the home or asset. Must be greater than downpayment.

downpayment - downpayment on the home or asset. Cannot exceed home_value.

interest_rate (required) - annual interest rate (in %). For example, a 3.5% interest rate would be 3.5. Cannot exceed 10000.

duration_years (optional) - duration of the loan in years. Must be between 1 and 10000. If not set, default value is 30 years.

monthly_hoa (optional) - monthly homeowner association fees.

annual_property_tax (optional) - annual property tax owed.

annual_home_insurance (optional) - annual homeowner's insurance bill.


X-Api-Key (required) - API Key associated with your account.

Sample Request URL

Live Demo!

Sample Response

  "monthly_payment": {
    "total": 898,
    "mortgage": 898,
    "property_tax": 0,
    "hoa": 0,
    "annual_home_ins": 0
  "annual_payment": {
    "total": 10777,
    "mortgage": 10777,
    "property_tax": 0,
    "hoa": 0,
    "home_insurance": 0
  "total_interest_paid": 123312

import requests

api_url = ''
response = requests.get(api_url, headers={'X-Api-Key': 'YOUR_API_KEY'})
if response.status_code ==
    print("Error:", response.status_code, response.text)

    method: 'GET',
    url: ''
    headers: { 'X-Api-Key': 'YOUR_API_KEY'},
    contentType: 'application/json',
    success: function(result) {
    error: function ajaxError(jqXHR) {
        console.error('Error: ', jqXHR.responseText);
const request = require('request');
  url: ''
  headers: {
    'X-Api-Key': 'YOUR_API_KEY'
}, function(error, response, body) {
  if(error) return console.error('Request failed:', error);
  else if(response.statusCode != 200) return console.error('Error:', response.statusCode, body.toString('utf8'));
  else console.log(body)

import com.fasterxml.jackson.databind.ObjectMapper;

URL url = new URL("");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("accept", "application/json");
InputStream responseStream = connection.getInputStream();
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(responseStream);
let url = URL(string: ""!)!
var request = URLRequest(url: url)
request.setValue("YOUR_API_KEY", forHTTPHeaderField: "X-Api-Key")
let task = URLSession.shared.dataTask(with: request) {(data, response, error) in
    guard let data = data else { return }
    print(String(data: data, encoding: .utf8)!)
If your programming language is not listed in the Code Example above, you can still make API calls by using a HTTP request library written in your programming language and following the above documentation.