> ## Documentation Index
> Fetch the complete documentation index at: https://docs.up.telestream.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a template

> The name identifies the template within the space, so it must be unused. Requires the `capture:channel-management` permission.



## OpenAPI

````yaml https://api.up.telestream.com/capture/v1/openapi.json post /{space_id}/recording_settings_templates
openapi: 3.1.0
info:
  contact:
    email: cloudsupport@telestream.net
    name: API Support
    url: https://www.telestream.com
  description: >-
    Programmatic access to recording: the channels that record your live sources
    to storage, and the recording settings they record with.

    Compatibility. Within a version we only add: new endpoints, new optional
    request fields and new optional response fields, and new problem types.
    Clients must ignore response fields and problem types they do not recognise,
    and fall back to the HTTP status class for an unrecognised problem type.
    Anything else - removing or renaming a field, narrowing a type, requiring a
    previously optional field, a new enum value in a response, or changing the
    status for an existing condition - arrives as a new major version under a
    new path.

    A version stays available until it is retired. A retired operation answers
    410 Gone with the operation-retired problem type; a retirement is announced
    when it is decided rather than on a fixed schedule.
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  termsOfService: https://www.telestream.net/telestream-cloud/terms.htm
  title: Telestream Capture API
  version: 1.0.0
servers:
  - url: https://api.up.telestream.com/capture/v1
security:
  - apiKey: []
tags:
  - description: What the presented API key may do.
    name: Access
  - description: Channels and their recording lifecycle.
    name: Channels
  - description: How a channel records.
    name: Recording settings
  - description: Reusable named recording settings, managed independently of any channel.
    name: Recording settings templates
paths:
  /{space_id}/recording_settings_templates:
    parameters:
      - $ref: '#/components/parameters/SpaceId'
    post:
      tags:
        - Recording settings templates
      summary: Create a template
      description: >-
        The name identifies the template within the space, so it must be unused.
        Requires the `capture:channel-management` permission.
      operationId: CreateRecordingSettingsTemplate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordingSettingsTemplateInput'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordingSettings'
          description: The created template.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
        '413':
          $ref: '#/components/responses/PayloadTooLarge'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  parameters:
    SpaceId:
      description: The space to act in.
      in: path
      name: space_id
      required: true
      schema:
        format: uuid
        type: string
  schemas:
    RecordingSettingsTemplateInput:
      additionalProperties: false
      properties:
        engine_version:
          description: >-
            The engine version to pin, as `major.minor.patch`, or empty to
            follow the current engine. Pinning is not honoured: the value is
            kept, and the settings follow the current engine.
          maxLength: 32
          type: string
        name:
          description: Identifies the template within the space.
          example: Studio MXF
          maxLength: 512
          minLength: 1
          type: string
        settings:
          additionalProperties: true
          description: >-
            How a channel given the template should record. It follows the
            recording settings schema of the template's engine version; a
            document that does not is stored all the same.
          type: object
      required:
        - name
        - engine_version
        - settings
      type: object
    RecordingSettings:
      description: How a channel records, or a template of it.
      properties:
        engine_version:
          description: >-
            The engine version the settings pin, as `major.minor.patch`; empty
            when they follow the current engine.
          type: string
        settings:
          additionalProperties: true
          description: >-
            How the channel records. Its shape is the recording settings schema
            of the settings' engine version.
          type: object
      required:
        - engine_version
        - settings
      type: object
    Problem:
      description: An RFC 9457 problem document.
      properties:
        detail:
          description: >-
            What went wrong this time, in words meant for a person. Branch on
            `type` rather than parsing it.
          type: string
        instance:
          description: The request path the problem occurred on.
          type: string
        status:
          description: >-
            The HTTP status code, repeated so a logged payload is
            self-describing.
          type: integer
        title:
          description: A short, stable summary of the problem type.
          type: string
        trace_id:
          description: Correlates this response with the server-side logs.
          type: string
        type:
          description: >-
            Identifies the kind of problem. Branch on this rather than on the
            message.
          type: string
      required:
        - type
        - title
        - status
      type: object
  responses:
    BadRequest:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: The request could not be understood.
    Unauthorized:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: The request carries no usable API key.
      headers:
        WWW-Authenticate:
          description: The scheme to present a key with.
          schema:
            type: string
    Forbidden:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: The caller may not perform this action in this space.
    Conflict:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: >-
        The action is refused by the current state of the resource, or of
        something it depends on. The problem type names the condition to fix.
    PayloadTooLarge:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: The request body exceeds what the API reads.
    InternalError:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: The request could not be completed.
    ServiceUnavailable:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
      description: A transient condition prevented the request; it is worth retrying.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
  securitySchemes:
    apiKey:
      description: >-
        A platform API key, presented as `Authorization: Bearer <API_KEY>`. Each
        operation says which permission the key needs.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.