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.
HTTP GET
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.
Live Demo!
https://api.api-ninjas.com/v1/mortgagecalculator?loan_amount=
&interest_rate=
&duration_years=
{
"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 = 'https://api.api-ninjas.com/v1/mortgagecalculator?loan_amount=200000&interest_rate=3.5&duration_years=30'
response = requests.get(api_url, headers={'X-Api-Key': 'YOUR_API_KEY'})
if response.status_code == requests.codes.ok:
print(response.text)
else:
print("Error:", response.status_code, response.text)
$.ajax({
method: 'GET',
url: 'https://api.api-ninjas.com/v1/mortgagecalculator?loan_amount=200000&interest_rate=3.5&duration_years=30'
headers: { 'X-Api-Key': 'YOUR_API_KEY'},
contentType: 'application/json',
success: function(result) {
console.log(result);
},
error: function ajaxError(jqXHR) {
console.error('Error: ', jqXHR.responseText);
}
});
const request = require('request');
request.get({
url: 'https://api.api-ninjas.com/v1/mortgagecalculator?loan_amount=200000&interest_rate=3.5&duration_years=30'
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 java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import com.fasterxml.jackson.databind.ObjectMapper;
URL url = new URL("https://api.api-ninjas.com/v1/mortgagecalculator?loan_amount=200000&interest_rate=3.5&duration_years=30");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("accept", "application/json");
InputStream responseStream = connection.getInputStream();
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(responseStream);
System.out.println(root.path("fact").asText());
let url = URL(string: "https://api.api-ninjas.com/v1/mortgagecalculator?loan_amount=200000&interest_rate=3.5&duration_years=30"!)!
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)!)
}
task.resume()