docs: function (data, path, params, method, deferred) {
          var options, query_params, req,
              dataString = JSON.stringify(data);
  
          query_params = querystring.stringify(params);
  
          options = {
              host: this.host,
              port: 443,
              path: '/v' + this.api_version + '/' + path + '/?api_key=' + this.api_key + (query_params ? ('&' + query_params) : ''),
              method: method,
              headers: {
                  'Content-Type': 'application/json',
                  'Content-Length': dataString.length
              }
          };
  
          if (!this.dev_mode) {
              req = https.request(options, function (res) {
                  res.setEncoding('utf-8');
  
                  var response = '', result;
  
                  res.on('data', function (response_data) {
                      response += response_data;
                  });
  
                  res.on('end', function () {
                      result = JSON.parse(response);
                      deferred.resolve(result);
                  });
              });
  
              req.write(dataString);
              req.end();
          } else {
              deferred.resolve({status:"dev_mode", data: data, params: params, path: options.path});
          }
      }