Skip to content
Freebox Revolution Server nodejs SDK
Latest commit 9c9f99d Jul 30, 2012 @alram Update readme
Failed to load latest commit information.
tests re push tests Apr 14, 2012
.gitignore start tracking Mar 17, 2012
LICENSE update license Mar 17, 2012
config.js running expand all over Mar 17, 2012
error.js tokens are now managed internally Apr 14, 2012
freerevSDK.js tokens are now managed internally Apr 14, 2012


I don't have Free anymore. Code needs a bit of refactoring but is usable as a basis.

Freebox Revolution Server SDK - Documentation

This describes how to use this SDK.

I did not intend to do a SDK at first, just a REST API, hence some work still need to be done in order to make this SDK more usable.


git clone git://


Errors are formatted as follow:

error: {
  header: {
    httpCode: xxx
  body: {
    code: 'httpMessage',
    message: 'Error description'

Auth and Token

Freebox Auth

First step is to connect to the freebox. This will return a token.

.connect(object, cb);

Object: { login: 'freebox', passwd: 'freeboxpassword' }. Callback: error, cookie



Generic informations about your internet connection.

.getStatus(token, cb);

cb: error, data.


Get remote ping status.

.remotePingStatus(token, cb);

cb: error, data { enabled: true/false }.

(De)Activate remote ping.

.changeRemotePing(params, cb);

params: { token:yyy, enabled: true/false } cb: error, {}

Remote HTTP Access

Get remote access status

.remoteAccessStatus(token, cb);

cb: error, { enabled: true/false, http_port: XX }

Change remote access

.changeRemoteAccess(params, cb);

params: { token: yyy, enabled: true/false, http_port: XX} http_port is optional when deactivating remote access. cb: error, {}

Wake On Lan

Get WakeOnLan status

.wakeOnLanStatus(token, cb);

cb: error, data

Change Wake On Lan

.changeWOL(params, cb);

params: { token: yyy, enabled: true/false } cb: error, {}


Get Logs

.getLogs(token, cb);

cb: error, data

Flush logs

.flushLogs(token, cb);

cb: error, {}


Get DDNS Configuration (NO-IP and DynDNS).

.getDDNS(token, cb);

cb: error, data

Change DDNS Configuration

.configureDDNS(params, cb);

params: { token; yyy, enabled: true/false, user: user, password: password, hostname: hostname, service: dyndns/noip } user, password, hostname, service are optional when deactivating DDNS.


var freeSDK = require('./freerev-server-sdk');

var auth = {
  login: 'freebox',
  passwd: 'password'

 freeSDK.connect(auth, function (error, token) {
    if (error) throw error;
    freeSDK.getStatus(token, function (error, status) {
      if (error) throw error;
Something went wrong with that request. Please try again.