# Create or reset template (/en/api-reference/api-ref/rtmp-gateway/create-reset-template)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

Creates or resets a Media Gateway flow configuration template.

- OpenAPI: /openapi/media-gateway/media-gateway.en.yaml
- Operation ID: create-or-reset-media-gateway-template
- Method: PUT
- Path: /{region}/v1/projects/{appId}/rtls/ingress/stream-templates/{templateId}

## Servers

- https://api.agora.io

## Parameters

- `region` (path, required) - Region for the streaming key or stream. Supported values are `na` for North America, `eu` for Europe, `ap` for Asia except mainland China, and `cn` for mainland China.
- `appId` (path, required) - The app ID provided by Agora to each developer. After creating a project in Agora Console, you can get an app ID. The app ID is a unique identifier for a project.
- `templateId` (path, required) - The flow configuration template ID. The value can contain only lowercase letters, uppercase letters, and numbers, and cannot exceed 12 bytes. Set the value according to your business use case. For example, use `"720p"` and `"1080p"` for different target resolutions, or `"gameA"` and `"gameB"` for different game use cases.
- `X-Request-ID` (header, optional) - The UUID (Universally Unique Identifier) of the request. After you pass in this field, the Agora server returns this field in the response header. It is recommended to assign `X-Request-ID` a value. If omitted, the Agora server automatically generates a UUID and returns it.

## Request body

- `settings` (object, required)
  - `settings.transcoding` (object, required) - Audio and video transcoding configuration.
    - `settings.transcoding.video` (object)
      - `settings.transcoding.video.enabled` (boolean) - Whether to enable video transcoding.
No schema.
      - `settings.transcoding.video.mode` (string) - Video transcoding mode. `force` forces transcoding. `adaptive` enables transcoding when the source stream contains B-frames.
No schema.
      - `settings.transcoding.video.codec` (string) - Codec format for transcoding.
No schema.
      - `settings.transcoding.video.width` (integer) - Encoding width of the main stream in pixels. If not specified or set to `0`, the source stream width is used unless `height` is set.
No schema.
      - `settings.transcoding.video.height` (integer) - Encoding height of the main stream in pixels. If not specified or set to `0`, the source stream height is used unless `width` is set.
No schema.
      - `settings.transcoding.video.fps` (integer) - Video encoding frame rate in fps. If not specified or set to `0`, the source stream frame rate is used.
No schema.
      - `settings.transcoding.video.bitrate` (integer) - Encoding bitrate of the main stream in Kbps. If omitted, the source stream bitrate is used. If set to `0`, Agora automatically chooses a bitrate based on width and height.
No schema.
      - `settings.transcoding.video.advancedOptions` (object)
        - `settings.transcoding.video.advancedOptions.pvc` (object)
          - `settings.transcoding.video.advancedOptions.pvc.enabled` (boolean) - Whether to enable PVC.
No schema.
          - `settings.transcoding.video.advancedOptions.pvc.saveBitrateRatio` (integer) - Bitrate saving ratio for PVC. For example, `20` means saving 20 percent of the bitrate. This parameter is effective only when `video.bitrate` is missing or `0`.
No schema.
        - `settings.transcoding.video.advancedOptions.superResolution` (object)
          - `settings.transcoding.video.advancedOptions.superResolution.enabled` (boolean) - Whether to enable Super Resolution.
No schema.
          - `settings.transcoding.video.advancedOptions.superResolution.alphaBlending` (integer) - Super Resolution intensity. Larger values indicate higher intensity.
No schema.
      - `settings.transcoding.video.simulcastStream` (object) - Low-quality video stream configuration. If provided, Media Gateway enables the low-quality stream and uses these transcoding parameters.
        - `settings.transcoding.video.simulcastStream.width` (integer) - Width in pixels. The value must be less than `video.width`. If omitted or set to `0`, `video.width / 2` is used.
No schema.
        - `settings.transcoding.video.simulcastStream.height` (integer) - Height in pixels. The value must be less than `video.height`. If omitted or set to `0`, `video.height / 2` is used.
No schema.
        - `settings.transcoding.video.simulcastStream.fps` (integer) - Frame rate in fps. The value must be less than or equal to `video.fps`. If omitted or set to `0`, the default value is `15`.
No schema.
        - `settings.transcoding.video.simulcastStream.bitrate` (integer) - Bitrate of the low-quality video stream in Kbps. The value must be less than `video.bitrate`. If omitted or set to `0`, Agora chooses an appropriate bitrate based on resolution and fps.
No schema.
      - `settings.transcoding.video.simulcastStreamLayers` (array) - Layer transcoding parameters for adaptive bitrate. If specified, ABR is enabled.
        - `settings.transcoding.video.simulcastStreamLayers.items` (object)
          - `settings.transcoding.video.simulcastStreamLayers.items.id` (integer, required) - Layer ID.
No schema.
          - `settings.transcoding.video.simulcastStreamLayers.items.width` (integer) - Encoding width of the layer in pixels. If specified, this value must be smaller than `video.width` and decrease monotonically as layer ID increases.
No schema.
          - `settings.transcoding.video.simulcastStreamLayers.items.height` (integer) - Encoding height of the layer in pixels. If specified, this value must be smaller than `video.height` and decrease monotonically as layer ID increases.
No schema.
          - `settings.transcoding.video.simulcastStreamLayers.items.fps` (integer) - Encoding frame rate of the layer in fps. If specified, this value must be smaller than `video.fps`. If omitted or set to `0`, the main stream frame rate is used.
No schema.
          - `settings.transcoding.video.simulcastStreamLayers.items.bitrate` (integer, required) - Encoding bitrate of the layer in Kbps. This value must be smaller than `video.bitrate` and decrease monotonically by layer ID.
No schema.
    - `settings.transcoding.audio` (object)
      - `settings.transcoding.audio.enabled` (boolean) - Whether to enable audio transcoding.
No schema.
      - `settings.transcoding.audio.profile` (integer) - Encoded audio use case. The default value `0` means 48 KHz sampling rate, music encoding, mono, and a maximum encoding rate of 64 Kbps. Contact Agora technical support for other profile settings.
No schema.
      - `settings.transcoding.audio.bitrate` (integer) - Audio encoding bitrate in Kbps. If omitted, the value is determined by `profile`.
No schema.
  - `settings.jitterBuffer` (object) - Network jitter buffer. Takes effect only when video transcoding is enabled.
    - `settings.jitterBuffer.size` (integer) - Maximum buffer length in ms. Media Gateway adds this value to the end-to-end delay to reduce lag caused by network jitter.
No schema.
    - `settings.jitterBuffer.maxSize` (integer) - Maximum buffer length in ms. This value must be greater than `jitterBuffer.size`. When the jitter buffer exceeds this value, Media Gateway enables acceleration until it returns to `jitterBuffer.size`.
No schema.

## Responses

### 200

The request succeeded and created or reset the template.

- `status` (string) - The status of this request. `success` means the request succeeds.
No schema.
### 401

The request failed. A `401 (Unauthorized)` response status code means the request is not authorized.

- `status` (string) - Request status.
No schema.
- `message` (string) - Description of why the request failed.
No schema.
### default

The request failed. A `401 (Unauthorized)` response status code means the request is not authorized.

- `status` (string) - Request status.
No schema.
- `message` (string) - Description of why the request failed.
No schema.
