swagger: '2.0' info: title: Panopto Public Accessibility Playlists API description: The public API for Panopto. OpenID & OAuth information can be found at Panopto/oauth2/.well-known/openid-configuration version: '1' host: (i.e. example.hosted.panopto.com) basePath: /Panopto schemes: - https consumes: - application/json produces: - application/json tags: - name: Playlists description: Playlist API paths: /api/v1/playlists/{id}: get: tags: - Playlists summary: Get a playlist by Id operationId: Playlists_GetPlaylistById parameters: - type: string name: id in: path required: true format: guid x-nullable: false responses: '200': x-nullable: false description: '' schema: $ref: '#/definitions/Playlist' '400': x-nullable: false description: '' schema: $ref: '#/definitions/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': x-nullable: false description: The requested playlist was not found schema: $ref: '#/definitions/APIError' put: tags: - Playlists summary: Update a playlist description: Update the playlist's name, description, or folder. operationId: Playlists_UpdatePlaylistMetadata parameters: - type: string name: id in: path required: true format: guid x-nullable: false - name: playlistUpdate in: body schema: $ref: '#/definitions/PlaylistUpdate' x-nullable: true responses: '200': x-nullable: false description: '' schema: $ref: '#/definitions/Playlist' '400': x-nullable: false description: '' schema: $ref: '#/definitions/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': x-nullable: false description: The requested playlist was not found schema: $ref: '#/definitions/APIError' delete: tags: - Playlists summary: Delete a playlist description: Deletes a playlist based on the retention policies operationId: Playlists_DeletePlaylist parameters: - type: string name: id in: path required: true format: guid x-nullable: false responses: '200': x-nullable: false description: '' schema: type: string format: guid '400': x-nullable: false description: '' schema: $ref: '#/definitions/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': x-nullable: false description: The requested playlist was not found schema: $ref: '#/definitions/APIError' /api/v1/playlists/{id}/sessions: get: tags: - Playlists summary: Get a list of sessions in the given playlist description: 'To fetch all elements, this endpoint can be called multiple times, starting at pageNumber = 0 and incrementing the page number until no results are returned. **Note:** This endpoint does not return all available properties for a session. The CreatedBy and Urls properties (except the ViewerUrl and ThumbnailUrl) are not returned when searching for a session. To get these properties, you can get the specific session by Id.' operationId: Playlists_GetSessionsForPlaylist parameters: - type: string name: id in: path required: true format: guid x-nullable: false - type: string name: sortField in: query x-schema: $ref: '#/definitions/PlaylistSessionSortFields' default: Order x-nullable: false enum: - Name - CreatedDate - Relevance - Order - type: string name: sortOrder in: query x-schema: $ref: '#/definitions/SortOrder' default: Asc x-nullable: false enum: - Asc - Desc - type: integer name: pageNumber in: query description: Page numbering starts at 0 format: int32 default: 0 x-nullable: false responses: '200': x-nullable: false description: '' schema: $ref: '#/definitions/ListResponseOfSession' '400': x-nullable: false description: '' schema: $ref: '#/definitions/APIError' '403': description: User does not have permission to access this function '401': description: The user is not authorized to perform the requested action put: tags: - Playlists summary: Add a session to a playlist description: Adds the given session to a playlist. You can optionally specify an index to insert the session at a specific position in the playlist. Otherwise, it will be added to the end of the playlist. operationId: Playlists_AddSessionToPlaylist parameters: - type: string name: id in: path required: true format: guid x-nullable: false - name: session in: body schema: $ref: '#/definitions/PlaylistAddSession' x-nullable: true responses: '200': x-nullable: false description: '' schema: $ref: '#/definitions/ListResponseOfSession' '400': x-nullable: false description: '' schema: $ref: '#/definitions/APIError' '403': description: User does not have permission to access this function '401': description: The user is not authorized to perform the requested action /api/v1/playlists: post: tags: - Playlists summary: Create a new playlist operationId: Playlists_CreatePlaylist parameters: - name: playlist in: body schema: $ref: '#/definitions/PlaylistCreate' x-nullable: true responses: '200': x-nullable: false description: '' schema: $ref: '#/definitions/Playlist' '400': x-nullable: false description: '' schema: $ref: '#/definitions/APIError' '403': description: User does not have permission to access this function '401': description: The user is not authorized to perform the requested action /api/v1/playlists/search: get: tags: - Playlists summary: Search for playlists based on a keyword description: 'To fetch all elements, this endpoint can be called multiple times, starting at pageNumber = 0 and incrementing the page number until no results are returned. **Note:** The Playlist Search API does not return all available properties for a playlist. The Urls property (except the ViewerUrl) is not returned when listing playlists in a folder. To get these properties, you can get the specific playlist by Id using the Playlists API.' operationId: Playlists_SearchForPlaylists parameters: - type: string name: searchQuery in: query required: true x-nullable: true - type: string name: sortField in: query x-schema: $ref: '#/definitions/PlaylistSortFields' default: Name x-nullable: false enum: - Name - CreatedDate - Relevance - type: string name: sortOrder in: query x-schema: $ref: '#/definitions/SortOrder' default: Asc x-nullable: false enum: - Asc - Desc - type: integer name: pageNumber in: query description: Page numbering starts at 0 format: int32 default: 0 x-nullable: false responses: '200': x-nullable: false description: '' schema: $ref: '#/definitions/ListResponseOfPlaylist' '400': x-nullable: false description: '' schema: $ref: '#/definitions/APIError' '403': description: User does not have permission to access this function '401': description: The user is not authorized to perform the requested action /api/v1/playlists/{id}/sessions/{sessionId}: delete: tags: - Playlists summary: Remove a session from a playlist description: Removes the given session from a playlist. operationId: Playlists_RemoveSessionFromPlaylist parameters: - type: string name: id in: path required: true format: guid x-nullable: false - type: string name: sessionId in: path required: true format: guid x-nullable: false responses: '200': x-nullable: false description: '' schema: $ref: '#/definitions/Session' '400': x-nullable: false description: '' schema: $ref: '#/definitions/APIError' '403': description: User does not have permission to access this function '401': description: The user is not authorized to perform the requested action definitions: Session: type: object required: - Folder properties: Id: type: string format: guid Name: type: string Description: type: string StartTime: type: string format: date-time Duration: type: number description: The duration of the session (in seconds) format: double MostRecentViewPosition: type: number format: double CreatedBy: $ref: '#/definitions/User' Urls: $ref: '#/definitions/SessionUrls' Folder: type: string format: guid FolderDetails: $ref: '#/definitions/BasicFolder' Context: type: array items: $ref: '#/definitions/SearchResultContext' PercentCompleted: type: integer description: The percentage from 0-100 of the session watched by the requested user format: int32 User: type: object required: - Id properties: Id: type: string description: The id of the user. format: guid Username: type: string description: The username for this user. ModelBaseOfGuid: type: object properties: Id: type: string format: guid Name: type: string ListResponseOfPlaylist: type: object properties: Results: type: array description: The list of results from the API call items: $ref: '#/definitions/Playlist' PlaylistUrls: type: object properties: ViewerUrl: type: string description: The URL to view this playlist in Panopto EmbedUrl: type: string description: The URL to an embedded version of this playlist ThumbnailUrl: type: string description: The URL to retrieve the thumbnail for this playlist 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 Playlist: allOf: - $ref: '#/definitions/ModelBaseOfGuid' - type: object properties: Description: type: string Folder: $ref: '#/definitions/BasicFolder' Urls: $ref: '#/definitions/PlaylistUrls' PlaylistSessionSortFields: type: string description: '' x-enumNames: - Name - CreatedDate - Relevance - Order enum: - Name - CreatedDate - Relevance - Order PlaylistSortFields: type: string description: '' x-enumNames: - Name - CreatedDate - Relevance enum: - Name - CreatedDate - Relevance SearchResultContext: type: object properties: Text: type: string Time: type: number format: double ThumbnailUrl: type: string BasicFolder: type: object properties: Id: type: string format: guid Name: type: string SortOrder: type: string description: '' x-enumNames: - Asc - Desc enum: - Asc - Desc PlaylistUpdate: type: object properties: Name: type: string description: The new name for the playlist. Description: type: string description: The new description for the playlist. Folder: type: string description: The id of the folder to move this playlist to. format: guid SessionUrls: type: object properties: ViewerUrl: type: string description: The URL to view this session in Panopto EmbedUrl: type: string description: The URL to an embedded version of this session ShareSettingsUrl: type: string DownloadUrl: type: string description: The URL to download this session. This URL is intended for one-time download only, and is not appropriate for direct streaming or playback. May be blank if not allowed. AudioDescriptionDownloadUrl: type: string CaptionDownloadUrl: type: string description: The URL to download captions for this session, if available. EditorUrl: type: string description: The URL to edit this session in Panopto, if you are a creator. ThumbnailUrl: type: string description: The URL to retrieve the thumbnail for this session APIError: type: object properties: Error: description: Error result returned if an error occurs in Panopto, otherwise null or missing $ref: '#/definitions/APIErrorInternal' PlaylistCreate: type: object required: - FolderId properties: Name: type: string description: The name of the playlist. Description: type: string description: An optional description for the playlist. FolderId: type: string description: The folder to add this playlist to. format: guid Sessions: type: array description: A list of session IDs to add to this playlist. They will be added in order. items: type: string format: guid PlaylistAddSession: type: object required: - SessionId properties: SessionId: type: string description: The id of the session to add to this playlist. format: guid Index: type: integer description: The index to insert the item at (starting with 0 as the beginning of the list). If this is not specified, the session will be added to the end. format: int32 ListResponseOfSession: type: object properties: Results: type: array description: The list of results from the API call items: $ref: '#/definitions/Session' x-generator: NSwag v13.18.2.0 (NJsonSchema v10.8.0.0 (Newtonsoft.Json v13.0.0.0))