# Pearl REST API start and stop streaming

Streaming on a Pearl device is handled by publishers. A publisher is the streaming component of a channel — one channel can have several publishers, each pushing to a different destination, and each has an auto-assigned publisher ID (`pid`).

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

| Method and path | What it does |
| --- | --- |
| `POST /channels/{cid}/publishers/control/start` | Starts every publisher on the channel |
| `POST /channels/{cid}/publishers/control/stop` | Stops every publisher on the channel |
| `POST /channels/{cid}/publishers/{pid}/control/start` | Starts one publisher |
| `POST /channels/{cid}/publishers/{pid}/control/stop` | Stops one publisher |
| `GET /channels/{cid}/publishers/status` | Status of every publisher on the channel |
| `GET /channels/{cid}/publishers/{pid}/status` | Status of one publisher |

**Start and stop are asynchronous.** The method does not wait for the publisher to start or stop. A `{"status": "ok"}` response means the command was accepted, not that the stream is live — poll the status endpoint to confirm.

**Publisher states** are `starting`, `listening`, `started`, `stopped`, and `error`. Status also returns:

- `is_configured` — whether the publisher is properly configured
- `started` — whether it is currently running
- `duration` — seconds since it started
- `since` — the start time as a Unix timestamp in seconds
- `description` — the error text when the state is `error`
- `reconnections` — how many times it reconnected during the stream
- `warnings` — an array of warning messages
- `statistics` — transport statistics, populated for SRT

**SRT statistics.** An SRT publisher reports a `total` block covering the whole session (`duration`, `pkt_sent`, `pkt_loss`, `pkt_retrans`, `pkt_drop`, `latency`, `byte_sent`, `byte_retrans`, `byte_drop`) and a `current` block covering a recent window (`send_rate`, `loss_ratio`, `retrans_ratio`, `drop_ratio`, `latency`, `rtt`, `estimated_bandwidth`, `send_buffer`, `stream_id`, `ip`). Use `pkt_loss`, `pkt_retrans`, and `rtt` to diagnose an unstable SRT link.

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