openapi: 3.0.1 info: title: Dacast Analytics VOD API description: 'RESTful JSON API for the Dacast live streaming and video hosting (OTT) platform. Covers live channels, video on demand (VOD), playlists, and viewer analytics. Authentication uses an X-Api-Key request header. API access is gated to Scale and Custom plans (trial accounts can request temporary access from Dacast sales). Grounding note: the base host (https://developer.dacast.com), the v2 versioning, X-Api-Key auth, and the operations POST /v2/vod, POST /v2/channel, POST /v2/playlist, and GET /v2/playlist/{playlistId} are confirmed from Dacast''s public developer docs (docs.dacast.com). Operations marked "x-modeled: true" are honestly modeled REST shapes for capabilities Dacast documents but whose exact paths, verbs, or parameters are not published; verify against the developer portal before use.' version: '2.0' contact: name: Dacast Support url: https://www.dacast.com/support/ termsOfService: https://www.dacast.com/terms-conditions/ servers: - url: https://developer.dacast.com security: - ApiKeyAuth: [] tags: - name: VOD description: Video on demand upload and management. paths: /v2/vod: post: operationId: createVodUpload tags: - VOD summary: Create a VOD upload signature description: Generate a signed upload target that allows pushing a source file to Dacast storage. Confirmed from the VOD Upload guide. requestBody: required: true content: application/json: schema: type: object properties: title: type: string description: type: string responses: '200': description: Upload signature created. get: operationId: listVideos tags: - VOD summary: List videos description: List VOD assets in the account. x-modeled: true parameters: - name: page in: query schema: type: integer - name: perPage in: query schema: type: integer responses: '200': description: A page of videos. /v2/vod/{videoId}: get: operationId: lookupVideo tags: - VOD summary: Look up a video description: Retrieve metadata for a single VOD asset. x-modeled: true parameters: - name: videoId in: path required: true schema: type: string responses: '200': description: Video metadata. delete: operationId: deleteVideoSource tags: - VOD summary: Delete a video source description: Delete a VOD asset or its source file. x-modeled: true parameters: - name: videoId in: path required: true schema: type: string responses: '204': description: Deleted. /v2/vod/{videoId}/rendition/{renditionId}: delete: operationId: deleteRendition tags: - VOD summary: Delete a rendition description: Delete a single encoded rendition of a VOD asset. x-modeled: true parameters: - name: videoId in: path required: true schema: type: string - name: renditionId in: path required: true schema: type: string responses: '204': description: Deleted. /v2/vod/upload/multipart: post: operationId: initiateMultipartUpload tags: - VOD summary: Initiate a multi-part upload description: Begin a multi-part upload for a large VOD source file. Documented as a multi-part flow (initiate, presigned URLs, complete); exact path modeled. x-modeled: true responses: '200': description: Multi-part upload initiated. components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-Api-Key