REST API

Maxx Control REST API on each Innosonix amplifier: auth, hierarchy, OPTIONS, AES67 / SDP subscribe, and where the full OpenAPI lives.

Every amplifier exposes a hierarchical JSON REST API used by Maxx Control itself and by third-party systems. Prefer this API for single-device integration. For project-level multi-amp control, use the Maxx Remote HTTP API instead.

Base URL and transport

ItemValue
Scheme / porthttp:// on port 80
Base path/rest-api
Examplehttp://${IP}/rest-api/settings/channel/1/dsp/mute

Methods you will use most: GET (read), PUT (write / partial update), OPTIONS (allowed ranges and constraints), plus POST / DELETE on a few resources (for example EQ bands).

Authentication

Write operations that change settings require an API key in the HTTP header:

HeaderDefault value
tokenf4005bf8507999192162d989d5a60823

Defined in OpenAPI as ApiKeyAuth (token in header). GET and most OPTIONS calls do not require the token. Most PUT (and many DELETE) calls do — check the on-device OpenAPI for each path; a few DELETE endpoints are unauthenticated in the schema.

curl -X PUT "http://${IP}/rest-api/settings/channel/1/dsp/mute" \
  -H "token: f4005bf8507999192162d989d5a60823" \
  -H "Content-Type: application/json" \
  -d '{"value": true}'

Hierarchical resources

The tree is organized under /settings (configuration), /status (live state), /info, /preset, and helpers such as /speakerpreset. Channel resources nest DSP blocks (volume, mute, EQ, FIR, limiters, …); device resources cover master mute/volume, Dante, network, and more.

You can:

  • PUT a deep leaf, e.g. …/settings/channel/1/dsp/mute
  • PUT a parent with a partial JSON object, e.g. …/settings/channel with an array of channel objects
  • PUT …/settings with a larger tree when you need a wide update in one call

Example shape under settings (not exhaustive):

settings/
  channel/
    {channel_id}/
      ampenable
      dsp/
        delay | eq | eqenable | fir | mute | volume | …
  device/
    dsp/ (mute, volume, …)
    dante/
    network/

Partial updates are the normal pattern: send only the fields you want to change.

OPTIONS = parameter constraints

OPTIONS on a resource returns the allowed parameter space for that property (min / max / step / unit, enums, string lengths, and similar). Use it when building UIs or validating values before PUT — especially for volume, delay, limiters, and names.

Example: discover channel volume limits:

curl -X OPTIONS "http://${IP}/rest-api/settings/channel/1/dsp/volume"

Exact response fields vary by resource; see the on-device OpenAPI schemas (for example NumberOptions).

Full OpenAPI (source of truth)

This site documents common integrator patterns. The complete, firmware-matching schema is on the device:

  1. Open Maxx Control → OVERVIEW
  2. Click REST API DOC (lower right)

That opens the Swagger UI for maxx_rest_api.html (generated from the device OpenAPI). Always trust the on-device docs for path lists and schemas for your firmware version.

Common use cases

GoalSee
Mute / unmute a channel or masterMute control
Set channel, master, or multi-zone volumeVolume control
AES67 / SDP subscribe (channel input patch)AES67 / SDP subscribe
Enable / disable channel EQEQ enable control
Read device info and health-oriented statusDevice information
Persist settings to the deviceSave / persist
Amp channel power (ampenable)Amp enable
Device-level mute / volume / startupDevice control
Channel namingChannel name
Input patchInput patch

Third-party plugins (Q-SYS, Loxone, …) use this same API against one amplifier each — see Third-party plugins.


Maxx Control REST: Set channel names

Maxx Control REST: get and set channel names for zones, UI labels, and home-automation integrations.

Maxx Control REST: Control device mute and volume

Maxx Control REST: set device master mute, master volume, and startup mute for one Innosonix amplifier.

Device Information

Examples for retrieving device information

Maxx Control REST: Enable or disable EQ

Maxx Control REST: enable or disable channel EQ (eqenable) with single-channel and multi-channel PUT examples.

Mute Control

Examples for controlling channel and device mute states

Volume Control

Examples for controlling channel and device volume

AES67 / SDP subscribe

Maxx Control REST: subscribe a channel input to an AES67 / SDP stream (source_id 25) by PUTting sdp_text or rtp_flow.

Maxx Control REST: Switch input patches

Maxx Control REST: switch amplifier channel input patches (Dante and other sources) with bulk or per-channel PUT examples.

Amp enable

Power-enable channel amplifier stages via ampenable (distinct from mute).

Save / persist

Persist runtime REST changes with /settings/save and check save status.