code: function request(data, callback) {
      var qsdata = (data.qs) ? qs.stringify(data.qs) : '';
      var paramChar = data.path.indexOf('?') >= 0 ? '&' : '?';
      var options = {
        hostname: data.uri,
        path: data.path + paramChar + qsdata,
        method: data.method
      };
      var req;
      var body;
  
      if ( data.method === 'POST' ) {
        options.path = data.path;
        options.headers = {
          'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
          'Content-Length': qsdata.length
        };
      }
  
      req = https.request(options, function (response) {
        body = '';
        response.on('data', function (chunk) {
          body += chunk;
        });
        response.on('end', function () {
          try {
            var d = JSON.parse(body);
            // See http://developers.soundcloud.com/docs/api/guide#errors for full list of error codes
            if ( Number(response.statusCode) >= 400 ) {
              callback(d.errors, d);
            } else {
              callback(undefined, d);
            }
          } catch (e) {
            callback(e);
          }
        });
      });
  
      req.on('error', function (e) {
        callback(e);
      });
  
      if ( data.method === 'POST' ) {
        req.write(qsdata);
      }
  
      return req.end();
    }
docs: /* ======================================================