This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

REST-API

The REST-API for Innosonix Devices

All function, the devices offers are available via the integrated REST-API.

The API is based on HTTP PUT / GET / OPTIONS / DELETE calls with JSON payload.

Every PUT / DELETE call has to be verified via a “Authentication Token” in the HTTP header. The default token is: “f4005bf8507999192162d989d5a60823”

This documentation is more dedicated as general overview and description how to handle the API. Each device includes the latest API-Documentation with all available calls.

It can be found on the lower right corner of the OVERVIEW page:

Overall Structure

It’s an hierarchical REST API with partial resource updates, structured per channel and it’s corresponding resources like DSP / EQ / VOLUME / etc.

That means you can basically update the whole device with up to 32 channels, with a single HTTP PUT call like a HTTP PUT on http://{IP}/rest-api/settings with a json payload containing the requested structure.

  • settings/
    • channel/
      • 1/
        • ampenable
        • dsp/
          • delay
          • eq
          • fir
          • mute
      • 2/
        • ampenable
        • dsp/
          • delay
          • eq
          • fir
          • mute
      • etc…
    • device/
      • dante/
    • etc…

On the other hand, update single resources down in the tree is also possible, e.g. http://{IP}/rest-api/settings/channel/1/ampenable

1 - Examples

Some REST-API use cases

Multizone Volume Control

Controlling the volume of several zones, consists of n-channels per device.

Let’s say a Zone consists of channel 1, 2, 3, 11, 12, 13. All volumes can be updated simultaneously by performing: HTTP PUT http://${ip}rest-api/settings/channel with the following payload, value: -10.2 representing the volume of -10.2 dB :

[
  {
    "channel_id": 1,
    "dsp": {
      "volume": {
        "value": -10.2
      }
    }
  },
  {
    "channel_id": 2,
    "dsp": {
      "volume": {
        "value": -10.2
      }
    }
  },
  {
    "channel_id": 3,
    "dsp": {
      "volume": {
        "value": -10.2
      }
    }
  },
  {
    "channel_id": 11,
    "dsp": {
      "volume": {
        "value": -10.2
      }
    }
  },
  {
    "channel_id": 12,
    "dsp": {
      "volume": {
        "value": -10.2
      }
    }
  },
  {
    "channel_id": 13,
    "dsp": {
      "volume": {
        "value": -10.2
      }
    }
  }
]
curl -X 'PUT' http://${IP}/rest-api/settings/channel/ \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '[{"channel_id":1,"dsp":{"volume":{"value":-10.2}}},{"channel_id":2,"dsp":{"volume":{"value":-10.2}}},{"channel_id":3,"dsp":{"volume":{"value":-10.2}}},{"channel_id":11,"dsp":{"volume":{"value":-10.2}}},{"channel_id":12,"dsp":{"volume":{"value":-10.2}}},{"channel_id":13,"dsp":{"volume":{"value":-10.2}}}]' 

DSP On / Off

Sometimes it can be handy to turn off / on the whole channel equalizer. For this example, use channel 1, 2, 3, 11, 12, 13. This can be done by:

HTTP PUT http://${ip}rest-api/settings/channel

[
  {
    "channel_id": 1,
    "dsp": {
      "eqenable": {
        "value": false
      }
    }
  },
  {
    "channel_id": 2,
    "dsp": {
      "eqenable": {
        "value": false
      }
    }
  },
  {
    "channel_id": 3,
    "dsp": {
      "eqenable": {
        "value": false
      }
    }
  },
  {
    "channel_id": 11,
    "dsp": {
      "eqenable": {
        "value": false
      }
    }
  },
  {
    "channel_id": 12,
    "dsp": {
      "eqenable": {
        "value": false
      }
    }
  },
  {
    "channel_id": 13,
    "dsp": {
      "eqenable": {
        "value": false
      }
    }
  }
]
curl -X 'PUT' http://${IP}/rest-api/settings/channel/ \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '[
  {
    "channel_id": 1,
    "dsp": {
      "eqenable": {
        "value": false
      }
    }
  },
  {
    "channel_id": 2,
    "dsp": {
      "eqenable": {
        "value": false
      }
    }
  },
  {
    "channel_id": 3,
    "dsp": {
      "eqenable": {
        "value": false
      }
    }
  },
  {
    "channel_id": 11,
    "dsp": {
      "eqenable": {
        "value": false
      }
    }
  },
  {
    "channel_id": 12,
    "dsp": {
      "eqenable": {
        "value": false
      }
    }
  },
  {
    "channel_id": 13,
    "dsp": {
      "eqenable": {
        "value": false
      }
    }
  }
]'

[
  {
    "channel_id": 1,
    "dsp": {
      "eqenable": {
        "value": true
      }
    }
  },
  {
    "channel_id": 2,
    "dsp": {
      "eqenable": {
        "value": true
      }
    }
  },
  {
    "channel_id": 3,
    "dsp": {
      "eqenable": {
        "value": true
      }
    }
  },
  {
    "channel_id": 11,
    "dsp": {
      "eqenable": {
        "value": true
      }
    }
  },
  {
    "channel_id": 12,
    "dsp": {
      "eqenable": {
        "value": true
      }
    }
  },
  {
    "channel_id": 13,
    "dsp": {
      "eqenable": {
        "value": true
      }
    }
  }
]
curl -X 'PUT' http://${IP}/rest-api/settings/channel/ \
-H 'token: f4005bf8507999192162d989d5a60823' \
-d '[
  {
    "channel_id": 1,
    "dsp": {
      "eqenable": {
        "value": true
      }
    }
  },
  {
    "channel_id": 2,
    "dsp": {
      "eqenable": {
        "value": true
      }
    }
  },
  {
    "channel_id": 3,
    "dsp": {
      "eqenable": {
        "value": true
      }
    }
  },
  {
    "channel_id": 11,
    "dsp": {
      "eqenable": {
        "value": true
      }
    }
  },
  {
    "channel_id": 12,
    "dsp": {
      "eqenable": {
        "value": true
      }
    }
  },
  {
    "channel_id": 13,
    "dsp": {
      "eqenable": {
        "value": true
      }
    }
  }
]'