A slightly higher-level HTTP client for node.


get is a slightly higher-level HTTP client for nodejs.

npm install get

get has no dependencies.

For testing, you'll need make and mocha.

For docs you'll need docco.

  • Redirect following.
  • Convenience functions for downloading and getting data as string.
  • Binary-extension and basic binary detection.
  • Configurable headers

Downloads are objects in get.

var dl = new get({ uri: '' });

However, the function is a�self-calling constructor, and�thus the new keyword is�not necessary:

var dl = get({ uri: '' });

The get constructor can also take a plain string if you don't want to give options.

var dl = get('');

It can also take other options.

var dl = get({
    uri: '',
    max_redirs: 20,

Then it exposes three main methods

dl.asString(function(errstr) {


dl.toDisk('myfile.txt', function(errfilename) {

and finally

dl.asBuffer(function(errdata) {

There's also a lower-level API.

dl.perform(function(errresponse) {
    // response is just a response object, just like 
    // HTTP request, except handling redirects 

If you give node-get an object of settings instead of a string, it accepts

  • uri - the address of the resource
  • headers - to replace its default headers with custom ones
  • max_redirs - the number of redirects to follow before returning an error
  • no_proxy - don't use a HTTP proxy, even if one is in ENV
  • encoding - When calling .guessEncoding(), get will use this instead of the default value
var get = require('get');
get('').asString(function(err, data) {
    if (err) throw err;
  • Guessing encoding wth headers
  • User-customizable encodings
  • Tom MacWright (tmcw)
  • Konstantin Kaefer (kkaefer)