# Pearl REST API list, create, rename, and delete publishers

Before configuring or controlling a stream you need its publisher ID. Publishers are listed per channel, and new ones can be created and deleted through the API.

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

| Method and path | What it does |
| --- | --- |
| `GET /channels/{cid}/publishers` | Lists the publishers on a channel |
| `GET /channels/{cid}/publishers/type` | Lists the ID, type, and name of each publisher |
| `GET /channels/{cid}/publishers/{pid}/type` | Returns the type of one publisher |
| `GET /channels/{cid}/publishers/{pid}/name` | Returns the display name of one publisher |
| `PUT /channels/{cid}/publishers/{pid}/name?name=<new name>` | Renames a publisher |
| `POST /channels/{cid}/publishers` | Adds a new publisher to a channel |
| `DELETE /channels/{cid}/publishers/{pid}` | Deletes a publisher |

**Publisher types** are `rtmp`, `rtsp`, `rtp-udp`, `mpegts-udp`, `mpegts-rtp`, `ndi`, `hls`, and `srt`.

**Device differences**

- The `ndi` publisher type applies to Pearl-2 only. Pearl Mini and Pearl Nexus do not support NDI output streaming, and Pearl Nano does not support NDI or NDI|HX inputs or streaming.

A channel with no publishers returns an empty `result` array rather than an error.

**Publisher names** are 1 to 128 characters. The rename endpoint takes the new name as a query parameter, not a body, and returns the updated name in `result`.

**Creating a publisher.** Send a JSON body containing an optional `name` and a required `settings` object. The `settings` object must include a `type` field that selects which protocol block is expected:

```json
{
  "name": "New RTMP",
  "settings": {
    "type": "rtmp",
    "rtmp": {
      "disable_audio": false,
      "url": "rtmp://192.168.86.51",
      "stream": "",
      "username": "",
      "password": ""
    },
    "common": { "enabled": false, "single_touch": false }
  }
}
```

A successful creation returns HTTP 201 with the new publisher's `id`, `name`, and `settings`. A request naming a channel that does not exist returns 404.

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