Bitmovin Templates API

The Templates API from Bitmovin — 2 operation(s) for templates.

OpenAPI Specification

bitmovin-templates-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Bitmovin Encoding Config Templates API
  description: REST API for cloud-based VOD and live video encoding. Supports H.264, H.265/HEVC, VP9, AV1 and more, along with adaptive bitrate packaging (HLS/DASH/Smooth Streaming), DRM (Widevine, PlayReady, FairPlay), and per-title encoding optimisation.
  version: '3.0'
  termsOfService: https://bitmovin.com
  contact:
    name: Bitmovin Inc
    url: https://bitmovin.com
    email: support@bitmovin.com
servers:
- url: https://api.bitmovin.com/v1
  description: Bitmovin Server
  variables: {}
security:
- ApiKeyAuth: []
- ApiKeyAuth: []
  TenantOrgId: []
tags:
- name: Templates
paths:
  /encoding/templates:
    post:
      tags:
      - Templates
      summary: Store an Encoding Template
      operationId: PostEncodingTemplates
      description: 'Stores an Encoding Template that can be used later to start encodings or standby pools

        '
      requestBody:
        description: The Encoding Template to be stored
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EncodingTemplateRequest'
      responses:
        '201':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/EncodingTemplateDetails'
                          - description: Stored Encoding Template info
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
  /encoding/templates/start:
    post:
      tags:
      - Templates
      summary: Start an Encoding defined with an Encoding Template
      operationId: PostEncodingTemplatesStart
      x-bitmovin:
        isRpc: true
      requestBody:
        description: The Encoding Template to start an Encoding from
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EncodingTemplateRequest'
        required: true
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseEnvelope'
                - properties:
                    data:
                      properties:
                        result:
                          allOf:
                          - $ref: '#/components/schemas/EncodingTemplateStartResponse'
        default:
          description: Error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
components:
  schemas:
    BitmovinResponse:
      title: BitmovinResponse
      required:
      - id
      properties:
        id:
          type: string
          readOnly: true
          description: Id of the resource
          example: cb90b80c-8867-4e3b-8479-174aa2843f62
    Message:
      title: Message
      required:
      - type
      - text
      allOf:
      - $ref: '#/components/schemas/BitmovinResponse'
      - properties:
          type:
            description: Message type giving a hint on the importance of the message (log level)
            allOf:
            - $ref: '#/components/schemas/MessageType'
          text:
            type: string
            description: Message text
            example: field must not be empty
          field:
            type: string
            description: Name of the field to which the message is referring to
            example: manifestId
          links:
            type: array
            items:
              $ref: '#/components/schemas/Link'
            description: collection of links to webpages containing further information on the topic
          more:
            type: object
            description: Service-specific information
          date:
            type: string
            format: date-time
            description: Timestamp when the message occurred
            example: '2016-06-25T20:09:23.69Z'
    EncodingTemplateDetails:
      title: EncodingTemplateDetails
      required:
      - url
      allOf:
      - $ref: '#/components/schemas/EncodingTemplateResponse'
      - properties:
          url:
            readOnly: true
            type: string
            description: The url to download the template file
            example: https://storage.bitmovin.com/path/to/your/template.yml
    ResponseEnvelope:
      title: ResponseEnvelope
      required:
      - requestId
      - status
      - data
      properties:
        requestId:
          type: string
          readOnly: true
          description: Unique correlation id
          example: 6d84e126-d10c-4e52-bbfb-bd4c92bc8333
        status:
          description: Response status information
          readOnly: true
          example: SUCCESS
          allOf:
          - $ref: '#/components/schemas/ResponseStatus'
        data:
          description: Response information
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/ResultWrapper'
        more:
          type: object
          description: Additional endpoint specific information
    ResponseStatus:
      title: ResponseStatus
      type: string
      enum:
      - SUCCESS
      - ERROR
    EncodingTemplateRequest:
      description: "The template request object can be either a string (YAML/JSON) or a generic object that includes all the fields. \nPlease note that when sending the request as an object, the order of the fields is important, as it determines the sequence in which the Encoding resources are created.\n"
      type: object
    ResponseErrorData:
      title: ResponseErrorData
      required:
      - code
      - message
      - developerMessage
      properties:
        code:
          type: integer
          readOnly: true
          description: 'Contains an error code as defined in https://bitmovin.com/encoding-documentation/bitmovin-api/#/introduction/api-error-codes

            '
          example: 1005
        message:
          type: string
          readOnly: true
          description: General error message
        developerMessage:
          type: string
          readOnly: true
          description: More detailed message meant for developers
        links:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Link'
          description: collection of links to webpages containing further information on the topic
        details:
          type: array
          readOnly: true
          items:
            $ref: '#/components/schemas/Message'
          description: collection of messages containing more detailed information on the cause of the error
    ResultWrapper:
      title: ResultWrapper
      properties:
        result:
          type: object
          readOnly: true
    EncodingTemplateResponse:
      title: EncodingTemplateResponse
      required:
      - type
      allOf:
      - $ref: '#/components/schemas/BitmovinResource'
      - properties:
          type:
            allOf:
            - $ref: '#/components/schemas/EncodingTemplateType'
    EncodingTemplateType:
      title: EncodingTemplateType
      description: The Encoding Template type
      type: string
      enum:
      - VOD
      - LIVE
      example: VOD
      x-enum-elements:
      - name: VOD
        description: VOD Encoding Template
      - name: LIVE
        description: Live Encoding Template
    BitmovinResource:
      title: BitmovinResource
      allOf:
      - $ref: '#/components/schemas/BitmovinResponse'
      - properties:
          name:
            type: string
            description: Name of the resource. Can be freely chosen by the user.
            example: Name of the resource
          description:
            type: string
            description: Description of the resource. Can be freely chosen by the user.
            example: Description of the resource
          createdAt:
            type: string
            format: date-time
            readOnly: true
            description: 'Creation timestamp, returned as UTC expressed in ISO 8601 format: YYYY-MM-DDThh:mm:ssZ'
            example: '2016-06-25T20:09:23.69Z'
          modifiedAt:
            type: string
            format: date-time
            readOnly: true
            description: 'Modified timestamp, returned as UTC expressed in ISO 8601 format: YYYY-MM-DDThh:mm:ssZ'
            example: '2016-06-25T20:09:23.69Z'
          customData:
            type: string
            writeOnly: true
            description: User-specific meta data. This can hold anything.
            additionalProperties:
              type: object
    ResponseError:
      title: ResponseError
      required:
      - requestId
      - status
      - data
      properties:
        requestId:
          type: string
          readOnly: true
          description: Unique correlation id
          example: 6d84e126-d10c-4e52-bbfb-bd4c92bc8333
        status:
          description: Response status information
          readOnly: true
          example: ERROR
          allOf:
          - $ref: '#/components/schemas/ResponseStatus'
        data:
          description: Response information
          readOnly: true
          allOf:
          - $ref: '#/components/schemas/ResponseErrorData'
    EncodingTemplateStartResponse:
      title: EncodingTemplateStartResponse
      required:
      - encodingId
      properties:
        encodingId:
          type: string
          readOnly: true
          description: Id of the Encoding that is created
          example: 7cbb69ed-83f9-40a4-a162-a66e570ce910
    Link:
      title: Link
      required:
      - href
      properties:
        href:
          type: string
          description: webpage target URL
          example: https://bitmovin.com/encoding-documentation/bitmovin-api/#/reference/encoding/manifests/add-period
        title:
          type: string
          description: Short description of the linked page
          example: how to add a period to a manifest
    MessageType:
      title: MessageType
      type: string
      enum:
      - ERROR
      - WARNING
      - INFO
      - DEBUG
      - TRACE
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: Your Bitmovin API key
      name: X-Api-Key
      in: header
    TenantOrgId:
      type: apiKey
      description: Your Bitmovin account organization
      name: X-Tenant-Org-Id
      in: header