Pearl REST API publisher settings field names differ between reads and writes
Writing publisher settings and reading them back use different field-name conventions. A write takes a nested structure with underscore names; a read returns a flat structure with hyphenated names.
Applies to: Pearl-2, Pearl Mini, Pearl Nexus, Pearl Nano.
The settings themselves are the same โ only the representation differs. This affects GET /channels/{cid}/publishers/{pid}/settings, the settings included in GET /channels?publishers-settings=true, and the body returned by a successful PATCH. If you write common.enabled and read back a body containing started, the write did not fail โ the response simply uses the other convention.
Fields shared by every publisher type.
| Write (request) | Read (response) |
|---|---|
common.enabled |
started |
common.single_touch |
single-touch |
<protocol>.disable_audio |
disable-audio |
The protocol block disappears on read: fields nested under rtmp, rtsp, or srt in a request are returned at the top level of result, alongside type and name.
RTMP. url, stream, username, and password keep their names. A read also returns auto_created, which is not part of a write body.
RTSP. url, transport, username, and password keep their names.
SRT.
| Write (request) | Read (response) |
|---|---|
srt.mode |
mode |
srt.latency |
latency |
srt.url |
url |
srt.port |
port |
srt.stream_id |
stream-id |
srt.source_port |
source-port |
srt.bw_recovery_overhead |
bw-recovery-overhead |
srt.encryption.keylength |
key-length |
srt.encryption.passphrase |
passphrase |
srt.encryption (object or null) |
encryption (boolean) |
Note the last row: on write, encryption is either an object containing passphrase and keylength, or null. On read, encryption is a boolean and the passphrase and key length are returned as separate top-level fields.
A read of an SRT listener publisher returns all mode fields regardless of mode, so url may be present and empty on a listener while port carries the value.