Configuration
Configuration endpoints manage network settings, system hostname, date and time, logging, passwords, and the monitor output. Most write operations require the admin role. Changes to network and hostname settings take effect after a reboot — a reboot_needed flag is set in the /status response when a reboot is pending.
GET /conf/network
Returns the current network configuration.
Roles: user, admin
Response:
{
"hostname": "multituner-01",
"dhcp": false,
"mac": "00:1A:2B:3C:4D:5E",
"address": "192.168.112.1",
"netmask": "255.255.255.0",
"gateway": "192.168.112.254",
"dns": ["8.8.8.8", "8.8.4.4"]
}
POST /conf/network
Updates the network configuration. Changes take effect after reboot.
Roles: admin
Request body:
{
"dhcp": false,
"address": "192.168.1.100",
"netmask": "255.255.255.0",
"gateway": "192.168.1.1",
"dns": ["192.168.1.1"]
}
| Field | Type | Required | Description |
|---|---|---|---|
dhcp |
boolean | Yes | true to use DHCP, false for static IP |
address |
string | Yes | Static IP address (ignored when DHCP is enabled) |
netmask |
string | Yes | Subnet mask |
gateway |
string | No | Default gateway |
dns |
array | No | DNS server addresses |
Warning
After saving a new IP address, the device will be unreachable at the old address following the next reboot. Ensure you know the new address before applying changes.
POST /conf/hostname
Sets the system hostname. Takes effect after reboot.
Roles: admin
Request body:
{ "hostname": "multituner-studio-a" }
GET /conf/datetime
Returns the current date, time, and NTP configuration.
Roles: user, admin
Response:
{
"enable_ntp": true,
"datetime": "2025-03-14T12:00:00Z",
"timezone": 2,
"ntp_servers": ["pool.ntp.org"]
}
POST /conf/datetime
Sets the system time and NTP settings. Changes apply immediately.
Roles: admin
Request body:
{
"enable_ntp": true,
"datetime": "2025-03-14T12:00:00Z",
"timezone": 2,
"ntp_servers": ["pool.ntp.org", "time.cloudflare.com"]
}
| Field | Type | Required | Description |
|---|---|---|---|
enable_ntp |
boolean | Yes | Enable automatic time synchronization via NTP |
datetime |
string | Yes | Current datetime in ISO 8601 format — used when NTP is disabled |
timezone |
integer | Yes | UTC offset in hours |
ntp_servers |
array | No | List of NTP server hostnames or IPs |
GET /conf/log
Returns the current logging configuration.
Roles: user, admin
Response:
{
"level": "warning",
"enable_rsyslog": false,
"rsyslog_server": ""
}
POST /conf/log
Configures the system log level and optional remote syslog forwarding. Takes effect after reboot.
Roles: admin
Request body:
{
"level": "info",
"enable_rsyslog": true,
"rsyslog_server": "192.168.1.200"
}
| Field | Type | Description |
|---|---|---|
level |
string | Minimum log severity to record: trace, debug, info, warning, error, critical |
enable_rsyslog |
boolean | Forward log entries to a remote syslog server |
rsyslog_server |
string | IP address or hostname of the remote syslog server |
POST /conf/password
Changes the password for a given role. Takes effect immediately. Previously issued tokens for that role remain valid until they expire.
Roles: admin
Request body:
{
"role": "admin",
"password": "new-secure-password"
}
Valid values for role: "admin", "user".
POST /monitor
Controls the front-panel headphone output — selects which tuner is routed to it, or mutes it entirely.
Roles: user, admin
Request body:
{
"tuner_id": 2,
"mute": 0
}
| Field | Type | Description |
|---|---|---|
tuner_id |
integer | Index of the tuner to route to the monitor output |
mute |
integer | 0 (0x00) = unmuted, 16 (0x10) = muted |