Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A chainable weather underground client library for node.js.

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 test
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Makefile
Octocat-spinner-32 package.json

This is a chainable weather underground client for node.js


npm install wundergroundnode
var Wunderground = require('wundergroundnode');
var myKey = '12312314';
var wunderground = new Wunderground(myKey);

How To Use

The syntax follows a simple pattern:

wunderground.[resource calls(s)].request(myQuery, callback);

The available resource calls are the following (you must include one in your request):

  • conditions
  • hourlyForecast
  • hourlyTenDayForecast
  • forecast
  • almanac
  • yesterday
  • geolookup
  • astronomy
  • alerts (thanks to drewlander for this)

The documentation for each resource can be found here: That also covers how to perform queries against their api.

So to get the current conditions you would use the following code:

wunderground.conditions().request('84111', function(err, response){

Where the real fun comes in, however, is when you want more than one resource in a single call. This functionality is crucial to save on weather underground costs. So extending the example, lets also get the forecast:

wunderground.conditions().forecast().request('84111', function(err, response){

Historical Queries

If you are willing to pay the hefty fee then this library also provides historical querying as well. Historical queries cannot be chained.

wunderground.history('20120322', '84111', function(err, response){

Note that the first field specifies the day in the string format 'YYYYMMDD'. Alternatively you can use a date object for a given day.

Running Unit Tests

In order to run unit tests you need to include a file called "devkey" in the test directory. This file must contain only your dev key (no spaces or newlines).

Then simply run this command:

make test

If you have instanbul installed globally you can also run the tests with code coverage results:

make coverage
Something went wrong with that request. Please try again.