# Pearl REST API publisher settings for SRT

SRT publishers use the same settings path as every other protocol, but the fields required depend on the SRT connection mode. Set `type` to `srt` and populate the `srt` block.

*Applies to: Pearl-2, Pearl Mini, Pearl Nexus, Pearl Nano.*

**Fields common to all SRT modes.**

| Field | Notes |
| --- | --- |
| `mode` | `caller`, `listener`, or `rendezvous`. Default `caller` |
| `latency` | 80 to 8000 ms. Default `125` |
| `bw_recovery_overhead` | 5 to 100 percent. Default `25` |
| `disable_audio` | Default `false` |
| `encryption` | An object, or `null` for no encryption |

**Encryption.** When present, the `encryption` object requires both `passphrase` (10 to 79 characters) and `keylength` (`128`, `192`, or `256`). Send `"encryption": null` to turn encryption off.

**Mode-specific fields.**

| Mode | Required | Optional |
| --- | --- | --- |
| `caller` | `url` | `stream_id` (up to 512 characters), `source_port` |
| `listener` | `port` | — |
| `rendezvous` | `url` | — |

`port` is 1024 to 65535. `source_port` is either `0` (default, meaning the system picks one) or a value from 1024 to 65535.

A caller-mode publisher with encryption:

```json
{
  "type": "srt",
  "srt": {
    "mode": "caller",
    "url": "srt://127.0.0.1:19861",
    "stream_id": "",
    "latency": 125,
    "bw_recovery_overhead": 25,
    "disable_audio": false,
    "encryption": { "keylength": 128, "passphrase": "AnyPassphrase" }
  },
  "common": { "enabled": false, "single_touch": false }
}
```

A listener-mode publisher waits for an incoming connection and reports state `listening` until one arrives, so a `listening` status is normal rather than a fault.

**Reading SRT settings back returns different field names.** `srt.encryption.keylength` is returned as `key-length`, `bw_recovery_overhead` as `bw-recovery-overhead`, `stream_id` as `stream-id`, and `source_port` as `source-port`. See "Pearl REST API publisher settings field names differ between reads and writes".

> product: pearl-family · topic: streaming · source: pearl-rest-api.md · updated: Oct 7, 2026
