Panopto Accessibility API

Accessibility API

OpenAPI Specification

panopto-accessibility-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: Panopto Public Accessibility API
  description: The public API for Panopto. OpenID & OAuth information can be found at Panopto/oauth2/.well-known/openid-configuration
  version: '1'
host: <PanoptoServerURL>(i.e. example.hosted.panopto.com)
basePath: /Panopto
schemes:
- https
consumes:
- application/json
produces:
- application/json
tags:
- name: Accessibility
  description: Accessibility API
paths:
  /api/v1/accessibility/bulk/preview:
    post:
      tags:
      - Accessibility
      summary: Preview bulk accessibility request eligibility
      description: Returns providers, per-session eligibility, and pricing metadata for AudioDescription, Transcription, or Translation. Admin-only.
      operationId: Accessibility_PreviewBulkAccessibility
      parameters:
      - name: request
        in: body
        schema:
          $ref: '#/definitions/AccessibilityBulkPreviewRequest'
        x-nullable: true
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/AccessibilityBulkPreviewResponse'
        '400':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/APIError'
        '401':
          description: The user is not authorized to perform the requested action
  /api/v1/accessibility/bulk/schedule:
    post:
      tags:
      - Accessibility
      summary: Schedule bulk accessibility requests
      description: Creates transcription, translation, or audio description requests for the specified sessions. Admin-only.
      operationId: Accessibility_ScheduleBulkAccessibility
      parameters:
      - name: request
        in: body
        schema:
          $ref: '#/definitions/AccessibilityBulkScheduleRequest'
        x-nullable: true
      responses:
        '200':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/AccessibilityBulkScheduleResponse'
        '400':
          x-nullable: false
          description: ''
          schema:
            $ref: '#/definitions/APIError'
        '401':
          description: The user is not authorized to perform the requested action
definitions:
  AccessibilityProviderPreview:
    type: object
    required:
    - ProviderInstanceId
    - PriceKnown
    properties:
      ProviderInstanceId:
        type: integer
        description: Provider instance identifier, used when scheduling an accessibility request.
        format: int32
      DisplayName:
        type: string
        description: Display name of the provider (e.g. "Captions Service").
      PricePerMinute:
        type: number
        description: Price per minute in caption credits. Null when pricing is not applicable.
        format: double
      PriceKnown:
        type: boolean
        description: Whether the price is known.
  ExclusionReason:
    type: string
    description: ''
    x-enumNames:
    - None
    - NotFound
    - InsufficientPermissions
    - InvalidTranscriptionRequestType
    - NoActiveDelivery
    - NoPrimaryStream
    - PendingEdits
    - PendingRequest
    - UnsupportedLanguage
    - AlreadyHasAudioDescription
    - AlreadyHasCaptions
    - AlreadyHasAsrCaptions
    - NoSourceCaptions
    - SchedulingFailed
    enum:
    - None
    - NotFound
    - InsufficientPermissions
    - InvalidTranscriptionRequestType
    - NoActiveDelivery
    - NoPrimaryStream
    - PendingEdits
    - PendingRequest
    - UnsupportedLanguage
    - AlreadyHasAudioDescription
    - AlreadyHasCaptions
    - AlreadyHasAsrCaptions
    - NoSourceCaptions
    - SchedulingFailed
  ContentLanguage:
    type: string
    description: Language of content such as sessions, streams, or captions.
    x-enumNames:
    - English_USA
    - English_GBR
    - Spanish_MEX
    - Spanish_ESP
    - German
    - French
    - Dutch
    - Thai
    - Chinese_Simplified
    - Chinese_Traditional
    - Korean
    - Japanese
    - Russian
    - Portuguese
    - Polish
    - English_AUS
    - Danish
    - Finnish
    - Hungarian
    - Norwegian
    - Swedish
    - Italian
    - Welsh
    - Catalan
    - Galician
    - Basque
    - Arabic
    - Hindi
    - French_CAN
    - Hebrew
    - Vietnamese
    enum:
    - English_USA
    - English_GBR
    - Spanish_MEX
    - Spanish_ESP
    - German
    - French
    - Dutch
    - Thai
    - Chinese_Simplified
    - Chinese_Traditional
    - Korean
    - Japanese
    - Russian
    - Portuguese
    - Polish
    - English_AUS
    - Danish
    - Finnish
    - Hungarian
    - Norwegian
    - Swedish
    - Italian
    - Welsh
    - Catalan
    - Galician
    - Basque
    - Arabic
    - Hindi
    - French_CAN
    - Hebrew
    - Vietnamese
  EligibilityState:
    type: string
    description: ''
    x-enumNames:
    - Eligible
    - ConditionallyEligible
    - Excluded
    enum:
    - Eligible
    - ConditionallyEligible
    - Excluded
  TranslationDetails:
    type: object
    properties:
      AvailableSourceLanguages:
        type: array
        description: Caption languages available as a translation source. Only non-translated captions are included.
        items:
          $ref: '#/definitions/ContentLanguage'
      ExistingCaptionLanguages:
        type: array
        description: All caption languages that already exist on the delivery, useful for identifying redundant translation targets.
        items:
          $ref: '#/definitions/ContentLanguage'
      PendingTranslationTargets:
        type: array
        description: Target languages with in-flight translation requests, useful for preventing duplicate requests.
        items:
          $ref: '#/definitions/ContentLanguage'
  AccessibilityBulkScheduleResponse:
    type: object
    required:
    - Type
    - ScheduledCount
    - SkippedCount
    properties:
      Type:
        description: The accessibility request type that was scheduled.
        $ref: '#/definitions/AccessibilityRequestType'
      Results:
        type: array
        description: Per-session scheduling outcomes.
        items:
          $ref: '#/definitions/AccessibilityScheduleResult'
      ScheduledCount:
        type: integer
        description: Number of sessions that were successfully scheduled.
        format: int32
      SkippedCount:
        type: integer
        description: Number of sessions that were skipped.
        format: int32
  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
  AccessibilityBulkPreviewResponse:
    type: object
    required:
    - Type
    - SiteOverwriteBehavior
    properties:
      Type:
        description: 'The normalized accessibility type: AudioDescription, Transcription, or Translation.'
        $ref: '#/definitions/AccessibilityRequestType'
      SiteOverwriteBehavior:
        description: 'The site-level overwrite behavior. For AudioDescription: DoNotOverwrite or Overwrite. For Transcription/Translation: DoNotOverwrite, OverwriteASR, or OverwriteAny.'
        $ref: '#/definitions/AccessibilityOverwriteBehavior'
      AvailableCaptionCredits:
        type: number
        description: Remaining caption credits for the active transcription contract. Null when no finite credit pool applies (no active contract, or unlimited credits). Zero means the contract's finite pool has been fully consumed.
        format: double
      Providers:
        type: array
        description: Available providers for the requested type, with display names and pricing metadata.
        items:
          $ref: '#/definitions/AccessibilityProviderPreview'
      SessionEvaluations:
        type: array
        description: Per-session eligibility evaluation results.
        items:
          $ref: '#/definitions/AccessibilitySessionPreview'
      Summary:
        description: Aggregate counts of eligible, conditionally eligible, and excluded sessions with total duration.
        $ref: '#/definitions/AccessibilityPreviewSummary'
  AccessibilityPreviewSummary:
    type: object
    required:
    - TotalSessions
    - EligibleCount
    - ConditionallyEligibleCount
    - ExcludedCount
    - TotalDurationSeconds
    properties:
      TotalSessions:
        type: integer
        description: Total number of sessions evaluated (after de-duplication).
        format: int32
      EligibleCount:
        type: integer
        description: Number of sessions that are fully eligible and included by default.
        format: int32
      ConditionallyEligibleCount:
        type: integer
        description: Number of sessions excluded by default but eligible if the user opts in (e.g. overwrite existing content).
        format: int32
      ExcludedCount:
        type: integer
        description: Number of sessions that cannot be included in the request.
        format: int32
      TotalDurationSeconds:
        type: number
        description: Total duration of all evaluated sessions in seconds.
        format: double
  AccessibilityRequestType:
    type: string
    description: ''
    x-enumNames:
    - AudioDescription
    - Transcription
    - Translation
    enum:
    - AudioDescription
    - Transcription
    - Translation
  APIError:
    type: object
    properties:
      Error:
        description: Error result returned if an error occurs in Panopto, otherwise null or missing
        $ref: '#/definitions/APIErrorInternal'
  AccessibilitySessionPreview:
    type: object
    required:
    - SessionId
    - DurationSeconds
    - EligibilityState
    - ReasonCode
    properties:
      SessionId:
        type: string
        description: The public ID of the evaluated session.
        format: guid
      SessionName:
        type: string
        description: The display name of the session. Null if the session was not found.
      DurationSeconds:
        type: number
        description: Total duration in seconds of the session's streams. Zero if the session was not found or has no primary streams.
        format: double
      EligibilityState:
        description: 'The eligibility classification: Eligible, ConditionallyEligible, or Excluded.'
        $ref: '#/definitions/EligibilityState'
      ReasonCode:
        description: The reason the session is not fully eligible. None when EligibilityState is Eligible.
        $ref: '#/definitions/ExclusionReason'
      Details:
        description: Translation-specific details (source languages, existing captions, pending translations). Null for AudioDescription and Transcription types.
        $ref: '#/definitions/TranslationDetails'
  AccessibilityOverwriteBehavior:
    type: string
    description: ''
    x-enumNames:
    - DoNotOverwrite
    - OverwriteAD
    - OverwriteASR
    - OverwriteAnyCaptions
    enum:
    - DoNotOverwrite
    - OverwriteAD
    - OverwriteASR
    - OverwriteAnyCaptions
  AccessibilityBulkScheduleRequest:
    type: object
    required:
    - Type
    - ProviderInstanceId
    properties:
      Type:
        description: 'The accessibility request type: AudioDescription, Transcription, or Translation.'
        $ref: '#/definitions/AccessibilityRequestType'
      SessionIds:
        type: array
        description: List of session or delivery public IDs (GUIDs) to schedule. Duplicates are de-duplicated. Maximum 100 IDs.
        items:
          type: string
          format: guid
      ProviderInstanceId:
        type: integer
        description: The provider instance ID to use, from the preview response's Providers list.
        format: int32
      SourceLanguage:
        description: 'Translation only: the source caption language to translate from.'
        $ref: '#/definitions/ContentLanguage'
      TargetLanguages:
        type: array
        description: 'Translation only: the target languages to translate to.'
        items:
          $ref: '#/definitions/ContentLanguage'
  AccessibilityScheduleResult:
    type: object
    required:
    - SessionId
    - Scheduled
    - ReasonCode
    - RequestCount
    properties:
      SessionId:
        type: string
        description: The public ID of the session.
        format: guid
      SessionName:
        type: string
        description: The display name of the session. Null if the session was not found.
      Scheduled:
        type: boolean
        description: Whether accessibility requests were created for this session.
      ReasonCode:
        description: The reason the session was skipped. None when Scheduled is true.
        $ref: '#/definitions/ExclusionReason'
      RequestCount:
        type: integer
        description: Number of transcription requests created for this session.
        format: int32
  AccessibilityBulkPreviewRequest:
    type: object
    required:
    - Type
    properties:
      Type:
        description: 'The accessibility request type: AudioDescription, Transcription, or Translation.'
        $ref: '#/definitions/AccessibilityRequestType'
      SessionIds:
        type: array
        description: List of session or delivery public IDs (GUIDs) to evaluate. Duplicates are de-duplicated. Maximum 100 IDs.
        items:
          type: string
          format: guid
x-generator: NSwag v13.18.2.0 (NJsonSchema v10.8.0.0 (Newtonsoft.Json v13.0.0.0))