---
title: "Create restream"
method: POST
path: "/streaming/restreams"
tags: ["Restreams"]
---

# Create restream

`POST /streaming/restreams`

Creates a new restream for a specified live stream.
  


Specify the target platform's URI (RTMP, RTMPS, or SRT) and the ID of the source stream.
  


Restreaming allows you to broadcast a single live stream to multiple platforms or servers simultaneously (e.g., Facebook, YouTube, or a custom media server).

**How it works:**
1. Get credentials (stream URL/key or SRT URL) from the target platform.
2. Create a restream in the Gcore system by specifying the target URI and the source live stream.
3. Start your live stream; it will be automatically pushed to the target destination.

```text
                +-----------------------+
RTMP/RTMPS      |                       | -------->  Facebook (RTMP)
    or  ------> |    Gcore Streaming    | -------->  YouTube (RTMPS)
SRT             |                       | -------->  Media server (SRT)
                +-----------------------+ -------->  Other RTMP/SRT targets
```

**Supported combinations:** RTMP → RTMP, RTMPS → RTMPS, RTMP → SRT, SRT → SRT, SRT → RTMP.
For SRT targets, only `mode=caller` is supported (Gcore initiates a PUSH connection).
  


Source stream parameters (bitrate, codecs, resolution) are sent "as is". Ensure they match the destination requirements.

## Request body

- object
  - `restream` CreateRestream
    - `name` string — Restream name
    - `live` boolean — Indicates that the stream is being published. Has two possible values: - **true** — stream is being published - **false** — stream isn't published
    - `active` boolean — Enables/Disables restream. Has two possible values: - **true** — restream is enabled and can be started - **false** — restream is disabled. Default is true
    - `uri` string — A URL to push the stream to. Supported protocols: rtmp, rtmps, srt. For SRT target URLs, only `mode=caller` is supported.
    - `stream_id` integer — ID of the stream to restream
    - `client_user_id` integer — Custom field where you can specify user ID in your system

## Response `200`

Successful

## Other responses

- `422` — Possible error messages: **{ "errors": { "stream": [ "must exist" ] } }** A required parameter *`stream_id`* wasn't specified or a stream with such ID hasn't been created. **{ "errors": { "stream": [ "does not belong to the same client " ] } }** A stream with specified ID belongs to another client. **{ "errors": { "uri": [ "invalid uri, supported protocols are rtmp, rtmps, srt" ] } }** A required parameter *uri* wasn't specified or the input protocol is not supported

---

[API](https://skmtc.net/g-core/apis/gcore-openapi.md) · [All operations](https://skmtc.net/g-core/apis/gcore-openapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/g-core/gcore-openapi/revisions/09e652815095/schema)
