Download OpenAPI specification:Download
Test the API with Swagger at https://api.cdn.vindral.com/api-docs
The /v1/packagers endpoints additionally require the packager control plane to be enabled for your organization.,
The API key used for authentication is tied to a user and shares the permissions of that user which is configured in the Vindral Portal. In addition to the user level permissions each API key has a scope of either read-only or read-write.
Read more about permissions here
Get a list of channels that the provided api key has access to.
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "name" Enum: "channelId" "name" "streamKey" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. |
{- "items": [
- {
- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string",
- "viewerCountryLimitation": {
- "mode": "allow",
- "limited": [
- "string"
]
}, - "restreaming": [
- {
- "enabled": true,
- "url": "string"
}
], - "recording": {
- "enabled": true,
- "retentionDays": 1
}
}
], - "total": 0
}Create a new channel. Requires a read-write scoped API key with sufficient permissions.
| name required | string [ 2 .. 50 ] characters Name of the channel. |
| authRequired | boolean Default: false
|
| notes | string <= 500 characters Default: "" Notes for the channel. |
| transcodingProfileId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Transcoding profile to use for this channel. |
object | |
object Recording configuration. | |
Array of objects Restreaming configuration. | |
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Organization that the channel should be added to. |
| channelId | string ChannelId (public id) for the channel, required as: |
| streamKey | string Stream key (private id) for the channel, required as: |
{- "name": "string",
- "authRequired": false,
- "notes": "",
- "transcodingProfileId": "837bdf0e-3944-423b-9940-32e2c71da88b",
- "viewerCountryLimitation": {
- "mode": "allow",
- "limited": [
- "string"
]
}, - "recording": {
- "enabled": true,
- "retentionDays": 1
}, - "restreaming": [
- {
- "enabled": true,
- "url": "string"
}
], - "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "channelId": "string",
- "streamKey": "string"
}{- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string",
- "viewerCountryLimitation": {
- "mode": "allow",
- "limited": [
- "string"
]
}, - "restreaming": [
- {
- "enabled": true,
- "url": "string"
}
], - "recording": {
- "enabled": true,
- "retentionDays": 1
}
}Get a list of channels belonging to a specific channel group.
| channelGroupId required | string The channel group id to get channels for. |
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "name" Enum: "channelId" "name" "streamKey" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. |
{- "items": [
- {
- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string",
- "viewerCountryLimitation": {
- "mode": "allow",
- "limited": [
- "string"
]
}, - "restreaming": [
- {
- "enabled": true,
- "url": "string"
}
], - "recording": {
- "enabled": true,
- "retentionDays": 1
}
}
], - "total": 0
}Get a list of channels with a specific transcoding profile.
| transcodingProfileId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... The transcoding profile id to get channels for. |
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "name" Enum: "channelId" "name" "streamKey" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. |
{- "items": [
- {
- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string",
- "viewerCountryLimitation": {
- "mode": "allow",
- "limited": [
- "string"
]
}, - "restreaming": [
- {
- "enabled": true,
- "url": "string"
}
], - "recording": {
- "enabled": true,
- "retentionDays": 1
}
}
], - "total": 0
}Get a channel by channel id.
| channelId required | string ID of the channel to get. |
{- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string",
- "viewerCountryLimitation": {
- "mode": "allow",
- "limited": [
- "string"
]
}, - "restreaming": [
- {
- "enabled": true,
- "url": "string"
}
], - "recording": {
- "enabled": true,
- "retentionDays": 1
}
}Update a channel by channel id. Requires a read-write scoped API key with sufficient permissions.
| channelId required | string ID of the channel to update. |
| name | string [ 2 .. 50 ] characters Name of the channel. |
| authRequired | boolean
|
| notes | string <= 500 characters Notes for the channel. |
| transcodingProfileId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Transcoding profile to use for this channel. |
object | |
object Recording configuration. | |
Array of objects Restreaming configuration. |
{- "name": "string",
- "authRequired": true,
- "notes": "string",
- "transcodingProfileId": "837bdf0e-3944-423b-9940-32e2c71da88b",
- "viewerCountryLimitation": {
- "mode": "allow",
- "limited": [
- "string"
]
}, - "recording": {
- "enabled": true,
- "retentionDays": 1
}, - "restreaming": [
- {
- "enabled": true,
- "url": "string"
}
]
}{- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string",
- "viewerCountryLimitation": {
- "mode": "allow",
- "limited": [
- "string"
]
}, - "restreaming": [
- {
- "enabled": true,
- "url": "string"
}
], - "recording": {
- "enabled": true,
- "retentionDays": 1
}
}Creates or updates a channel by channelId.
If the channelId exists, it will be updated - otherwise created.
channelId, streamKey or organizationId will not be changed on an existing channel, but are required to match.
Requires a read-write scoped API key with sufficient permissions.
| channelId required | string ChannelId (public id) for the channel, required as: |
| name required | string [ 2 .. 50 ] characters Name of the channel. |
| transcodingProfileId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Transcoding profile to use for this channel. |
| authRequired | boolean Default: false
|
| notes | string <= 500 characters Default: "" Notes for the channel. |
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Organization that the channel should be added to. Will not update on existing channel. |
required | object |
required | object or null Recording configuration, passing |
required | Array of objects Restreaming configuration. |
| streamKey required | string Stream key (private id) for the channel, required as: |
{- "name": "string",
- "transcodingProfileId": "837bdf0e-3944-423b-9940-32e2c71da88b",
- "authRequired": false,
- "notes": "",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "viewerCountryLimitation": {
- "mode": "allow",
- "limited": [
- "string"
]
}, - "recording": {
- "enabled": true,
- "retentionDays": 1
}, - "restreaming": [
- {
- "enabled": true,
- "url": "string"
}
], - "streamKey": "string"
}{- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string",
- "viewerCountryLimitation": {
- "mode": "allow",
- "limited": [
- "string"
]
}, - "restreaming": [
- {
- "enabled": true,
- "url": "string"
}
], - "recording": {
- "enabled": true,
- "retentionDays": 1
}
}Get one channel group by id.
| channelGroupId required | string ID of the channel group to get. |
{- "channelGroupId": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"
}Update a channel group with by channel group id. If the channel array is passed in the whole array will be updated with the new array. Requires a read-write scoped API key with sufficient permissions.
| channelGroupId required | string ID of the channel group to update. |
| name | string <= 50 characters Name of the channel group. |
| channelIds | Array of strings List of channel IDs that should be part of the group. |
{- "name": "string",
- "channelIds": [
- "string"
]
}{- "channelGroupId": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"
}Get a list of channel groups that the provided api key has access to.
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "name" Enum: "name" "channelGroupId" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. |
{- "items": [
- {
- "channelGroupId": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"
}
], - "total": 0
}Create a new channel group for a specified name and organization. Optionally add a list of channel ids that should belong to the new channel group. Requires a read-write scoped API key with sufficient permissions.
| name required | string <= 50 characters Name of the channel group. |
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Organization that the channel group should be added to. |
| channelIds | Array of strings List of channel IDs that should be part of the group. |
{- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "channelIds": [
- "string"
]
}{- "channelGroupId": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"
}Add one channel to a channel group. Specify a channelGroupId and a channelId you wish to add to the channel group. Requires a read-write scoped API key with sufficient permissions.
| channelGroupId required | string ID of the channel group to add channel to. |
| channelId required | string ID of the channel that should be added to the channel group. |
nullRemove one channel from a channel group. Specify a channelGroupId and a channelId you wish to remove from the channel group. Requires a read-write scoped API key with sufficient permissions.
| channelGroupId required | string ID of the channel group to remove channel from. |
| channelId required | string ID of the channel to remove from the channel group. |
nullGet a list of transcoding profiles that the provided api key has access to.
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "name" Value: "name" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. |
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "notes": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "config": {
- "streams": [
- {
- "id": "string",
- "passthrough": true,
- "matchSource": {
- "streamId": 0
}, - "type": "audio",
- "renditions": [
- {
- "id": "string",
- "bitRate": 8000,
- "codec": "string",
- "sampleRate": -9007199254740991,
- "channels": 1
}
]
}
]
}
}
], - "total": 0
}Create a new transcoding profile. Requires a read-write scoped API key with sufficient permissions.
| name required | string |
| notes required | string |
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... |
required | object |
{- "name": "string",
- "notes": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "config": {
- "streams": [
- {
- "type": "audio",
- "renditions": [
- {
- "bitRate": 96000,
- "codec": "opus",
- "sampleRate": -9007199254740991,
- "channels": 1
}
], - "passthrough": true,
- "matchSource": {
- "streamId": 0
}
}
]
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "notes": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "config": {
- "streams": [
- {
- "id": "string",
- "passthrough": true,
- "matchSource": {
- "streamId": 0
}, - "type": "audio",
- "renditions": [
- {
- "id": "string",
- "bitRate": 8000,
- "codec": "string",
- "sampleRate": -9007199254740991,
- "channels": 1
}
]
}
]
}
}Get a transcoding profile by id.
| transcodingProfileId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ID of the transcoding profile to get. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "notes": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "config": {
- "streams": [
- {
- "id": "string",
- "passthrough": true,
- "matchSource": {
- "streamId": 0
}, - "type": "audio",
- "renditions": [
- {
- "id": "string",
- "bitRate": 8000,
- "codec": "string",
- "sampleRate": -9007199254740991,
- "channels": 1
}
]
}
]
}
}Update a transcoding profile by id. Requires a read-write scoped API key with sufficient permissions.
| transcodingProfileId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... |
| id | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... |
| name | string |
| notes | string |
object |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "notes": "string",
- "config": {
- "streams": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "passthrough": true,
- "matchSource": {
- "streamId": 0
}, - "type": "audio",
- "renditions": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "bitRate": 96000,
- "codec": "opus",
- "sampleRate": -9007199254740991,
- "channels": 1
}
]
}
]
}
}{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "notes": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "config": {
- "streams": [
- {
- "id": "string",
- "passthrough": true,
- "matchSource": {
- "streamId": 0
}, - "type": "audio",
- "renditions": [
- {
- "id": "string",
- "bitRate": 8000,
- "codec": "string",
- "sampleRate": -9007199254740991,
- "channels": 1
}
]
}
]
}
}Delete a transcoding profile by id. Channels that referenced the deleted transcoding profile will be unusable until assigned a new transcoding profile. Requires a read-write scoped API key with sufficient permissions.
| transcodingProfileId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... |
nullGet the transcoding profile configured for the specific channel.
| channelId required | string ID of the channel to get the transcoding profile for. |
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "notes": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "config": {
- "streams": [
- {
- "id": "string",
- "passthrough": true,
- "matchSource": {
- "streamId": 0
}, - "type": "audio",
- "renditions": [
- {
- "id": "string",
- "bitRate": 8000,
- "codec": "string",
- "sampleRate": -9007199254740991,
- "channels": 1
}
]
}
]
}
}Get profile info based on the api token used to make the request.
{- "apiKey": {
- "name": "string",
- "scope": "read"
}, - "user": {
- "name": "string",
- "email": "string"
}, - "organizations": [
- {
- "name": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "role": "administrator"
}
]
}Get live status and viewers for all channels in an organization.
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ID of the organization to get analytics data for. |
{- "viewersTotal": 0,
- "ingressBps": 0,
- "egressBps": 0,
- "channels": [
- {
- "channelId": "string",
- "viewers": 0,
- "isLive": true
}
]
}Get current number of viewers for an organization.
Use the optional query parameters channelId, countryCode and continent to filter the results.
Use the optional query parameter groupBy to group the results by country or channel.
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ID of the organization to get analytics data for. |
| channelId | string Filters for the specific channel. |
| countryCode | string Country code (ISO 3166-1 alpha-2) to filter the data on a specific country. Special code Example: |
| continent | string Continent code to filter the data for a specific continent. Valid continent codes:
Example: |
| groupBy | string Enum: "channel" "country" Optionally group by channel or country. Default is no grouping. Valid values: |
{- "channels": [
- {
- "channelId": "string",
- "viewers": 0
}
]
}Get metrics.
Use the optional query parameters channelId, countryCode and continent to filter the results.
Metrics are calculated for the time range between from and to.
By default all available metrics are returned, to limit the response use the optional query parameter fields to specify which metrics to return.
Note that viewerBitrateAverage, totalIngressBytes, restartCount, hlsEgressBytes, clippingBytes, rtmpEgressBytes and restreamBytes disregards country and continent filters!
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ID of the organization to get analytics data for. |
| channelId | string Filters for the specific channel. |
| countryCode | string Country code (ISO 3166-1 alpha-2) to filter the data on a specific country. Special code Example: |
| continent | string Continent code to filter the data for a specific continent. Valid continent codes:
Example: |
| fields | string Limit the response by selecting specific fields as a comma separated list. Available fields are:
Example: |
| groupBy | string Enum: "channel" "country" Optionally group by channel or country. Default is no grouping. Valid values: |
| from required | string Date in ISO 8601 format. Example: |
| to required | string Date in ISO 8601 format. Example: |
{- "viewerSessions": 0,
- "viewerSeconds": 0,
- "viewerSessionsAvgDurationSeconds": 0,
- "viewerBitrateAverage": 0,
- "totalEgressBytes": 0,
- "totalIngressBytes": 0,
- "restartCount": 0,
- "hlsEgressBytes": 0,
- "clippingBytes": 0,
- "rtmpEgressBytes": 0,
- "restreamBytes": 0,
- "timeToFirstFrameMedianMs": 0,
- "roundTripTimeMedianMs": 0,
- "browserDistribution": [
- {
- "key": "string",
- "value": 100
}
], - "osDistribution": [
- {
- "key": "string",
- "value": 100
}
], - "deviceDistribution": [
- {
- "key": "string",
- "value": 100
}
]
}Get time series.
Use the optional query parameters channelId, countryCode and continent to filter the results.
Time series are calculated for the time range between from and to (rounded to the nearest minute).
By default all available time series are returned, to limit the response use the optional query parameter fields to specify which metrics to return.
Note that ingressBps, keyframeDelta, averagePacketArrivalTime and highestPacketArrivalTime disregards country and continent filters and is not returned when grouped by country!
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... ID of the organization to get analytics data for. |
| channelId | string Filters for the specific channel. |
| countryCode | string Country code (ISO 3166-1 alpha-2) to filter the data on a specific country. Special code Example: |
| continent | string Continent code to filter the data for a specific continent. Valid continent codes:
Example: |
| fields | string Limit the response by selecting specific fields as a comma separated list. Available fields are:
Example: |
| from required | string Date in ISO 8601 format. Example: |
| to required | string Date in ISO 8601 format. Example: |
{- "viewers": [
- {
- "timestamp": "string",
- "value": 0
}
], - "egressBps": [
- {
- "timestamp": "string",
- "value": 0
}
], - "ingressBps": [
- {
- "timestamp": "string",
- "value": 0
}
], - "keyframeDeltaVideo": [
- {
- "timestamp": "string",
- "value": 0
}
], - "averagePacketArrivalTimeVideo": [
- {
- "timestamp": "string",
- "value": 0
}
], - "highestPacketArrivalTimeVideo": [
- {
- "timestamp": "string",
- "value": 0
}
], - "keyframeDeltaAudio": [
- {
- "timestamp": "string",
- "value": 0
}
], - "averagePacketArrivalTimeAudio": [
- {
- "timestamp": "string",
- "value": 0
}
], - "highestPacketArrivalTimeAudio": [
- {
- "timestamp": "string",
- "value": 0
}
]
}Creates a custom clip of a recorded live stream.
This endpoint will return a m3u8 playlist which can be used in any HLS-compatible video player.
Please note that the response will be a 302 redirect, with the Location header set to the URL of your clip.
| channelId required | string ID of the channel |
| from required | string Date in ISO 8601 format. Example: |
| to required | string Date in ISO 8601 format. Example: |
nullCreates a custom clip of a recorded live stream.
This endpoint will return a mp4 which can be used in any compatible video player.
Please note that the response will be a 302 redirect, with the Location header set to the URL of your clip.
| channelId required | string ID of the channel |
| from required | string Date in ISO 8601 format. Example: |
| to required | string Date in ISO 8601 format. Example: |
nullGet a list of workspaces that the provided API key has access to.
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "name" Enum: "id" "name" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. | |
| organizationId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "packagerImage": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
], - "total": 0
}Create a new workspace. Requires a read-write scoped API key with sufficient permissions.
| name required | string [ 1 .. 256 ] characters Name of the workspace. |
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Organization to create the workspace in. |
{- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"
}{- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "packagerImage": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Get a workspace by id.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the workspace to get. |
{- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "packagerImage": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Update a workspace by id. Requires a read-write scoped API key with sufficient permissions.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the workspace to update. |
| name | string [ 1 .. 256 ] characters Name of the workspace. |
string or null Docker image used for the packager in this workspace. Set to null to clear. |
{- "name": "string",
- "packagerImage": "string"
}{- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "packagerImage": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Delete a workspace by id. Requires a read-write scoped API key with sufficient permissions.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the workspace to delete. |
nullGet a list of connect keys that the provided API key has access to.
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "name" Enum: "id" "name" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. | |
| workspaceId | string <nanoid> ^[a-zA-Z0-9_-]{21}$ |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "active": true,
- "workspaceId": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "lastUsedAt": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
], - "total": 0
}Create a new connect key. Requires a read-write scoped API key with sufficient permissions.
| name required | string [ 1 .. 256 ] characters Name of the connect key. |
| workspaceId required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ Workspace the connect key belongs to. |
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Organization to create the connect key in. |
{- "name": "string",
- "workspaceId": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"
}{- "id": "string",
- "name": "string",
- "active": true,
- "workspaceId": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "lastUsedAt": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "key": "string"
}Get a connect key by id.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the connect key to get. |
{- "id": "string",
- "name": "string",
- "active": true,
- "workspaceId": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "lastUsedAt": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Update a connect key by id. Requires a read-write scoped API key with sufficient permissions.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the connect key to update. |
| name | string [ 1 .. 256 ] characters Name of the connect key. |
| active | boolean Whether the connect key is active. |
{- "name": "string",
- "active": true
}{- "id": "string",
- "name": "string",
- "active": true,
- "workspaceId": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "lastUsedAt": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Delete a connect key by id. Requires a read-write scoped API key with sufficient permissions.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the connect key to delete. |
nullGet a list of transcoder instances that the provided API key has access to. A transcoder instance is a transcoder task running on a packager; they are read-only here.
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "createdAt" Enum: "createdAt" "taskId" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. | |
| packagerId | string |
{- "items": [
- {
- "id": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "packagerId": "string",
- "resourceId": "string",
- "transcoderConfigId": "string",
- "taskId": "string",
- "info": {
- "target_state": "started",
- "state": "starting",
- "tracks": {
- "all": [
- {
- "id": 0,
- "index": 0,
- "is_transcoded": true,
- "is_parameters_provisional": true,
- "pts_wrap_bits": 0,
- "start_time": 0,
- "metadata": {
- "property1": "string",
- "property2": "string"
}, - "variant_uid": "b56a39eb-c910-4268-a6be-10647915937c",
- "content_uid": "0db9ec60-88e1-47bb-b574-89ee0aba03d3",
- "type": "video",
- "parameters": {
- "codec": "string",
- "bit_rate": 0,
- "extradata": [
- 0
], - "hw_pixel_format": "string",
- "pixel_format": "string",
- "width": 0,
- "height": 0,
- "color_range": "string",
- "color_space": "string",
- "color_primaries": "string",
- "color_trc": "string",
- "chroma_location": "string",
- "field_order": "string",
- "separated_fields": true,
- "bits_per_coded_sample": 0,
- "bits_per_raw_sample": 0,
- "profile": 0,
- "level": 0,
- "sample_aspect_ratio": [
- 0
]
}, - "avg_frame_rate": [
- 0,
- 0
], - "gop_size": 0,
- "time_base": [
- 0,
- 0
]
}
]
}, - "config": {
- "source_ids": [
- "string"
], - "id": "string",
- "name": "string",
- "description": "string",
- "target_state": "started",
- "device": "cpu",
- "tracks": [
- {
- "type": "video",
- "id": "string",
- "name": "string",
- "track_selector": {
- "type": "track-kind",
- "kind": "unknown",
- "codec": "string",
- "criteria": "all",
- "language": "string",
- "is_required": true,
- "property1": null,
- "property2": null
}, - "passthrough": true,
- "renditions": [
- {
- "id": "string",
- "size": {
- "width": null,
- "height": null,
- "property1": null,
- "property2": null
}, - "codec": "string",
- "gop_size_ms": 9007199254740991,
- "bit_rate": 9007199254740991,
- "frame_skipping": "none",
- "property1": null,
- "property2": null
}
], - "property1": null,
- "property2": null
}
], - "annotations": {
- "property1": "string",
- "property2": "string"
}, - "property1": null,
- "property2": null
}, - "pipelines": [
- {
- "track_config_id": "string",
- "source_id": "string",
- "source_track_index": -9007199254740991,
- "info": {
- "type": "transcoded",
- "decoder": {
- "name": "string",
- "parameters": {
- "codec": "string",
- "bit_rate": 0,
- "extradata": [
- null
], - "sample_format": {
- "u8": null
}, - "channel_layout": "string",
- "sample_rate": 0,
- "block_align": 0,
- "frame_size": 0,
- "initial_padding": 0,
- "trailing_padding": 0,
- "seek_preroll": 0,
- "bits_per_coded_sample": 0,
- "bits_per_raw_sample": 0,
- "profile": 0,
- "level": 0,
- "type": "audio"
}, - "options": [
- [
- null,
- { }
]
], - "frame_rate": [
- 0,
- 0
]
}, - "encoders": [
- {
- "rendition_id": "string",
- "name": "string",
- "options": [
- [ ]
], - "parameters": {
- "codec": null,
- "bit_rate": null,
- "extradata": null,
- "sample_format": null,
- "channel_layout": null,
- "sample_rate": null,
- "block_align": null,
- "frame_size": null,
- "initial_padding": null,
- "trailing_padding": null,
- "seek_preroll": null,
- "bits_per_coded_sample": null,
- "bits_per_raw_sample": null,
- "profile": null,
- "level": null,
- "type": null
}, - "gop_size": 0,
- "track_index": -9007199254740991,
- "frame_rate": [
- null,
- null
]
}
]
}
}
], - "start_time": 0
}
}
], - "total": 0
}Get a transcoder instance by id.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the transcoder instance to get. |
{- "id": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "packagerId": "string",
- "resourceId": "string",
- "transcoderConfigId": "string",
- "taskId": "string",
- "info": {
- "target_state": "started",
- "state": "starting",
- "tracks": {
- "all": [
- {
- "id": 0,
- "index": 0,
- "is_transcoded": true,
- "is_parameters_provisional": true,
- "pts_wrap_bits": 0,
- "start_time": 0,
- "metadata": {
- "property1": "string",
- "property2": "string"
}, - "variant_uid": "b56a39eb-c910-4268-a6be-10647915937c",
- "content_uid": "0db9ec60-88e1-47bb-b574-89ee0aba03d3",
- "type": "video",
- "parameters": {
- "codec": "string",
- "bit_rate": 0,
- "extradata": [
- 0
], - "hw_pixel_format": "string",
- "pixel_format": "string",
- "width": 0,
- "height": 0,
- "color_range": "string",
- "color_space": "string",
- "color_primaries": "string",
- "color_trc": "string",
- "chroma_location": "string",
- "field_order": "string",
- "separated_fields": true,
- "bits_per_coded_sample": 0,
- "bits_per_raw_sample": 0,
- "profile": 0,
- "level": 0,
- "sample_aspect_ratio": [
- 0
]
}, - "avg_frame_rate": [
- 0,
- 0
], - "gop_size": 0,
- "time_base": [
- 0,
- 0
]
}
]
}, - "config": {
- "source_ids": [
- "string"
], - "id": "string",
- "name": "string",
- "description": "string",
- "target_state": "started",
- "device": "cpu",
- "tracks": [
- {
- "type": "video",
- "id": "string",
- "name": "string",
- "track_selector": {
- "type": "track-kind",
- "kind": "unknown",
- "codec": "string",
- "criteria": "all",
- "language": "string",
- "is_required": true,
- "property1": null,
- "property2": null
}, - "passthrough": true,
- "renditions": [
- {
- "id": "string",
- "size": {
- "width": 9007199254740991,
- "height": 9007199254740991,
- "property1": null,
- "property2": null
}, - "codec": "string",
- "gop_size_ms": 9007199254740991,
- "bit_rate": 9007199254740991,
- "frame_skipping": "none",
- "property1": null,
- "property2": null
}
], - "property1": null,
- "property2": null
}
], - "annotations": {
- "property1": "string",
- "property2": "string"
}, - "property1": null,
- "property2": null
}, - "pipelines": [
- {
- "track_config_id": "string",
- "source_id": "string",
- "source_track_index": -9007199254740991,
- "info": {
- "type": "transcoded",
- "decoder": {
- "name": "string",
- "parameters": {
- "codec": "string",
- "bit_rate": 0,
- "extradata": [
- 0
], - "sample_format": {
- "u8": "string"
}, - "channel_layout": "string",
- "sample_rate": 0,
- "block_align": 0,
- "frame_size": 0,
- "initial_padding": 0,
- "trailing_padding": 0,
- "seek_preroll": 0,
- "bits_per_coded_sample": 0,
- "bits_per_raw_sample": 0,
- "profile": 0,
- "level": 0,
- "type": "audio"
}, - "options": [
- [
- "string",
- {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
]
], - "frame_rate": [
- 0,
- 0
]
}, - "encoders": [
- {
- "rendition_id": "string",
- "name": "string",
- "options": [
- [
- "string",
- {
- "type": null,
- "value": null,
- "property1": null,
- "property2": null
}
]
], - "parameters": {
- "codec": "string",
- "bit_rate": 0,
- "extradata": [
- 0
], - "sample_format": {
- "u8": "string"
}, - "channel_layout": "string",
- "sample_rate": 0,
- "block_align": 0,
- "frame_size": 0,
- "initial_padding": 0,
- "trailing_padding": 0,
- "seek_preroll": 0,
- "bits_per_coded_sample": 0,
- "bits_per_raw_sample": 0,
- "profile": 0,
- "level": 0,
- "type": "audio"
}, - "gop_size": 0,
- "track_index": -9007199254740991,
- "frame_rate": [
- 0,
- 0
]
}
]
}
}
], - "start_time": 0
}
}Get a list of source instances that the provided API key has access to. A source instance is a source task running on a packager; they are read-only here.
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "createdAt" Enum: "createdAt" "taskId" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. | |
| packagerId | string |
{- "items": [
- {
- "id": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "packagerId": "string",
- "resourceId": "string",
- "sourceConfigId": "string",
- "taskId": "string",
- "info": {
- "target_state": "started",
- "state": "starting",
- "tracks": {
- "all": [
- {
- "id": 0,
- "index": 0,
- "is_transcoded": true,
- "is_parameters_provisional": true,
- "pts_wrap_bits": 0,
- "start_time": 0,
- "metadata": {
- "property1": "string",
- "property2": "string"
}, - "variant_uid": "b56a39eb-c910-4268-a6be-10647915937c",
- "content_uid": "0db9ec60-88e1-47bb-b574-89ee0aba03d3",
- "type": "video",
- "parameters": {
- "codec": "string",
- "bit_rate": 0,
- "extradata": [
- 0
], - "hw_pixel_format": "string",
- "pixel_format": "string",
- "width": 0,
- "height": 0,
- "color_range": "string",
- "color_space": "string",
- "color_primaries": "string",
- "color_trc": "string",
- "chroma_location": "string",
- "field_order": "string",
- "separated_fields": true,
- "bits_per_coded_sample": 0,
- "bits_per_raw_sample": 0,
- "profile": 0,
- "level": 0,
- "sample_aspect_ratio": [
- 0
]
}, - "avg_frame_rate": [
- 0,
- 0
], - "gop_size": 0,
- "time_base": [
- 0,
- 0
]
}
]
}, - "config": {
- "id": "string",
- "name": "string",
- "source_type": "string",
- "description": "string",
- "target_state": "started",
- "track_selectors": [
- {
- "type": "track-kind",
- "kind": "unknown",
- "codec": "string",
- "criteria": "all",
- "language": "string",
- "is_required": true,
- "property1": null,
- "property2": null
}
], - "demuxer_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "protocol_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "reconnect_delay_ms": 9007199254740991,
- "connect_timeout_ms": 9007199254740991,
- "interleave_buffer": {
- "max_buffer_size_ms": 9007199254740991,
- "property1": null,
- "property2": null
}, - "annotations": {
- "property1": "string",
- "property2": "string"
}, - "property1": null,
- "property2": null
}, - "demuxer_options": { },
- "protocol_options": { },
- "start_time": 0
}
}
], - "total": 0
}Get a source instance by id.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the source instance to get. |
{- "id": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "packagerId": "string",
- "resourceId": "string",
- "sourceConfigId": "string",
- "taskId": "string",
- "info": {
- "target_state": "started",
- "state": "starting",
- "tracks": {
- "all": [
- {
- "id": 0,
- "index": 0,
- "is_transcoded": true,
- "is_parameters_provisional": true,
- "pts_wrap_bits": 0,
- "start_time": 0,
- "metadata": {
- "property1": "string",
- "property2": "string"
}, - "variant_uid": "b56a39eb-c910-4268-a6be-10647915937c",
- "content_uid": "0db9ec60-88e1-47bb-b574-89ee0aba03d3",
- "type": "video",
- "parameters": {
- "codec": "string",
- "bit_rate": 0,
- "extradata": [
- 0
], - "hw_pixel_format": "string",
- "pixel_format": "string",
- "width": 0,
- "height": 0,
- "color_range": "string",
- "color_space": "string",
- "color_primaries": "string",
- "color_trc": "string",
- "chroma_location": "string",
- "field_order": "string",
- "separated_fields": true,
- "bits_per_coded_sample": 0,
- "bits_per_raw_sample": 0,
- "profile": 0,
- "level": 0,
- "sample_aspect_ratio": [
- 0
]
}, - "avg_frame_rate": [
- 0,
- 0
], - "gop_size": 0,
- "time_base": [
- 0,
- 0
]
}
]
}, - "config": {
- "id": "string",
- "name": "string",
- "source_type": "string",
- "description": "string",
- "target_state": "started",
- "track_selectors": [
- {
- "type": "track-kind",
- "kind": "unknown",
- "codec": "string",
- "criteria": "all",
- "language": "string",
- "is_required": true,
- "property1": null,
- "property2": null
}
], - "demuxer_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "protocol_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "reconnect_delay_ms": 9007199254740991,
- "connect_timeout_ms": 9007199254740991,
- "interleave_buffer": {
- "max_buffer_size_ms": 9007199254740991,
- "property1": null,
- "property2": null
}, - "annotations": {
- "property1": "string",
- "property2": "string"
}, - "property1": null,
- "property2": null
}, - "demuxer_options": { },
- "protocol_options": { },
- "start_time": 0
}
}Get a list of packager configs that the provided API key has access to.
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "name" Enum: "id" "name" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. | |
| workspaceId | string <nanoid> ^[a-zA-Z0-9_-]{21}$ |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "workspaceId": "string",
- "revision": 0,
- "createdAt": "string",
- "updatedAt": "string",
- "sources": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": null
}
], - "transcoders": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": null
}
], - "sinks": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": null
}
]
}
], - "total": 0
}Create a new packager config. Requires a read-write scoped API key with sufficient permissions.
| name required | string [ 1 .. 256 ] characters Name of the packager config. |
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Organization to create the packager config in. |
| workspaceId required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ Workspace the packager config belongs to. |
| description required | string <= 512 characters Description of the packager config. |
required | Array of objects Source task configurations. |
required | Array of objects Transcoder task configurations. |
required | Array of objects Sink task configurations. |
{- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "workspaceId": "string",
- "description": "string",
- "sources": [
- {
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": {
- "id": "string",
- "name": "string",
- "source_type": "string",
- "description": "string",
- "target_state": "started",
- "track_selectors": [
- {
- "type": "track-kind",
- "kind": "unknown",
- "codec": "string",
- "criteria": "all",
- "language": "string",
- "is_required": true,
- "property1": null,
- "property2": null
}
], - "demuxer_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "protocol_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "reconnect_delay_ms": 9007199254740991,
- "connect_timeout_ms": 9007199254740991,
- "interleave_buffer": {
- "max_buffer_size_ms": 9007199254740991,
- "property1": null,
- "property2": null
}, - "annotations": {
- "property1": "string",
- "property2": "string"
}, - "property1": null,
- "property2": null
}
}
], - "transcoders": [
- {
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": {
- "source_ids": [
- "string"
], - "id": "string",
- "name": "string",
- "description": "string",
- "target_state": "started",
- "device": "cpu",
- "tracks": [
- {
- "type": "video",
- "id": "string",
- "name": "string",
- "track_selector": {
- "type": "track-kind",
- "kind": "unknown",
- "codec": "string",
- "criteria": "all",
- "language": "string",
- "is_required": true,
- "property1": null,
- "property2": null
}, - "passthrough": true,
- "renditions": [
- {
- "id": "string",
- "size": {
- "width": 9007199254740991,
- "height": 9007199254740991,
- "property1": null,
- "property2": null
}, - "codec": "string",
- "gop_size_ms": 9007199254740991,
- "bit_rate": 9007199254740991,
- "frame_skipping": "none",
- "property1": null,
- "property2": null
}
], - "property1": null,
- "property2": null
}
], - "annotations": {
- "property1": "string",
- "property2": "string"
}, - "property1": null,
- "property2": null
}
}
], - "sinks": [
- {
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": {
- "source_ids": [
- "string"
], - "id": "string",
- "name": "string",
- "sink_type": "string",
- "description": "string",
- "target_state": "started",
- "track_selectors": [
- {
- "type": "track-kind",
- "kind": "unknown",
- "codec": "string",
- "criteria": "all",
- "language": "string",
- "is_required": true,
- "property1": null,
- "property2": null
}
], - "muxer_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "protocol_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "reconnect_delay_ms": 9007199254740991,
- "connect_timeout_ms": 9007199254740991,
- "wait_for_all_sources": true,
- "idle_timeout_ms": 9007199254740991,
- "annotations": {
- "property1": "string",
- "property2": "string"
}, - "property1": null,
- "property2": null
}
}
]
}{- "id": "string",
- "name": "string",
- "description": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "workspaceId": "string",
- "revision": 0,
- "createdAt": "string",
- "updatedAt": "string",
- "sources": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": null
}
], - "transcoders": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": null
}
], - "sinks": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": null
}
]
}Get a packager config by id.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the packager config to get. |
{- "id": "string",
- "name": "string",
- "description": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "workspaceId": "string",
- "revision": 0,
- "createdAt": "string",
- "updatedAt": "string",
- "sources": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": null
}
], - "transcoders": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": null
}
], - "sinks": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": null
}
]
}Fully replaces a packager config. The request body must include all sources, transcoders, and sinks you want to keep — any tasks omitted from the payload will be permanently deleted. Fetch the current config first, apply your changes, then submit the complete config. Requires a read-write scoped API key with sufficient permissions.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the packager config to update. |
| name required | string [ 1 .. 256 ] characters Name of the packager config. |
| description required | string <= 512 characters Description of the packager config. |
required | Array of objects Source task configurations. |
required | Array of objects Transcoder task configurations. |
required | Array of objects Sink task configurations. |
| changeReason | string <= 512 characters Reason for this update. |
{- "name": "string",
- "description": "string",
- "sources": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": {
- "id": "string",
- "name": "string",
- "source_type": "string",
- "description": "string",
- "target_state": "started",
- "track_selectors": [
- {
- "type": "track-kind",
- "kind": "unknown",
- "codec": "string",
- "criteria": "all",
- "language": "string",
- "is_required": true,
- "property1": null,
- "property2": null
}
], - "demuxer_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "protocol_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "reconnect_delay_ms": 9007199254740991,
- "connect_timeout_ms": 9007199254740991,
- "interleave_buffer": {
- "max_buffer_size_ms": 9007199254740991,
- "property1": null,
- "property2": null
}, - "annotations": {
- "property1": "string",
- "property2": "string"
}, - "property1": null,
- "property2": null
}
}
], - "transcoders": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": {
- "source_ids": [
- "string"
], - "id": "string",
- "name": "string",
- "description": "string",
- "target_state": "started",
- "device": "cpu",
- "tracks": [
- {
- "type": "video",
- "id": "string",
- "name": "string",
- "track_selector": {
- "type": "track-kind",
- "kind": "unknown",
- "codec": "string",
- "criteria": "all",
- "language": "string",
- "is_required": true,
- "property1": null,
- "property2": null
}, - "passthrough": true,
- "renditions": [
- {
- "id": "string",
- "size": {
- "width": 9007199254740991,
- "height": 9007199254740991,
- "property1": null,
- "property2": null
}, - "codec": "string",
- "gop_size_ms": 9007199254740991,
- "bit_rate": 9007199254740991,
- "frame_skipping": "none",
- "property1": null,
- "property2": null
}
], - "property1": null,
- "property2": null
}
], - "annotations": {
- "property1": "string",
- "property2": "string"
}, - "property1": null,
- "property2": null
}
}
], - "sinks": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": {
- "source_ids": [
- "string"
], - "id": "string",
- "name": "string",
- "sink_type": "string",
- "description": "string",
- "target_state": "started",
- "track_selectors": [
- {
- "type": "track-kind",
- "kind": "unknown",
- "codec": "string",
- "criteria": "all",
- "language": "string",
- "is_required": true,
- "property1": null,
- "property2": null
}
], - "muxer_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "protocol_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "reconnect_delay_ms": 9007199254740991,
- "connect_timeout_ms": 9007199254740991,
- "wait_for_all_sources": true,
- "idle_timeout_ms": 9007199254740991,
- "annotations": {
- "property1": "string",
- "property2": "string"
}, - "property1": null,
- "property2": null
}
}
], - "changeReason": "string"
}{- "id": "string",
- "name": "string",
- "description": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "workspaceId": "string",
- "revision": 0,
- "createdAt": "string",
- "updatedAt": "string",
- "sources": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": null
}
], - "transcoders": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": null
}
], - "sinks": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "previewEnabled": true,
- "config": null
}
]
}Delete a packager config by id. Requires a read-write scoped API key with sufficient permissions.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the packager config to delete. |
nullGet a list of sink instances that the provided API key has access to. A sink instance is a sink task running on a packager; they are read-only here.
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "createdAt" Enum: "createdAt" "taskId" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. | |
| packagerId | string |
{- "items": [
- {
- "id": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "packagerId": "string",
- "resourceId": "string",
- "sinkConfigId": "string",
- "taskId": "string",
- "info": {
- "target_state": "started",
- "state": "starting",
- "tracks": {
- "all": [
- {
- "id": 0,
- "index": 0,
- "is_transcoded": true,
- "is_parameters_provisional": true,
- "pts_wrap_bits": 0,
- "start_time": 0,
- "metadata": {
- "property1": "string",
- "property2": "string"
}, - "variant_uid": "b56a39eb-c910-4268-a6be-10647915937c",
- "content_uid": "0db9ec60-88e1-47bb-b574-89ee0aba03d3",
- "type": "video",
- "parameters": {
- "codec": "string",
- "bit_rate": 0,
- "extradata": [
- 0
], - "hw_pixel_format": "string",
- "pixel_format": "string",
- "width": 0,
- "height": 0,
- "color_range": "string",
- "color_space": "string",
- "color_primaries": "string",
- "color_trc": "string",
- "chroma_location": "string",
- "field_order": "string",
- "separated_fields": true,
- "bits_per_coded_sample": 0,
- "bits_per_raw_sample": 0,
- "profile": 0,
- "level": 0,
- "sample_aspect_ratio": [
- 0
]
}, - "avg_frame_rate": [
- 0,
- 0
], - "gop_size": 0,
- "time_base": [
- 0,
- 0
]
}
]
}, - "config": {
- "source_ids": [
- "string"
], - "id": "string",
- "name": "string",
- "sink_type": "string",
- "description": "string",
- "target_state": "started",
- "track_selectors": [
- {
- "type": "track-kind",
- "kind": "unknown",
- "codec": "string",
- "criteria": "all",
- "language": "string",
- "is_required": true,
- "property1": null,
- "property2": null
}
], - "muxer_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "protocol_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "reconnect_delay_ms": 9007199254740991,
- "connect_timeout_ms": 9007199254740991,
- "wait_for_all_sources": true,
- "idle_timeout_ms": 9007199254740991,
- "annotations": {
- "property1": "string",
- "property2": "string"
}, - "property1": null,
- "property2": null
}, - "muxer_options": { },
- "protocol_options": { },
- "mappings": [ ],
- "start_time": 0
}
}
], - "total": 0
}Get a sink instance by id.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the sink instance to get. |
{- "id": "string",
- "createdAt": "string",
- "updatedAt": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "packagerId": "string",
- "resourceId": "string",
- "sinkConfigId": "string",
- "taskId": "string",
- "info": {
- "target_state": "started",
- "state": "starting",
- "tracks": {
- "all": [
- {
- "id": 0,
- "index": 0,
- "is_transcoded": true,
- "is_parameters_provisional": true,
- "pts_wrap_bits": 0,
- "start_time": 0,
- "metadata": {
- "property1": "string",
- "property2": "string"
}, - "variant_uid": "b56a39eb-c910-4268-a6be-10647915937c",
- "content_uid": "0db9ec60-88e1-47bb-b574-89ee0aba03d3",
- "type": "video",
- "parameters": {
- "codec": "string",
- "bit_rate": 0,
- "extradata": [
- 0
], - "hw_pixel_format": "string",
- "pixel_format": "string",
- "width": 0,
- "height": 0,
- "color_range": "string",
- "color_space": "string",
- "color_primaries": "string",
- "color_trc": "string",
- "chroma_location": "string",
- "field_order": "string",
- "separated_fields": true,
- "bits_per_coded_sample": 0,
- "bits_per_raw_sample": 0,
- "profile": 0,
- "level": 0,
- "sample_aspect_ratio": [
- 0
]
}, - "avg_frame_rate": [
- 0,
- 0
], - "gop_size": 0,
- "time_base": [
- 0,
- 0
]
}
]
}, - "config": {
- "source_ids": [
- "string"
], - "id": "string",
- "name": "string",
- "sink_type": "string",
- "description": "string",
- "target_state": "started",
- "track_selectors": [
- {
- "type": "track-kind",
- "kind": "unknown",
- "codec": "string",
- "criteria": "all",
- "language": "string",
- "is_required": true,
- "property1": null,
- "property2": null
}
], - "muxer_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "protocol_options": {
- "property1": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}, - "property2": {
- "type": "string",
- "value": "string",
- "property1": null,
- "property2": null
}
}, - "reconnect_delay_ms": 9007199254740991,
- "connect_timeout_ms": 9007199254740991,
- "wait_for_all_sources": true,
- "idle_timeout_ms": 9007199254740991,
- "annotations": {
- "property1": "string",
- "property2": "string"
}, - "property1": null,
- "property2": null
}, - "muxer_options": { },
- "protocol_options": { },
- "mappings": [ ],
- "start_time": 0
}
}Get a list of deployment adapters that the provided API key has access to.
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "name" Enum: "id" "name" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. | |
| organizationId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "config": {
- "type": "manual",
- "image": "string",
- "url": "string",
- "dockerRunTemplate": "string"
}, - "createdAt": "string",
- "updatedAt": "string"
}
], - "total": 0
}Create a new deployment adapter. Requires a read-write scoped API key with sufficient permissions.
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Organization to create the deployment adapter in. |
| name required | string [ 1 .. 256 ] characters Name of the deployment adapter. |
required | object or object Configuration for the deployment adapter. |
{- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "name": "string",
- "config": {
- "type": "manual",
- "image": "string",
- "url": "string",
- "dockerRunTemplate": "string"
}
}{- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "config": {
- "type": "manual",
- "image": "string",
- "url": "string",
- "dockerRunTemplate": "string"
}, - "createdAt": "string",
- "updatedAt": "string"
}Get a deployment adapter by id.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the deployment adapter to get. |
{- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "config": {
- "type": "manual",
- "image": "string",
- "url": "string",
- "dockerRunTemplate": "string"
}, - "createdAt": "string",
- "updatedAt": "string"
}Update a deployment adapter by id. Requires a read-write scoped API key with sufficient permissions.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the deployment adapter |
| name | string [ 1 .. 256 ] characters Name of the deployment adapter. |
object or object Configuration for the deployment adapter. |
{- "name": "string",
- "config": {
- "type": "manual",
- "image": "string",
- "url": "string",
- "dockerRunTemplate": "string"
}
}{- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "config": {
- "type": "manual",
- "image": "string",
- "url": "string",
- "dockerRunTemplate": "string"
}, - "createdAt": "string",
- "updatedAt": "string"
}Delete a deployment adapter by id. Requires a read-write scoped API key with sufficient permissions.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the deployment adapter to delete. |
nullGet a list of packager deployments that the provided API key has access to.
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "name" Enum: "id" "name" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. | |
| organizationId | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "workspaceId": "string",
- "packagerConfigId": "string",
- "packagerConfigRevision": -9007199254740991,
- "deploymentAdapterId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
], - "total": 0
}Create a new packager deployment. The adapter must be manual; docker is rejected. Requires a read-write scoped API key with sufficient permissions.
| name required | string [ 2 .. 256 ] characters Name of the packager deployment. |
| organizationId required | string <uuid> ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA... Organization to create the packager deployment in. |
| packagerConfigId required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ Packager config the deployment should be based on. |
| deploymentAdapterId required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ Deployment adapter to use for this deployment. |
{- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "packagerConfigId": "string",
- "deploymentAdapterId": "string"
}{- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "workspaceId": "string",
- "packagerConfigId": "string",
- "packagerConfigRevision": -9007199254740991,
- "deploymentAdapterId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Get a packager deployment by id.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the packager deployment to get. |
{- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "workspaceId": "string",
- "packagerConfigId": "string",
- "packagerConfigRevision": -9007199254740991,
- "deploymentAdapterId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Delete a packager deployment by id. Requires a read-write scoped API key with sufficient permissions.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the packager deployment to delete. |
nullUpdates the deployment to use the latest revision of its associated packager config. Packager configs are versioned. Each new edit produces a new revision. Calling this endpoint advances the deployment to the newest revision, which causes the running packager to immediately reconfigure itself with the updated settings. Requires a read-write scoped API key with sufficient permissions.
| id required | string <nanoid> ^[a-zA-Z0-9_-]{21}$ ID of the packager deployment to update. |
{- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "workspaceId": "string",
- "packagerConfigId": "string",
- "packagerConfigRevision": -9007199254740991,
- "deploymentAdapterId": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Get a list of packagers that the provided API key has access to. They appear once they register with the control plane.
| skip | number Default: 0 Omits the specified number of returned records. This is useful, for example, to paginate responses. |
| take | number Default: 100 Specifies how many records to include in the response. |
| orderBy | string Default: "name" Enum: "id" "name" "hostname" "status" Specifies which column to sort the response by. |
"asc" (string) or "desc" (string) Default: "asc" How to sort the response records, either in ascending or descending order. |
{- "items": [
- {
- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "workspaceId": "string",
- "hostname": "string",
- "version": "string",
- "status": "string",
- "createdAt": "string",
- "updatedAt": "string"
}
], - "total": 0
}Get a packager by id.
| id required | string ID of the packager to get. |
{- "id": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "workspaceId": "string",
- "hostname": "string",
- "version": "string",
- "status": "string",
- "createdAt": "string",
- "updatedAt": "string"
}Asks a packager to stop itself. The packager shuts down cleanly and exits; whether it starts again is decided by however it is being run, for example a container restart policy. Requires a read-write scoped API key with sufficient permissions. Fails if the packager is not currently connected.
| id required | string non-empty |
| force | boolean Default: false Best-effort fast stop. The packager still shuts down cleanly, but does not wait for running tasks to confirm they stopped. |
{- "force": false
}{- "status": "Kill requested"
}