Management API (1.0.0)
Download OpenAPI specification:Download
Test the API with Swagger at https://api.cdn.vindral.com/api-docs
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
List channels
Get a list of channels that the provided api key has access to.
Authorizations:
query Parameters
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. |
string or string Default: "asc" How to sort the response records, either in ascending or descending order. |
Responses
Response samples
- 200
- default
{- "items": [
- {
- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string"
}
], - "total": 0
}
Create channel
Create a new channel. Requires a read-write scoped API key with sufficient permissions.
Authorizations:
Request Body schema: application/json
authRequired | boolean Default: false
|
name required | string <= 100 characters Name of the channel. |
notes | string <= 500 characters Default: "" Notes for the channel. |
organizationId required | string <uuid> Organization that the channel should be added to. |
transcodingProfileId | string <uuid> Transcoding profile to use for this channel. |
Responses
Request samples
- Payload
{- "authRequired": false,
- "name": "string",
- "notes": "",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "837bdf0e-3944-423b-9940-32e2c71da88b"
}
Response samples
- 200
- default
{- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string"
}
List channels by channel group
Get a list of channels belonging to a specific channel group.
Authorizations:
path Parameters
channelGroupId required | string The channel group id to get channels for. |
query Parameters
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. |
string or string Default: "asc" How to sort the response records, either in ascending or descending order. |
Responses
Response samples
- 200
- default
{- "items": [
- {
- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string"
}
], - "total": 0
}
List channels by transcoding profile
Get a list of channels with a specific transcoding profile.
Authorizations:
path Parameters
transcodingProfileId required | string <uuid> The transcoding profile id to get channels for. |
query Parameters
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. |
string or string Default: "asc" How to sort the response records, either in ascending or descending order. |
Responses
Response samples
- 200
- default
{- "items": [
- {
- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string"
}
], - "total": 0
}
Get channel
Get a channel by channel id.
Authorizations:
path Parameters
channelId required | string ID of the channel to get. |
Responses
Response samples
- 200
- default
{- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string"
}
Update channel
Update a channel by channel id. Requires a read-write scoped API key with sufficient permissions.
Authorizations:
path Parameters
channelId required | string ID of the channel to update. |
Request Body schema: application/json
authRequired | boolean
|
name | string <= 100 characters Name of the channel. |
notes | string <= 500 characters Notes for the channel. |
transcodingProfileId | string <uuid> Transcoding profile to use for this channel. |
Responses
Request samples
- Payload
{- "authRequired": true,
- "name": "string",
- "notes": "string",
- "transcodingProfileId": "837bdf0e-3944-423b-9940-32e2c71da88b"
}
Response samples
- 200
- default
{- "authRequired": true,
- "channelId": "string",
- "name": "string",
- "notes": "string",
- "streamKey": "string",
- "suspended": true,
- "isLive": true,
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "transcodingProfileId": "string"
}
Get channel group
Get one channel group by id.
Authorizations:
path Parameters
channelGroupId required | string ID of the channel group to get. |
Responses
Response samples
- 200
- default
{- "channelGroupId": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"
}
Update channel group
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.
Authorizations:
path Parameters
channelGroupId required | string ID of the channel group to update. |
Request Body schema: application/json
name | string <= 100 characters Name of the channel group. |
channelIds | Array of strings List of channel IDs that should be part of the group. |
Responses
Request samples
- Payload
{- "name": "string",
- "channelIds": [
- "string"
]
}
Response samples
- 200
- default
{- "channelGroupId": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"
}
List channel groups
Get a list of channel groups that the provided api key has access to.
Authorizations:
query Parameters
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. |
string or string Default: "asc" How to sort the response records, either in ascending or descending order. |
Responses
Response samples
- 200
- default
{- "items": [
- {
- "channelGroupId": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"
}
], - "total": 0
}
Create channel group
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.
Authorizations:
Request Body schema: application/json
name required | string <= 100 characters Name of the channel group. |
organizationId required | string <uuid> Organization that the channel group should be added to. |
channelIds | Array of strings List of channel IDs that should be part of the group. |
Responses
Request samples
- Payload
{- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "channelIds": [
- "string"
]
}
Response samples
- 200
- default
{- "channelGroupId": "string",
- "name": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"
}
Add channel to channel group
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.
Authorizations:
path Parameters
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. |
Request Body schema: application/json
Responses
Request samples
- Payload
{ }
Response samples
- 200
- default
null
Remove channel from channel group
Remove 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.
Authorizations:
path Parameters
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. |
Responses
Response samples
- 200
- default
null
List transcoding profiles
Get a list of transcoding profiles that the provided api key has access to.
Authorizations:
query Parameters
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. |
string or string Default: "asc" How to sort the response records, either in ascending or descending order. |
Responses
Response samples
- 200
- default
{- "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": 0,
- "channels": 1
}
]
}
]
}
}
], - "total": 0
}
Create transcoding profile
Create a new transcoding profile. Requires a read-write scoped API key with sufficient permissions.
Authorizations:
Request Body schema: application/json
name required | string |
notes required | string |
organizationId required | string <uuid> |
required | object |
Responses
Request samples
- Payload
{- "name": "string",
- "notes": "string",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "config": {
- "streams": [
- {
- "type": "audio",
- "renditions": [
- {
- "bitRate": 96000,
- "codec": "opus",
- "sampleRate": 0,
- "channels": 1
}
], - "passthrough": true,
- "matchSource": {
- "streamId": 0
}
}
]
}
}
Response samples
- 200
- default
{- "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": 0,
- "channels": 1
}
]
}
]
}
}
Get transcoding profile
Get a transcoding profile by id.
Authorizations:
path Parameters
transcodingProfileId required | string <uuid> ID of the transcoding profile to get. |
Responses
Response samples
- 200
- default
{- "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": 0,
- "channels": 1
}
]
}
]
}
}
Update transcoding profile
Update a transcoding profile by id. Requires a read-write scoped API key with sufficient permissions.
Authorizations:
path Parameters
transcodingProfileId required | string <uuid> |
Request Body schema: application/json
id | string <uuid> |
name | string |
notes | string |
object |
Responses
Request samples
- Payload
{- "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": 0,
- "channels": 1
}
]
}
]
}
}
Response samples
- 200
- default
{- "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": 0,
- "channels": 1
}
]
}
]
}
}
Delete transcoding profile
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.
Authorizations:
path Parameters
transcodingProfileId required | string <uuid> |
Responses
Response samples
- 200
- default
null
Get transcoding profile by channel
Get the transcoding profile configured for the specific channel.
Authorizations:
path Parameters
channelId required | string ID of the channel to get the transcoding profile for. |
Responses
Response samples
- 200
- default
{- "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": 0,
- "channels": 1
}
]
}
]
}
}
Get profile
Get profile info based on the api token used to make the request.
Authorizations:
Responses
Response samples
- 200
- default
{- "apiKey": {
- "name": "string",
- "scope": "read"
}, - "user": {
- "name": "string",
- "email": "string"
}, - "organizations": [
- {
- "name": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "role": "administrator"
}
]
}