Bitmovin Outputs API
The Outputs API from Bitmovin — 20 operation(s) for outputs.
The Outputs API from Bitmovin — 20 operation(s) for outputs.
openapi: 3.0.1
info:
title: Bitmovin Encoding Config Outputs API
description: REST API for cloud-based VOD and live video encoding. Supports H.264, H.265/HEVC, VP9, AV1 and more, along with adaptive bitrate packaging (HLS/DASH/Smooth Streaming), DRM (Widevine, PlayReady, FairPlay), and per-title encoding optimisation.
version: '3.0'
termsOfService: https://bitmovin.com
contact:
name: Bitmovin Inc
url: https://bitmovin.com
email: support@bitmovin.com
servers:
- url: https://api.bitmovin.com/v1
description: Bitmovin Server
variables: {}
security:
- ApiKeyAuth: []
- ApiKeyAuth: []
TenantOrgId: []
tags:
- name: Outputs
paths:
/encoding/outputs/akamai-msl/{output_id}:
delete:
tags:
- Outputs
summary: Delete Akamai MSL Output
operationId: DeleteEncodingOutputsAkamaiMslByOutputId
parameters:
- name: output_id
in: path
description: Id of the output
style: simple
required: true
schema:
type: string
example: 05edf91d-05f3-4ecd-998f-b28f75027b5e
responses:
'200':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/BitmovinResponse'
- description: Id of the output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/akamai-netstorage/{output_id}:
delete:
tags:
- Outputs
summary: Delete Akamai NetStorage Output
operationId: DeleteEncodingOutputsAkamaiNetStorageByOutputId
parameters:
- name: output_id
in: path
description: Id of the output
style: simple
required: true
schema:
type: string
example: 05edf91d-05f3-4ecd-998f-b28f75027b5e
responses:
'200':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/AkamaiNetStorageOutput'
- description: Id of the output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/azure/{output_id}:
delete:
tags:
- Outputs
summary: Delete Azure Output
operationId: DeleteEncodingOutputsAzureByOutputId
parameters:
- name: output_id
in: path
description: Id of the output
style: simple
required: true
schema:
type: string
example: cb90b80c-8867-4e3b-8479-174aa2843f62
responses:
'200':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/AzureOutput'
- description: Id of the output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/ftp/{output_id}:
delete:
tags:
- Outputs
summary: Delete FTP Output
operationId: DeleteEncodingOutputsFtpByOutputId
parameters:
- name: output_id
in: path
description: Id of the output
style: simple
required: true
schema:
type: string
example: cb90b80c-8867-4e3b-8479-174aa2843f62
responses:
'200':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/FtpOutput'
- description: Id of the output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/gcs/{output_id}:
delete:
tags:
- Outputs
summary: Delete GCS Output
operationId: DeleteEncodingOutputsGcsByOutputId
parameters:
- name: output_id
in: path
description: Id of the output
style: simple
required: true
schema:
type: string
example: cb90b80c-8867-4e3b-8479-174aa2843f62
responses:
'200':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/GcsOutput'
- description: Id of the output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/gcs-service-account/{output_id}:
delete:
tags:
- Outputs
summary: Delete Service Account based GCS Output
operationId: DeleteEncodingOutputsGcsServiceAccountByOutputId
parameters:
- name: output_id
in: path
description: Id of the output
style: simple
required: true
schema:
type: string
example: cb90b80c-8867-4e3b-8479-174aa2843f62
responses:
'200':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/GcsServiceAccountOutput'
- description: Id of the output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/generic-s3/{output_id}:
delete:
tags:
- Outputs
summary: Delete Generic S3 Output
operationId: DeleteEncodingOutputsGenericS3ByOutputId
parameters:
- name: output_id
in: path
description: Id of the output
style: simple
required: true
schema:
type: string
example: 1a56e6d6-69e9-4e4d-a004-1f85a2b8cc92
responses:
'200':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/GenericS3Output'
- description: Id of the output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/akamai-msl:
post:
tags:
- Outputs
summary: Create Akamai MSL Output
operationId: PostEncodingOutputsAkamaiMsl
requestBody:
description: The Akamai MSL output to be created
content:
application/json:
schema:
$ref: '#/components/schemas/AkamaiMslOutput'
responses:
'201':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/AkamaiMslOutput'
- description: Akamai MSL output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/akamai-netstorage:
post:
tags:
- Outputs
summary: Create Akamai NetStorage Output
operationId: PostEncodingOutputsAkamaiNetStorage
requestBody:
description: The Akamai NetStorage output to be created
content:
application/json:
schema:
$ref: '#/components/schemas/AkamaiNetStorageOutput'
responses:
'201':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/AkamaiNetStorageOutput'
- description: Akamai NetStorage output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/azure:
post:
tags:
- Outputs
summary: Create Azure Output
operationId: PostEncodingOutputsAzure
requestBody:
description: The Azure output to be created
content:
application/json:
schema:
$ref: '#/components/schemas/AzureOutput'
responses:
'201':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/AzureOutput'
- description: Azure output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/{output_id}/check-permissions:
post:
tags:
- Outputs
summary: Check output permissions (S3 only)
operationId: PostEncodingOutputsCheckPermissionsByOutputId
x-bitmovin:
isRpc: true
operationName: checkPermissions
optionalRequestBody: true
parameters:
- name: output_id
in: path
description: Id of the output to be checked. Currently limited to S3 outputs. The access credentials that have been provided for this Output still need to be valid, otherwise the request will fail. If they are not valid any more, create a new Output with new credentials (resources are immutable).
style: simple
required: true
schema:
type: string
example: 4ae91f43-e78b-44c4-a9e3-890001c4bd07
requestBody:
description: Additional parameters for the permissions check
content:
application/json:
schema:
$ref: '#/components/schemas/CheckOutputPermissionsRequest'
responses:
'200':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/CheckOutputPermissionsResponse'
- description: Permissions check result
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/ftp:
post:
tags:
- Outputs
summary: Create FTP Output
operationId: PostEncodingOutputsFtp
requestBody:
description: The FTP output to be created
content:
application/json:
schema:
$ref: '#/components/schemas/FtpOutput'
responses:
'201':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/FtpOutput'
- description: FTP output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/gcs:
post:
tags:
- Outputs
summary: Create GCS Output
operationId: PostEncodingOutputsGcs
requestBody:
description: The GCS output to be created
content:
application/json:
schema:
$ref: '#/components/schemas/GcsOutput'
responses:
'201':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/GcsOutput'
- description: GCS output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/gcs-service-account:
post:
tags:
- Outputs
summary: Create Service Account based GCS Output
operationId: PostEncodingOutputsGcsServiceAccount
requestBody:
description: The GCS output to be created
content:
application/json:
schema:
$ref: '#/components/schemas/GcsServiceAccountOutput'
responses:
'201':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/GcsServiceAccountOutput'
- description: GCS output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/generic-s3:
post:
tags:
- Outputs
summary: Create Generic S3 Output
operationId: PostEncodingOutputsGenericS3
requestBody:
description: The Generic S3 output to be created
content:
application/json:
schema:
$ref: '#/components/schemas/GenericS3Output'
responses:
'201':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/GenericS3Output'
- description: Generic S3 output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/live-media-ingest:
post:
tags:
- Outputs
summary: Create Live Media Ingest Output
operationId: PostEncodingOutputsLiveMediaIngest
requestBody:
description: The Live Media Ingest output to be created
content:
application/json:
schema:
$ref: '#/components/schemas/LiveMediaIngestOutput'
responses:
'201':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/LiveMediaIngestOutput'
- description: Live Media Ingest output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/local:
post:
tags:
- Outputs
summary: Create Local Output
operationId: PostEncodingOutputsLocal
requestBody:
description: The Local output to be created
content:
application/json:
schema:
$ref: '#/components/schemas/LocalOutput'
responses:
'201':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/LocalOutput'
- description: Local output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/s3:
post:
tags:
- Outputs
summary: Create S3 Output
operationId: PostEncodingOutputsS3
requestBody:
description: "The S3 output to be created\n\nThe following permissions are required for S3 output:\n * s3:PutObject\n * s3:PutObjectAcl\n * s3:ListBucket\n * s3:GetBucketLocation\n"
content:
application/json:
schema:
$ref: '#/components/schemas/S3Output'
responses:
'201':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/S3Output'
- description: S3 output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/s3-role-based:
post:
tags:
- Outputs
summary: Create S3 Role-based Output
operationId: PostEncodingOutputsS3RoleBased
requestBody:
description: "The S3 Role-based output to be created\n\nThe following permissions are required for S3 Role-based output:\n * s3:PutObject\n * s3:PutObjectAcl\n * s3:ListBucket\n * s3:GetBucketLocation\n"
content:
application/json:
schema:
$ref: '#/components/schemas/S3RoleBasedOutput'
responses:
'201':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/S3RoleBasedOutput'
- description: S3 Role-based Output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
/encoding/outputs/sftp:
post:
tags:
- Outputs
summary: Create SFTP Output
operationId: PostEncodingOutputsSftp
requestBody:
description: The SFTP output to be created.
content:
application/json:
schema:
$ref: '#/components/schemas/SftpOutput'
responses:
'201':
description: Successful response.
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ResponseEnvelope'
- properties:
data:
properties:
result:
allOf:
- $ref: '#/components/schemas/SftpOutput'
- description: SFTP output
default:
description: Error response.
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseError'
components:
schemas:
ResponseEnvelope:
title: ResponseEnvelope
required:
- requestId
- status
- data
properties:
requestId:
type: string
readOnly: true
description: Unique correlation id
example: 6d84e126-d10c-4e52-bbfb-bd4c92bc8333
status:
description: Response status information
readOnly: true
example: SUCCESS
allOf:
- $ref: '#/components/schemas/ResponseStatus'
data:
description: Response information
readOnly: true
allOf:
- $ref: '#/components/schemas/ResultWrapper'
more:
type: object
description: Additional endpoint specific information
CheckOutputPermissionsResponse:
title: CheckOutputPermissionsResponse
allOf:
- properties:
outputId:
type: string
readOnly: true
description: Id of the output for which permissions were checked
example: 55354be6-0237-42bb-ae85-a2d4ef1ed19e
outputType:
description: The type of the output for which permissions were checked
readOnly: true
allOf:
- $ref: '#/components/schemas/OutputType'
path:
type: string
readOnly: true
description: The path on the storage for which permissions were checked. In AWS S3 terminology, this corresponds to a "prefix". An empty string corresponds to the root directory.
example: videos/
passed:
type: boolean
readOnly: true
description: Indicates if permissions on the storage are configured correctly to be used as output target by the Bitmovin encoder. If "false", *failureReason* will provide additional information.
example: 'false'
failureReason:
type: string
readOnly: true
description: Contains nothing if the check succeeded. Otherwise, contains a message explaining why it failed.
example: 'The following required permissions are not set: PutObject'
S3SignatureVersion:
title: S3SignatureVersion
type: string
enum:
- S3_V2
- S3_V4
default: S3_V4
AclPermission:
title: AclPermission
type: string
enum:
- PUBLIC_READ
- PRIVATE
OutputType:
title: OutputType
type: string
enum:
- AKAMAI_NETSTORAGE
- AZURE
- GENERIC_S3
- GCS
- FTP
- LOCAL
- S3
- S3_ROLE_BASED
- SFTP
- AKAMAI_MSL
- LIVE_MEDIA_INGEST
- GCS_SERVICE_ACCOUNT
- CDN
x-enum-elements:
- name: AKAMAI_NETSTORAGE
- name: AZURE
- name: GENERIC_S3
- name: GCS
- name: FTP
- name: LOCAL
- name: S3
- name: S3_ROLE_BASED
- name: SFTP
- name: AKAMAI_MSL
- name: LIVE_MEDIA_INGEST
- name: GCS_SERVICE_ACCOUNT
- name: CDN
AkamaiMslStreamFormat:
title: AkamaiMslStreamFormat
type: string
enum:
- DASH
- HLS
- CMAF
default: DASH
AzureServicePrincipal:
title: AzureServicePrincipal
type: object
description: Azure service principal credentials for Microsoft Entra ID authentication. This authentication method is usable from encoder version 2.273.0 onwards.
required:
- tenantId
- clientId
oneOf:
- title: Authenticate with Client Secret
required:
- clientSecret
- title: Authenticate with Client Certificate
required:
- clientCertificate
allOf:
- properties:
tenantId:
type: string
description: Tenant ID (Directory ID) of the Azure service principal
writeOnly: true
clientId:
type: string
description: Client ID of the Azure service principal
writeOnly: true
clientSecret:
type: string
description: Client secret of the Azure service principal
writeOnly: true
clientCertificate:
type: string
description: PEM-encoded client certificate and private key of the Azure service principal. Newline symbols must be preserved.
example: '-----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDAMn/1SpomwntO ... (truncated) ... Qu6eQUtTE/RCuArarGuOtE0= -----END PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIDDTCCAfWgAwIBAgIUX5jXOu6RNVC5MAfi9L/PiIhADMQwDQYJKoZIhvcNAQEL ... (truncated) ... 28mdG3XdDAQfClkhhArMktQ= -----END CERTIFICATE-----
'
writeOnly: true
GcsOutput:
title: GcsOutput
required:
- bucketName
- accessKey
- secretKey
allOf:
- $ref: '#/components/schemas/Output'
- properties:
accessKey:
type: string
description: GCS access key
example: GOOGTS7C7FUP3AIRVJTE
writeOnly: true
secretKey:
type: string
description: GCS secret key
example: bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ
writeOnly: true
bucketName:
type: string
description: Name of the bucket
example: video-bucket
cloudRegion:
description: The cloud region in which the bucket is located. Is used to determine the ideal location for your encodings automatically.
allOf:
- $ref: '#/components/schemas/GoogleCloudRegion'
AzureOutput:
title: AzureOutput
required:
- container
- accountName
oneOf:
- title: Authenticate with Entra ID Service Principal
required:
- servicePrincipal
- title: Authenticate with Account Key
required:
- accountKey
allOf:
- $ref: '#/components/schemas/Output'
- properties:
accountName:
type: string
description: Azure Account Name
example: devstoreaccount1
writeOnly: true
accountKey:
type: string
description: Azure Account Key
example: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
writeOnly: true
deprecated: true
servicePrincipal:
allOf:
- $ref: '#/components/schemas/AzureServicePrincipal'
container:
type: string
description: Name of the bucket
example: video-container
BitmovinResponse:
title: BitmovinResponse
required:
- id
properties:
id:
type: string
readOnly: true
description: Id of the resource
example: cb90b80c-8867-4e3b-8479-174aa2843f62
S3StorageClass:
title: S3StorageClass
type: string
enum:
- GLACIER_IR
- INTELLIGENT_TIERING
- ONEZONE_IA
- REDUCED_REDUNDANCY
- STANDARD
- STANDARD_IA
default: STANDARD
ResponseErrorData:
title: ResponseErrorData
required:
- code
- message
- developerMessage
properties:
code:
type: integer
readOnly: true
description: 'Contains an error code as defined in https://bitmovin.com/encoding-documentation/bitmovin-api/#/introduction/api-error-codes
'
example: 1005
message:
type: string
readOnly: true
description: General error message
developerMessage:
type: string
readOnly: true
description: More detailed message meant for developers
links:
type: array
readOnly: true
items:
$ref: '#/components/schemas/Link'
description: collection of links to webpages containing further information on the topic
details:
type: array
readOnly: true
items:
$ref: '#/components/schemas/Message'
description: collection of messages containing more detailed information on the cause of the error
ExternalIdMode:
title: ExternalIdMode
type: string
enum:
- CUSTOM
- GLOBAL
- GENERATED
default: CUSTOM
x-enum-elements:
- name: CUSTOM
description: ExternalId can be provided by using the the `externalId` property. This way is not recommend by AWS (https://aws.amazon.com/blogs/security/how-to-use-external-id-when-granting-access-to-your-aws-resources/).
- name: GLOBAL
description: The response will include an externalId that's unique and consistent for your organization
- name: GENERATED
description: The response will include a random externalId.
GcsServiceAccountOutput:
title: GcsServiceAccountOutput
required:
- bucketName
- serviceAccountCredentials
allOf:
- $ref: '#/components/schemas/Output'
- properties:
serviceAccountCredentials:
type: string
description: GCS projectId
example: "{\n \"type\": \"service_account\",\n \"project_id\": \"bitmovin\",\n \"private_key_id\": \"dfgsgfdsgsgargdf\",\n \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nOwdXyjRT9F4A==\\n-----END PRIVATE KEY-----\\n\",
# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bitmovin/refs/heads/main/openapi/bitmovin-outputs-api-openapi.yml