Mux

Mux Signing Keys API

Signing keys are used to sign JSON Web Tokens (JWTs) for securing certain requests, such as secure playback URLs and access to real-time viewer counts in Mux Data. **One signing key can be used to sign multiple requests - you probably only need one active at a time.** However, you can create multiple signing keys to enable key rotation, creating a new key and deleting the old only after any existing signed requests have expired.

OpenAPI Specification

mux-com-signing-keys-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Mux Animated Images Signing Keys API
  description: Mux is how developers build online video. This API encompasses both Mux Video and Mux Data functionality to help you build your video-related projects better and faster than ever before.
  version: v1
  contact:
    name: Mux DevEx
    url: https://docs.mux.com
    email: devex@mux.com
servers:
- url: https://api.mux.com
  description: Mux Production API
- url: https://image.mux.com
- url: https://stream.mux.com
- url: https://stats.mux.com
tags:
- name: Signing Keys
  description: Signing keys are used to sign JSON Web Tokens (JWTs) for securing certain requests, such as secure playback URLs and access to real-time viewer counts in Mux Data. **One signing key can be used to sign multiple requests - you probably only need one active at a time.** However, you can create multiple signing keys to enable key rotation, creating a new key and deleting the old only after any existing signed requests have expired.
  x-displayName: Signing Keys
paths:
  /system/v1/signing-keys:
    post:
      tags:
      - Signing Keys
      summary: Create a Signing Key
      description: Creates a new signing key pair. When creating a new signing key, the API will generate a 2048-bit RSA key-pair and return the private key and a generated key-id; the public key will be stored at Mux to validate signed tokens.
      operationId: create-signing-key
      servers:
      - url: https://api.mux.com
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SigningKeyResponse'
              example:
                data:
                  private_key: abcd123=
                  id: vI5KTQ78ohYriuvWKHY6COtZWXexHGLllxksOdZuya8
                  created_at: '1610108345'
      security:
      - accessToken: []
      - authorizationToken: []
    get:
      tags:
      - Signing Keys
      summary: List Signing Keys
      description: Returns a list of signing keys.
      operationId: list-signing-keys
      servers:
      - url: https://api.mux.com
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSigningKeysResponse'
              example:
                data:
                - id: vI5KTQ78ohYriuvWKHY6COtZWXexHGLllxksOdZuya8
                  created_at: '1610108345'
                - id: jc6lJiCLMjyC202EXtRQ644sShzDv6x5tWJrbvUFpvmo
                  created_at: '1608632647'
      security:
      - accessToken: []
      - authorizationToken: []
  /system/v1/signing-keys/{SIGNING_KEY_ID}:
    get:
      tags:
      - Signing Keys
      summary: Retrieve a Signing Key
      description: 'Retrieves the details of a signing key that has previously

        been created. Supply the unique signing key ID that was returned from your

        previous request, and Mux will return the corresponding signing key information.

        **The private key is not returned in this response.**

        '
      operationId: get-signing-key
      servers:
      - url: https://api.mux.com
      parameters:
      - $ref: '#/components/parameters/signing_key_id'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SigningKeyResponse'
              example:
                data:
                  id: jc6lJiCLMjyC202EXtRQ644sShzDv6x5tWJrbvUFpvmo
                  created_at: '1608632647'
      security:
      - accessToken: []
      - authorizationToken: []
    delete:
      tags:
      - Signing Keys
      summary: Delete a Signing Key
      description: Deletes an existing signing key. Use with caution, as this will invalidate any existing signatures and no JWTs can be signed using the key again.
      operationId: delete-signing-key
      servers:
      - url: https://api.mux.com
      parameters:
      - $ref: '#/components/parameters/signing_key_id'
      responses:
        '204':
          description: No Content
      security:
      - accessToken: []
      - authorizationToken: []
components:
  schemas:
    SigningKey:
      type: object
      required:
      - id
      - created_at
      properties:
        id:
          type: string
          description: Unique identifier for the Signing Key.
        created_at:
          type: string
          format: int64
          description: Time at which the object was created. Measured in seconds since the Unix epoch.
        private_key:
          type: string
          format: byte
          description: A Base64 encoded private key that can be used with the RS256 algorithm when creating a [JWT](https://jwt.io/). **Note that this value is only returned once when creating a URL signing key.**
    SigningKeyResponse:
      type: object
      required:
      - data
      properties:
        data:
          $ref: '#/components/schemas/SigningKey'
    ListSigningKeysResponse:
      type: object
      required:
      - data
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/SigningKey'
  parameters:
    page:
      name: page
      in: query
      description: Offset by this many pages, of the size of `limit`
      required: false
      schema:
        type: integer
        format: int32
        default: 1
    signing_key_id:
      name: SIGNING_KEY_ID
      in: path
      description: The ID of the signing key.
      required: true
      schema:
        type: string
    limit:
      name: limit
      in: query
      description: Number of items to include in the response
      required: false
      schema:
        type: integer
        format: int32
        default: 25
  securitySchemes:
    accessToken:
      description: 'The Mux Video API uses an Access Token and Secret Key for authentication. If you haven''t already, [generate a new Access Token](https://dashboard.mux.com/settings/access-tokens) in the Access Token settings of your Mux account dashboard.


        Once you have an Access Token ID and Secret, you can then simply include those as the username (id) and password (secret) in the same way you use traditional basic auth.

        '
      scheme: basic
      type: http
    authorizationToken:
      description: 'OAuth authorization token, used as a Bearer Auth header

        '
      scheme: bearer
      type: http
x-tagGroups:
- name: Video
  tags:
  - Assets
  - Live Streams
  - Playback ID
  - URL Signing Keys
  - Direct Uploads
  - Delivery Usage
  - Playback Restrictions
  - DRM Configurations
  - Transcription Vocabularies
- name: Data
  tags:
  - Video Views
  - Errors
  - Filters
  - Exports
  - Metrics
  - Monitoring
  - Real-Time
  - Dimensions
  - Incidents
  - Annotations
  - View and Viewer Counts
- name: System
  tags:
  - Signing Keys
  - Utilities
- name: Robots
  tags:
  - Jobs
  - Ask Questions
  - Edit Captions
  - Find Key Moments
  - Generate Chapters
  - Moderate
  - Summarize
  - Translate Captions
- name: Playback
  tags:
  - Thumbnails
  - Animated Images
  - Storyboards
  - Streaming
  - Captions and Transcripts