API illustration

Zillow API Network

CalculateMonthlyPaymentsAdvanced API

The CalculateMonthlyPaymentsAdvanced API returns the estimated monthly payment, total payment, and amortization table for a given loan amount. It includes detailed monthly payment breakdown including taxes and insurance, as well as payment totals over the life of the loan.

The CalculateMonthlyPaymentsAdvanced API Web Service is located at: http://www.zillow.com/webservice/mortgage/CalculateMonthlyPaymentsAdvanced.htm

The parameters of the API are:

ParameterDescriptionRequired
zws-idThe Zillow Web Service Identifier. Each subscriber to Zillow Web Services is uniquely identified by an ID sequence and every request to Web services requires this ID. Click here to get yours. Yes
priceThe price of the property for which monthly payment data will be calculated.Yes (if no amount)
downThe percentage of the total property price that will be placed as a down payment. If omitted, a 20% down payment is assumed. If the down payment is less than 20%, a monthly private mortgage insurance amount is estimated.No
amountThe requested loan amount. This field is not necessary if passing in a price. If used, we assume at least a 20% down payment and will not include PMI.Yes (if no price)
rateThe annual interest rate for the loan. If no rate is passed, we use the current 30 year fixed rate from Zillow Mortgage Marketplace.No
scheduleThe type of amortization schedule to return in the result set. If omitted, no table will be returned. Options:
  • yearly
  • monthly
  • both
  • none
No
terminmonthsThe term of the loan in months. If omitted, a 360 month term is assumed.No
propertytaxThe annual property tax amount in dollars. If omitted, the property tax will be estimated by Zillow. (Note that estimate requires zip parameter.)No
hazardThe annual hazard insurance in dollars. If omitted, the hazard insurance will be estimated by Zillow. (Note that estimate requires zip parameter.)No
pmiThe monthly Private Mortgage Insurance in dollars. If omitted, the PMI will be estimated by Zillow.No
hoaThe annual home owners' association dues. If omitted, it will be assumed to be $0.No
zipThe ZIP code in which the property is located. If omitted, property tax and hazard insurance data cannot be estimated by Zillow.No
outputThe type of output desired. Specify 'xml' for XML output and 'json' for JSON output. If omitted, 'xml' is assumed. No
callbackThe name of the JavaScript callback function used to process the returned JSON data. If specified, the returned JSON will be wrapped in a function call with the specified function name. This parameter is intended for use with dynamic script tags. The callback function is only used for JSON output. No

The API result set:

ParameterDescription
monthlyprincipalandinterestThe monthly principal and interest payment in dollars.
monthlypropertytaxesThe monthly property taxes in dollars either calculated from the supplied annual property taxes or estimated if ZIP was supplied.
monthlyhazardinsuranceThe monthly hazard insurance in dollars either calculated from the supplied annual hazard insurance or estimated if ZIP was supplied.
monthlypmiThe monthly Private Mortgage Insurance in dollars. If supplied as parameter, amount will be returned, otherwise it will be estimated.
monthlyhoaThe monthly home owners' association supplied as a parameter. If omitted, a zero will be returned.
totalmonthlypaymentThe total monthly payment which includes principal, interest, taxes, insurance, PMI, and HOA dues.
totalpaymentsThe sum of all payments over the term of the loan.
totalinterestpaymentsThe sum of all of the interest paid as part of the Principal and Interest payments over the life of the loan.
totalprincipal The sum of the entire principal paid as part of the Principal and Interest payments over the life of the loan.
totaltaxesfeesandinsuranceThe sum of all of the property tax, hazard insurance, PMI, and HOA dues over the life of the loan.
Amortization Schedule

A table of integers that shows payment details. The type of table returned is based on schedule input parameter. If "none" was passed or field was omitted, no schedule is returned.

List by month or year of the following fields:

  • period
  • beginningbalance
  • payment
  • principal
  • interest
  • endingbalance

Messages and Codes

The following table summarizes possible return codes from the API:

Error codeDescriptionResolution
0Request successfully processed
1Service error-there was a server-side error while processing the requestCheck to see if your url is properly formed: delimiters, character cases, etc.
2The specified ZWSID parameter was invalid or not specified in the requestCheck if you have provided a ZWSID in your API call. If yes, check if the ZWSID is keyed in correctly. If it still doesn't work, contact Zillow to get help with fixing your ZWSID.
3Web services are currently unavailable The Zillow Web Service is currently not available. Please come back later and try again.
4The API call is currently unavailableThe Zillow Web Service is currently not available. Please come back later and try again.
500Invalid priceMake sure the 'price' parameter is specified and is a valid integer.
501Invalid down paymentMake sure the 'down' parameter is specified and is a valid integer.
502Invalid loan amountMake sure the 'amount' parameter is specified and is a valid integer.
503Invalid interest rateMake sure the 'rate' parameter is specified and is a valid float.
504Invalid amortization schedule typeMake sure the 'schedule' parameter is specified and matches one of the expected values.
505Invalid termMake sure the 'term' parameter is specified and is a valid integer.
506Invalid estimate BooleanMake sure the 'estimate' parameter is specified and is a valid Boolean (true/false).
507Invalid property taxMake sure the 'propertytax' parameter is specified and is a valid integer.
508Invalid hazard insuranceMake sure the 'hazard' parameter is specified and is a valid integer.
509Invalid PMIMake sure the 'pmi' parameter is specified and is a valid integer.
510Invalid HOA duesMake sure the 'hoa' parameter is specified and is a valid integer.
511Invalid ZIP codeMake sure the 'zip' parameter is specified and is a valid five digit ZIP code.

Sample API Calls

Below is an example call to the API returning XML data:
http://www.zillow.com/webservice/mortgage/CalculateMonthlyPaymentsAdvanced.htm?zws-id=<ZWSID>&propertytax=2000&zip=98103&hoa=3200&price=300000&schedule=yearly&terminmonths=360&hazard=1000&rate=6.000&pmi=150

Sample API Output (XML)

<?xml version="1.0" encoding="utf-8"?>
<MonthlyPaymentsAdvanced:paymentsdetails xsi:schemaLocation="http://www.zillow.com/static/xsd/MonthlyPaymentsAdvanced.xsd http://www.zillow.com/vstatic/254f791ffb969e3098e3544e029df057/static/xsd/MonthlyPaymentsAdvanced.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:MonthlyPaymentsAdvanced="http://www.zillow.com/static/xsd/MonthlyPaymentsAdvanced.xsd">
    <request>
        <price>300000</price>
        <rate>6.0</rate>
        <schedule>yearly</schedule>
        <terminmonths>360</terminmonths>
        <propertytax>2000</propertytax>
        <hazard>1000</hazard>
        <pmi>150</pmi>
        <hoa>3200</hoa>
        <zip>98103</zip>
        <output>xml</output>
    </request>
    <message>
        <text>Request successfully processed</text>
        <code>0</code>
    </message>
    <response>
        <monthlyprincipalandinterest>1439</monthlyprincipalandinterest>
        <monthlypropertytaxes>166</monthlypropertytaxes>
        <monthlyhazardinsurance>83</monthlyhazardinsurance>
        <monthlypmi>150</monthlypmi>
        <monthlyhoadues>3200</monthlyhoadues>
        <totalmonthlypayment>5038</totalmonthlypayment>
        <totalpayments>1813652</totalpayments>
        <totalinterest>278012</totalinterest>
        <totalprincipal>240000</totalprincipal>
        <totaltaxesfeesandinsurance>1295640</totaltaxesfeesandinsurance>
        <amortizationschedule frequency="annual">
            <payment>
                <beginningbalance>240000</beginningbalance>
                <amount>17267</amount>
                <principal>2947</principal>
                <interest>14320</interest>
                <endingbalance>237053</endingbalance>
            </payment>
            <payment>
                <beginningbalance>237053</beginningbalance>
                <amount>17267</amount>
                <principal>3129</principal>
                <interest>14138</interest>
                <endingbalance>233924</endingbalance>
            </payment>
            <payment>
                <beginningbalance>233924</beginningbalance>
                <amount>17267</amount>
                <principal>3322</principal>
                <interest>13945</interest>
                <endingbalance>230602</endingbalance>
            </payment>
            <payment>
                <beginningbalance>230602</beginningbalance>
                <amount>17267</amount>
                <principal>3527</principal>
                <interest>13740</interest>
                <endingbalance>227075</endingbalance>
            </payment>
            <payment>
                <beginningbalance>227075</beginningbalance>
                <amount>17267</amount>
                <principal>3744</principal>
                <interest>13523</interest>
                <endingbalance>223330</endingbalance>
            </payment>
            <payment>
                <beginningbalance>223330</beginningbalance>
                <amount>17267</amount>
                <principal>3975</principal>
                <interest>13292</interest>
                <endingbalance>219355</endingbalance>
            </payment>
            <payment>
                <beginningbalance>219355</beginningbalance>
                <amount>17267</amount>
                <principal>4221</principal>
                <interest>13046</interest>
                <endingbalance>215135</endingbalance>
            </payment>
            <payment>
                <beginningbalance>215135</beginningbalance>
                <amount>17267</amount>
                <principal>4481</principal>
                <interest>12786</interest>
                <endingbalance>210654</endingbalance>
            </payment>
            <payment>
                <beginningbalance>210654</beginningbalance>
                <amount>17267</amount>
                <principal>4757</principal>
                <interest>12510</interest>
                <endingbalance>205896</endingbalance>
            </payment>
            <payment>
                <beginningbalance>205896</beginningbalance>
                <amount>17267</amount>
                <principal>5051</principal>
                <interest>12216</interest>
                <endingbalance>200846</endingbalance>
            </payment>
            <payment>
                <beginningbalance>200846</beginningbalance>
                <amount>17267</amount>
                <principal>5362</principal>
                <interest>11905</interest>
                <endingbalance>195484</endingbalance>
            </payment>
            <payment>
                <beginningbalance>195484</beginningbalance>
                <amount>17267</amount>
                <principal>5693</principal>
                <interest>11574</interest>
                <endingbalance>189791</endingbalance>
            </payment>
            <payment>
                <beginningbalance>189791</beginningbalance>
                <amount>17267</amount>
                <principal>6044</principal>
                <interest>11223</interest>
                <endingbalance>183747</endingbalance>
            </payment>
            <payment>
                <beginningbalance>183747</beginningbalance>
                <amount>17267</amount>
                <principal>6417</principal>
                <interest>10850</interest>
                <endingbalance>177330</endingbalance>
            </payment>
            <payment>
                <beginningbalance>177330</beginningbalance>
                <amount>17267</amount>
                <principal>6813</principal>
                <interest>10454</interest>
                <endingbalance>170517</endingbalance>
            </payment>
            <payment>
                <beginningbalance>170517</beginningbalance>
                <amount>17267</amount>
                <principal>7233</principal>
                <interest>10034</interest>
                <endingbalance>163284</endingbalance>
            </payment>
            <payment>
                <beginningbalance>163284</beginningbalance>
                <amount>17267</amount>
                <principal>7679</principal>
                <interest>9588</interest>
                <endingbalance>155606</endingbalance>
            </payment>
            <payment>
                <beginningbalance>155606</beginningbalance>
                <amount>17267</amount>
                <principal>8152</principal>
                <interest>9115</interest>
                <endingbalance>147453</endingbalance>
            </payment>
            <payment>
                <beginningbalance>147453</beginningbalance>
                <amount>17267</amount>
                <principal>8655</principal>
                <interest>8612</interest>
                <endingbalance>138798</endingbalance>
            </payment>
            <payment>
                <beginningbalance>138798</beginningbalance>
                <amount>17267</amount>
                <principal>9189</principal>
                <interest>8078</interest>
                <endingbalance>129609</endingbalance>
            </payment>
            <payment>
                <beginningbalance>129609</beginningbalance>
                <amount>17267</amount>
                <principal>9756</principal>
                <interest>7511</interest>
                <endingbalance>119853</endingbalance>
            </payment>
            <payment>
                <beginningbalance>119853</beginningbalance>
                <amount>17267</amount>
                <principal>10358</principal>
                <interest>6909</interest>
                <endingbalance>109495</endingbalance>
            </payment>
            <payment>
                <beginningbalance>109495</beginningbalance>
                <amount>17267</amount>
                <principal>10996</principal>
                <interest>6271</interest>
                <endingbalance>98499</endingbalance>
            </payment>
            <payment>
                <beginningbalance>98499</beginningbalance>
                <amount>17267</amount>
                <principal>11675</principal>
                <interest>5592</interest>
                <endingbalance>86824</endingbalance>
            </payment>
            <payment>
                <beginningbalance>86824</beginningbalance>
                <amount>17267</amount>
                <principal>12395</principal>
                <interest>4872</interest>
                <endingbalance>74429</endingbalance>
            </payment>
            <payment>
                <beginningbalance>74429</beginningbalance>
                <amount>17267</amount>
                <principal>13159</principal>
                <interest>4108</interest>
                <endingbalance>61270</endingbalance>
            </payment>
            <payment>
                <beginningbalance>61270</beginningbalance>
                <amount>17267</amount>
                <principal>13971</principal>
                <interest>3296</interest>
                <endingbalance>47299</endingbalance>
            </payment>
            <payment>
                <beginningbalance>47299</beginningbalance>
                <amount>17267</amount>
                <principal>14833</principal>
                <interest>2434</interest>
                <endingbalance>32466</endingbalance>
            </payment>
            <payment>
                <beginningbalance>32466</beginningbalance>
                <amount>17267</amount>
                <principal>15747</principal>
                <interest>1520</interest>
                <endingbalance>16719</endingbalance>
            </payment>
            <payment>
                <beginningbalance>16719</beginningbalance>
                <amount>17267</amount>
                <principal>16719</principal>
                <interest>548</interest>
                <endingbalance>0</endingbalance>
            </payment>
        </amortizationschedule>
    </response>
</MonthlyPaymentsAdvanced:paymentsdetails>
            

Below is an example call to the API returning JSON data:
http://www.zillow.com/webservice/mortgage/CalculateMonthlyPaymentsAdvanced.htm?zws-id=<ZWSID>&propertytax=2000&zip=98103&hoa=3200&price=300000&schedule=yearly&terminmonths=360&hazard=1000&rate=6.000&pmi=150&output=json&callback=cb

Sample API Output (JSON)

cb({
    "request": {
        "hoa": "3200",
        "callback": "cb",
        "propertytax": "2000",
        "output": "json",
        "terminmonths": "360",
        "price": "300000",
        "schedule": "yearly",
        "zip": "98103",
        "pmi": "150",
        "hazard": "1000",
        "rate": "6.0"
    },
    "message": {
        "text": "Request successfully processed",
        "code": "0"
    },
    "response": {
        "monthlyPrincipalAndInterest": 1439,
        "monthlyPropertyTaxes": 166,
        "monthlyHazardInsurance": 83,
        "monthlyPmi": 150,
        "monthlyHoaDues": 3200,
        "totalMonthlyPayment": 5038,
        "totalPayments": 1813652,
        "totalInterest": 278012,
        "totalPrincipal": 240000,
        "totalTaxesFeesAndInsurance": 1295640,
        "annualAmortizationSchedule": [{
            "beginningBalance": 240000,
            "amount": 17267,
            "principal": 2947,
            "interest": 14320,
            "endingBalance": 237053
        }, {
            "beginningBalance": 237053,
            "amount": 17267,
            "principal": 3129,
            "interest": 14138,
            "endingBalance": 233924
        }, {
            "beginningBalance": 233924,
            "amount": 17267,
            "principal": 3322,
            "interest": 13945,
            "endingBalance": 230602
        }, {
            "beginningBalance": 230602,
            "amount": 17267,
            "principal": 3527,
            "interest": 13740,
            "endingBalance": 227075
        }, {
            "beginningBalance": 227075,
            "amount": 17267,
            "principal": 3744,
            "interest": 13523,
            "endingBalance": 223330
        }, {
            "beginningBalance": 223330,
            "amount": 17267,
            "principal": 3975,
            "interest": 13292,
            "endingBalance": 219355
        }, {
            "beginningBalance": 219355,
            "amount": 17267,
            "principal": 4221,
            "interest": 13046,
            "endingBalance": 215135
        }, {
            "beginningBalance": 215135,
            "amount": 17267,
            "principal": 4481,
            "interest": 12786,
            "endingBalance": 210654
        }, {
            "beginningBalance": 210654,
            "amount": 17267,
            "principal": 4757,
            "interest": 12510,
            "endingBalance": 205896
        }, {
            "beginningBalance": 205896,
            "amount": 17267,
            "principal": 5051,
            "interest": 12216,
            "endingBalance": 200846
        }, {
            "beginningBalance": 200846,
            "amount": 17267,
            "principal": 5362,
            "interest": 11905,
            "endingBalance": 195484
        }, {
            "beginningBalance": 195484,
            "amount": 17267,
            "principal": 5693,
            "interest": 11574,
            "endingBalance": 189791
        }, {
            "beginningBalance": 189791,
            "amount": 17267,
            "principal": 6044,
            "interest": 11223,
            "endingBalance": 183747
        }, {
            "beginningBalance": 183747,
            "amount": 17267,
            "principal": 6417,
            "interest": 10850,
            "endingBalance": 177330
        }, {
            "beginningBalance": 177330,
            "amount": 17267,
            "principal": 6813,
            "interest": 10454,
            "endingBalance": 170517
        }, {
            "beginningBalance": 170517,
            "amount": 17267,
            "principal": 7233,
            "interest": 10034,
            "endingBalance": 163284
        }, {
            "beginningBalance": 163284,
            "amount": 17267,
            "principal": 7679,
            "interest": 9588,
            "endingBalance": 155606
        }, {
            "beginningBalance": 155606,
            "amount": 17267,
            "principal": 8152,
            "interest": 9115,
            "endingBalance": 147453
        }, {
            "beginningBalance": 147453,
            "amount": 17267,
            "principal": 8655,
            "interest": 8612,
            "endingBalance": 138798
        }, {
            "beginningBalance": 138798,
            "amount": 17267,
            "principal": 9189,
            "interest": 8078,
            "endingBalance": 129609
        }, {
            "beginningBalance": 129609,
            "amount": 17267,
            "principal": 9756,
            "interest": 7511,
            "endingBalance": 119853
        }, {
            "beginningBalance": 119853,
            "amount": 17267,
            "principal": 10358,
            "interest": 6909,
            "endingBalance": 109495
        }, {
            "beginningBalance": 109495,
            "amount": 17267,
            "principal": 10996,
            "interest": 6271,
            "endingBalance": 98499
        }, {
            "beginningBalance": 98499,
            "amount": 17267,
            "principal": 11675,
            "interest": 5592,
            "endingBalance": 86824
        }, {
            "beginningBalance": 86824,
            "amount": 17267,
            "principal": 12395,
            "interest": 4872,
            "endingBalance": 74429
        }, {
            "beginningBalance": 74429,
            "amount": 17267,
            "principal": 13159,
            "interest": 4108,
            "endingBalance": 61270
        }, {
            "beginningBalance": 61270,
            "amount": 17267,
            "principal": 13971,
            "interest": 3296,
            "endingBalance": 47299
        }, {
            "beginningBalance": 47299,
            "amount": 17267,
            "principal": 14833,
            "interest": 2434,
            "endingBalance": 32466
        }, {
            "beginningBalance": 32466,
            "amount": 17267,
            "principal": 15747,
            "interest": 1520,
            "endingBalance": 16719
        }, {
            "beginningBalance": 16719,
            "amount": 17267,
            "principal": 16719,
            "interest": 548,
            "endingBalance": 0
        }]
    }
});
            

Have a question? Find help from a Pro here.