Panopto ScheduledRecordings API

Scheduled Recording API

Operations 4

GET /api/v1/scheduledRecordings/{id} Get the scheduled recording information for a session #
PUT /api/v1/scheduledRecordings/{id} Update the start or end time of a scheduled recording. #
DELETE /api/v1/scheduledRecordings/{id} Cancel a scheduled recording #
POST /api/v1/scheduledRecordings Create a new scheduled recording #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/panopto-scheduledrecordings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

panopto-scheduledrecordings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Panopto Public Accessibility Scheduled Recordings API
  description: The public API for Panopto. OpenID & OAuth information can be found at Panopto/oauth2/.well-known/openid-configuration
  version: '1'
servers:
- url: https://<PanoptoServerURL>(i.e. example.hosted.panopto.com)/Panopto
tags:
- name: ScheduledRecordings
  description: Scheduled Recording API
paths:
  /api/v1/scheduledRecordings/{id}:
    get:
      tags:
      - ScheduledRecordings
      summary: Get the scheduled recording information for a session
      operationId: ScheduledRecordings_GetScheduledRecordingById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: guid
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledRecording'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '403':
          description: User does not have permission to access this function
        '401':
          description: The user is not authorized to perform the requested action
        '404':
          description: The requested scheduled entry was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
    put:
      tags:
      - ScheduledRecordings
      summary: Update the start or end time of a scheduled recording.
      operationId: ScheduledRecordings_UpdateScheduledRecording
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: guid
      - name: resolveConflicts
        in: query
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledRecording'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '403':
          description: User does not have permission to access this function
        '401':
          description: The user is not authorized to perform the requested action
        '404':
          description: The requested scheduled entry was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledRecordingUpdate'
    delete:
      tags:
      - ScheduledRecordings
      summary: Cancel a scheduled recording
      operationId: ScheduledRecordings_CancelScheduledRecording
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: guid
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: string
                format: guid
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '403':
          description: User does not have permission to access this function
        '401':
          description: The user is not authorized to perform the requested action
        '404':
          description: The requested scheduled entry was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
  /api/v1/scheduledRecordings:
    post:
      tags:
      - ScheduledRecordings
      summary: Create a new scheduled recording
      operationId: ScheduledRecordings_CreateScheduledRecording
      parameters:
      - name: resolveConflicts
        in: query
        required: true
        schema:
          type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledRecording'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '403':
          description: User does not have permission to access this function
        '401':
          description: The user is not authorized to perform the requested action
        '404':
          description: The requested scheduled entry was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledRecordingCreate'
components:
  schemas:
    ScheduledRecordingRemoteRecorder:
      type: object
      required:
      - RemoteRecorderId
      - SuppressPrimary
      - SuppressSecondary
      properties:
        RemoteRecorderId:
          type: string
          description: The id of the remote recorder to use for this recording. Only one can be specified at this time.
          format: guid
        SuppressPrimary:
          type: boolean
          description: True if the primary stream should be suppressed from this recorder. At least one recorder in a scheduled recording must not suppress the primary stream.
        SuppressSecondary:
          type: boolean
          description: True if the secondary stream should be suppressed from this recorder.
    ScheduledRecordingCreate:
      type: object
      required:
      - StartTime
      - EndTime
      - FolderId
      - IsBroadcast
      properties:
        Name:
          type: string
          description: The name of the scheduled recording.
        Description:
          type: string
          description: An optional description for the scheduled recording.
        StartTime:
          type: string
          description: The date and time the scheduled recording should start.
          format: date-time
        EndTime:
          type: string
          description: The date and time the scheduled recording should end.
          format: date-time
        FolderId:
          type: string
          description: The folder to add this scheduled recording to.
          format: guid
        Recorders:
          type: array
          description: A list of recorders that will be used for this recording
          items:
            $ref: '#/components/schemas/ScheduledRecordingRemoteRecorder'
        IsBroadcast:
          type: boolean
          description: Set to true if this recording should be broadcast live when it starts.
    RecorderScheduleEntry:
      type: object
      required:
      - RecorderId
      - SuppressPrimaryCapture
      - SuppressSecondaryCapture
      properties:
        Id:
          type: string
          format: guid
        Name:
          type: string
        RecorderId:
          type: string
          format: guid
        SuppressPrimaryCapture:
          type: boolean
        SuppressSecondaryCapture:
          type: boolean
        RecorderDescription:
          type: string
    ScheduledRecording:
      type: object
      properties:
        Id:
          type: string
          format: guid
        Name:
          type: string
        RecorderScheduleEntries:
          type: array
          description: A list of recorders and their associated properties
          items:
            $ref: '#/components/schemas/RecorderScheduleEntry'
        StartTime:
          type: string
          description: The start time for the recording
          format: date-time
        EndTime:
          type: string
          description: The end time for the recording
          format: date-time
    APIErrorInternal:
      type: object
      required:
      - Success
      properties:
        ErrorCode:
          type: string
          description: Internal error code
        Message:
          type: string
        Success:
          type: boolean
          description: If true the call succeed and this is a partial failure (or warning). If false the call failed overall
        ErrorSource:
          type: string
          description: Unique identifier of what caused this error
    APIError:
      type: object
      properties:
        Error:
          description: Error result returned if an error occurs in Panopto, otherwise null or missing
          $ref: '#/components/schemas/APIErrorInternal'
    ScheduledRecordingUpdate:
      type: object
      properties:
        StartTime:
          type: string
          description: The new start time. Times should be UTC. Must be later than the current time
          format: date-time
        EndTime:
          type: string
          description: The new end time. Times should be UTC. Must be later than the current time
          format: date-time
x-generator: NSwag v13.18.2.0 (NJsonSchema v10.8.0.0 (Newtonsoft.Json v13.0.0.0))