Polls REST APIs for changes.


Gallop polls REST APIs at particular intervals to listen for changes.

Gallop is available on the NPM registry.

npm install gallop
var gallop = require('gallop')({
  interval: 10
// Add a target. 
gallop.subscribe('//', null, function(errresulthttpResponse){
    return console.error(err);
// Start listening. 

Requiring Gallop exposes a Gallop constructor. This object serves as a daemon which listens to requests in the background. Arguments:

  • options -- An optional options object with keys:
    • interval -- The polling interval in milliseconds. Defaults to 1 minute.
var Gallop = require('gallop');
var daemon = new Gallop({
  interval: 500

A Gallop daemon subscribes to targets, which are composed of a REST API URL, an options object for the request, and a callback that fires whenever the response from that API endpoint changes. Arguments:

  • url -- A string endpoint URL
  • options -- An options object for the request -- see documentation for Restler's options
  • callback -- A callback that takes err, result, and httpResponse to be called whenever the data changes
daemon.subscribe('//', {
  method: 'GET',
  query: {
    api_key: 'some API key',
    some_field: 'some data for the field'
    // ... 
}, function(errresulthttpResponse) {
  if (err) {
    return console.error(err);

subscribe returns a target ID, which can be passed to unsubscribe to remove the target.

// Save the target ID. 
var id = daemon.subscribe( /* ... */ );
// Unsubscribe from the target. 

The Gallop daemon can start and stop; stopping in the middle of the polling cycle will complete the current cycle.

// Some time later... 

© 2013 Lehao Zhang. Released under the terms of the MIT license.