Panopto Accessibility API

Accessibility API

Operations 2

POST /api/v1/accessibility/bulk/preview Preview bulk accessibility request eligibility #
POST /api/v1/accessibility/bulk/schedule Schedule bulk accessibility requests #

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-accessibility-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-accessibility-api-openapi.yml Raw ↑
openapi: 3.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'
servers:
- url: https://<PanoptoServerURL>(i.e. example.hosted.panopto.com)/Panopto
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
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessibilityBulkPreviewResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '401':
          description: The user is not authorized to perform the requested action
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessibilityBulkPreviewRequest'
  /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
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessibilityBulkScheduleResponse'
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '401':
          description: The user is not authorized to perform the requested action
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccessibilityBulkScheduleRequest'
components:
  schemas:
    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
    AccessibilityBulkPreviewResponse:
      type: object
      required:
      - Type
      - SiteOverwriteBehavior
      properties:
        Type:
          description: 'The normalized accessibility type: AudioDescription, Transcription, or Translation.'
          $ref: '#/components/schemas/AccessibilityRequestType'
        SiteOverwriteBehavior:
          description: 'The site-level overwrite behavior. For AudioDescription: DoNotOverwrite or Overwrite. For Transcription/Translation: DoNotOverwrite, OverwriteASR, or OverwriteAny.'
          $ref: '#/components/schemas/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: '#/components/schemas/AccessibilityProviderPreview'
        SessionEvaluations:
          type: array
          description: Per-session eligibility evaluation results.
          items:
            $ref: '#/components/schemas/AccessibilitySessionPreview'
        Summary:
          description: Aggregate counts of eligible, conditionally eligible, and excluded sessions with total duration.
          $ref: '#/components/schemas/AccessibilityPreviewSummary'
    AccessibilityRequestType:
      type: string
      description: ''
      x-enumNames:
      - AudioDescription
      - Transcription
      - Translation
      enum:
      - AudioDescription
      - Transcription
      - Translation
    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
    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: '#/components/schemas/EligibilityState'
        ReasonCode:
          description: The reason the session is not fully eligible. None when EligibilityState is Eligible.
          $ref: '#/components/schemas/ExclusionReason'
        Details:
          description: Translation-specific details (source languages, existing captions, pending translations). Null for AudioDescription and Transcription types.
          $ref: '#/components/schemas/TranslationDetails'
    TranslationDetails:
      type: object
      properties:
        AvailableSourceLanguages:
          type: array
          description: Caption languages available as a translation source. Only non-translated captions are included.
          items:
            $ref: '#/components/schemas/ContentLanguage'
        ExistingCaptionLanguages:
          type: array
          description: All caption languages that already exist on the delivery, useful for identifying redundant translation targets.
          items:
            $ref: '#/components/schemas/ContentLanguage'
        PendingTranslationTargets:
          type: array
          description: Target languages with in-flight translation requests, useful for preventing duplicate requests.
          items:
            $ref: '#/components/schemas/ContentLanguage'
    AccessibilityBulkPreviewRequest:
      type: object
      required:
      - Type
      properties:
        Type:
          description: 'The accessibility request type: AudioDescription, Transcription, or Translation.'
          $ref: '#/components/schemas/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
    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'
    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: '#/components/schemas/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: '#/components/schemas/ContentLanguage'
        TargetLanguages:
          type: array
          description: 'Translation only: the target languages to translate to.'
          items:
            $ref: '#/components/schemas/ContentLanguage'
    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
    AccessibilityBulkScheduleResponse:
      type: object
      required:
      - Type
      - ScheduledCount
      - SkippedCount
      properties:
        Type:
          description: The accessibility request type that was scheduled.
          $ref: '#/components/schemas/AccessibilityRequestType'
        Results:
          type: array
          description: Per-session scheduling outcomes.
          items:
            $ref: '#/components/schemas/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
    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: '#/components/schemas/ExclusionReason'
        RequestCount:
          type: integer
          description: Number of transcription requests created for this session.
          format: int32
    EligibilityState:
      type: string
      description: ''
      x-enumNames:
      - Eligible
      - ConditionallyEligible
      - Excluded
      enum:
      - Eligible
      - ConditionallyEligible
      - Excluded
x-generator: NSwag v13.18.2.0 (NJsonSchema v10.8.0.0 (Newtonsoft.Json v13.0.0.0))