Giter Club home page Giter Club logo

node-zillow's Introduction

node-zillow Build Status

Node wrapper for the Zillow API

Getting Started

Install the module with: npm install node-zillow

var Zillow = require('node-zillow');

//Instantiate
var zillow = new Zillow('your zws-id');

var your-zws-id = process.env.ZWSID is the recommended way

None of this will make sense without reading the Zillow API Docs

Also be sure to follow the Zillow API terms of use and branding requirements

Documentation

Methods

callApi
- Convenience method for the entire zillow api
- takes the name of the api call (i.e. GetSearchResults) -- refer to the [Zillow API Docs](http://www.zillow.com/howto/api/APIOverview.htm), the `lib/api-list.js`, or see below
- Returns a promise with the result
getDeepSearchResults
- takes params hash
{
  address: 'address',
  city: 'city',
  state: 'state',
  zip: 'zip',
  rentzestimate: boolean //this is optional
}
- Returns a promise with the result
getUpdatedPropertyDetails
- takes zpid (Zillow property id) obtained from the getDeepSearchResults request
Pass in as a number or a string

- Returns a promise with the result
getDemographics
- takes params hash
{
  address: 'address',
  city: 'city',
  state: 'state',
  zip: 'zip'
}
- Returns a promise with the result

Following API Methods supported:

  • GetDeepSearchResults
  • GetUpdatedPropertyDetails
  • GetDeepComps
  • GetRateSummary
  • GetMonthlyPayments
  • GetDemographics
  • GetRegionChildren
  • GetRegionChart
  • GetSearchResults
  • GetZestimate
  • GetChart
  • GetComps

Examples

Example of all API calls through the callApi() method can be found in examples

Zillow.callApi()

var Zillow  = require('node-zillow')

var zwsid = process.env.ZWSID
var zillow = new Zillow(zwsid)

var parameters = {
  zpid: 1111111
};

zillow.callApi('GetZestimate', parameters)
  .then(function(data) {
    var results = data.response[0].results[0].result[0]
    return results;
  })

The following API calls are deprecated and will be removed in the 1.0.0 release. Using callApi() is the recommended approach and should be able to do everthing that the legacy functions do. If you see problems with callApi(), PR's and issues are welcome.

Zillow.getDeepSearchResults()

Needs to be resolved from a promise (recommend Q library):

var getResult = getDeepSearchResults({params});
getResult.then(function(result) {
  return result; //here's your result, so you can do something here
});

Zillow.getUpdatedPropertyDetails()

var Zillow  = require('node-zillow')

// To run: `ZWSID=<ZWSID> node example_updatedPropertyDetails.js`
var zwsid = process.env.ZWSID;

var zillow = new Zillow(zwsid)

var params = {
  address: "2512 Mapleton Ave.",
  city: 'Boulder',
  state: 'CO',
  zip: '80304'
}

// getDeepSearchResults() returns zpid, which is passed into getUpdatedPropertyDetails()
var deepResults = zillow.getDeepSearchResults(params)
    .then(function(result) {
      var zpid = result.response[0].results[0].result[0].zpid[0]
      return zillow.getUpdatedPropertyDetails(zpid)
    })
    .then(function(result) {
      if (result.message[0].code === '502') return {}
      return result.response[0]
    })

Zillow.getDemographics()

var Zillow  = require('node-zillow')

var zwsid = process.env.ZWSID
var zillow = new Zillow(zwsid)

zillow.getDemographics({zip: '80301'})
  .then(function(data) {
    var results = data.response[0].results[0].result[0]
    return results;
  })

Contributing

This module uses promises via the Q library. Please continue to use promises. And in lieu of any further formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Contributors

Release History

  • v0.0.4 - Added error-checking and parameter checking
  • v0.0.3 - Includes the following methods: callApi, getUpdatedPropertyDetails, getDeepSearchResults, getDemographics

License

Copyright (c) 2014 Richard Lucas. Licensed under the MIT license.

node-zillow's People

Contributors

ralucas avatar jefffriesen avatar

Watchers

James Cloos avatar Logan Arnett avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.