---
title: "Update a restream by ID"
method: PATCH
path: "/restreams/{id}"
tags: ["Restreams"]
---

# Update a restream by ID

`PATCH /restreams/{id}`

## Request

- Base URL: `https://api.theo.live/v2`
- URL: `https://api.theo.live/v2/restreams/{id}`
- Auth: HTTP basic

Only stopped restreams can be updated (409 `not_stopped` otherwise). The combination of `type`, `src` and `target` is validated as on creation: `type: ingest` restreams the incoming stream of an rtmp-push or srt-push ingest of the channel as-is; the `target` must use the same protocol as the ingest (rtmp:// or rtmps:// for rtmp-push, srt:// for srt-push). `type: engine` restreams the output of an engine of the channel; only rtmp:// or rtmps:// targets are supported. Returns 400 `restream_source_not_found` when `src` is not an ingest/engine of the channel, `restream_source_not_supported` for other ingest types and `restream_target_not_supported` for a protocol mismatch. Restreaming is not available for every organization, ingest or engine region (400 `restream_not_supported` resp. `restream_source_not_supported` otherwise).

## Path parameters

- `id` string, required: Restream ID

## Request body

- UpdateRestreamBody
  - `type` 'ingest' | 'engine': Source type of the restream: `ingest` restreams the incoming stream of an rtmp-push or srt-push ingest as-is, `engine` restreams the transcoded output of an engine
  - `src` string: Id of the ingest or engine (depending on `type`) to restream. Must be connected to the same channel
  - `target` string: Push URL the stream is sent to. An `ingest` restream uses the protocol of its ingest (srt:// for srt-push, rtmp:// or rtmps:// for rtmp-push); an `engine` restream only supports rtmp:// or rtmps://

## Response `200`

Updated restream

- ChannelRestreamObjectResult
  - `data` object, required: Restream object
    - `id` string, required: Unique identifier of the restream
    - `createdAt` string, required: Creation timestamp
    - `updatedAt` string, required: Last update timestamp
    - `channelId` string, required: Id of the channel the restream belongs to
    - `type` 'ingest' | 'engine', required: Source type of the restream: `ingest` restreams the incoming stream of an rtmp-push or srt-push ingest as-is, `engine` restreams the transcoded output of an engine
    - `src` string, required: Id of the ingest or engine (depending on `type`) to restream. Must be connected to the same channel
    - `target` string, required: Push URL the stream is sent to. An `ingest` restream uses the protocol of its ingest (srt:// for srt-push, rtmp:// or rtmps:// for rtmp-push); an `engine` restream only supports rtmp:// or rtmps://
    - `status` 'stopped' | 'active', required: Whether the restream is currently pushing to its target (`active`) or not (`stopped`)

## Other responses

- `503`: Region information is temporarily unavailable; retry the request.

## Changes

- **2026-11-06** `baabda2927db`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/dolby/apis/theolive-api/changes/restreams/:id/patch.md)

---

[API](https://skmtc.dev/dolby/apis/theolive-api.md) - [All operations](https://skmtc.dev/dolby/apis/theolive-api/llms.txt) - [OpenAPI document](https://skmtc.dev/dolby/apis/theolive-api/revisions/baabda2927db?raw)
