F5 BIG-IP iControl REST API implementation

Usage no npm install needed!

<script type="module">
  import icontrol from 'https://cdn.skypack.dev/icontrol';




Convience methods for making calls to the BIG-IP iControl REST API, mimicking the command style of TMSH.

Requires BIG-IP >= 11.4.0 and an enabled ircd service:

(tmos) # modify sys service ircd add

See F5 iControl REST API documentation for detail:



npm install icontrol


Create BIG-IP instance

All default options shown below -- override where desired.

var iControl = require('icontrol');

var bigip = new iControl({
  host: '',
  proto: 'https',
  port: 443,
  user: 'admin',
  pass: 'admin',
  strict: true,
  debug: false

List configuration object(s)

bigip.list(path, [options], callback)

bigip.list('/sys/software/image', function(err, res) {
  // do something with result

or alternatively with options:

bigip.list('/sys/software/image', {
  expandAll: true,
  includeStats: true
function(err, res) {
  // do something with result

Create configuration object(s)

bigip.create(path, options, callback)

bigip.create('/ltm/pool', {
  'name': 'test-pool',
  'members': [
    { 'name': '', 'description': 'test-member-1' },
    { 'name': '', 'description': 'test-member-2' },
    { 'name': '', 'description': 'test-member-3' },
function(err, res) {
  // newly-created object

Modify existing configuration object

bigip.modify(path, options, callback);

bigip.modify('/ltm/pool/test-pool', {
  'description': 'This pool should now have a description'
function(err, res) {
  // updated JSON object

Delete existing configuration object

bigip.delete(path, callback);

bigip.delete('/ltm/pool/test-pool', function(err, res) {
  // res should be undefined


  • Test against BIG-IQ iControl proxy