Skip to main content

Management API (1.0.0)

Download OpenAPI specification:Download

Test the API with Swagger at https://api.cdn.vindral.com/api-docs

API Keys and Permissions

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

Channels

List channels

Get a list of channels that the provided api key has access to.

Authorizations:
Authorization
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

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Create channel

Create a new channel. Requires a read-write scoped API key with sufficient permissions.

Authorizations:
Authorization
Request Body schema: application/json
authRequired
boolean
Default: false

true if the channel should be protected and require a valid token to watch it.

name
required
string <= 50 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

Content type
application/json
{
  • "authRequired": false,
  • "name": "string",
  • "notes": "",
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "transcodingProfileId": "837bdf0e-3944-423b-9940-32e2c71da88b"
}

Response samples

Content type
application/json
{
  • "authRequired": true,
  • "channelId": "string",
  • "name": "string",
  • "notes": "string",
  • "streamKey": "string",
  • "suspended": true,
  • "isLive": true,
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "transcodingProfileId": "string",
  • "viewerCountryLimitation": {
    }
}

List channels by channel group

Get a list of channels belonging to a specific channel group.

Authorizations:
Authorization
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

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

List channels by transcoding profile

Get a list of channels with a specific transcoding profile.

Authorizations:
Authorization
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

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Get channel

Get a channel by channel id.

Authorizations:
Authorization
path Parameters
channelId
required
string

ID of the channel to get.

Responses

Response samples

Content type
application/json
{
  • "authRequired": true,
  • "channelId": "string",
  • "name": "string",
  • "notes": "string",
  • "streamKey": "string",
  • "suspended": true,
  • "isLive": true,
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "transcodingProfileId": "string",
  • "viewerCountryLimitation": {
    }
}

Update channel

Update a channel by channel id. Requires a read-write scoped API key with sufficient permissions.

Authorizations:
Authorization
path Parameters
channelId
required
string

ID of the channel to update.

Request Body schema: application/json
authRequired
boolean

true if the channel should be protected and require a valid token to watch it.

name
string <= 50 characters

Name of the channel.

notes
string <= 500 characters

Notes for the channel.

transcodingProfileId
string <uuid>

Transcoding profile to use for this channel.

object

Responses

Request samples

Content type
application/json
{
  • "authRequired": true,
  • "name": "string",
  • "notes": "string",
  • "transcodingProfileId": "837bdf0e-3944-423b-9940-32e2c71da88b",
  • "viewerCountryLimitation": {
    }
}

Response samples

Content type
application/json
{
  • "authRequired": true,
  • "channelId": "string",
  • "name": "string",
  • "notes": "string",
  • "streamKey": "string",
  • "suspended": true,
  • "isLive": true,
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "transcodingProfileId": "string",
  • "viewerCountryLimitation": {
    }
}

Delete channel

Delete a channel by channel id. Requires a read-write scoped API key with sufficient permissions.

Authorizations:
Authorization
path Parameters
channelId
required
string

ID of the channel to delete.

Responses

Response samples

Content type
application/json
null

Channel Groups

Get channel group

Get one channel group by id.

Authorizations:
Authorization
path Parameters
channelGroupId
required
string

ID of the channel group to get.

Responses

Response samples

Content type
application/json
{
  • "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:
Authorization
path Parameters
channelGroupId
required
string

ID of the channel group to update.

Request Body schema: application/json
name
string <= 50 characters

Name of the channel group.

channelIds
Array of strings

List of channel IDs that should be part of the group.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "channelIds": [
    ]
}

Response samples

Content type
application/json
{
  • "channelGroupId": "string",
  • "name": "string",
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9"
}

Delete channel group

Delete channel group by id. Requires a read-write scoped API key with sufficient permissions.

Authorizations:
Authorization
path Parameters
channelGroupId
required
string

ID of the channel group to remove.

Responses

Response samples

Content type
application/json
null

List channel groups

Get a list of channel groups that the provided api key has access to.

Authorizations:
Authorization
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

Content type
application/json
{
  • "items": [
    ],
  • "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:
Authorization
Request Body schema: application/json
name
required
string <= 50 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

Content type
application/json
{
  • "name": "string",
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "channelIds": [
    ]
}

Response samples

Content type
application/json
{
  • "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:
Authorization
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
object

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
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:
Authorization
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

Content type
application/json
null

Transcoding Profiles

List transcoding profiles

Get a list of transcoding profiles that the provided api key has access to.

Authorizations:
Authorization
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

Content type
application/json
{
  • "items": [
    ],
  • "total": 0
}

Create transcoding profile

Create a new transcoding profile. Requires a read-write scoped API key with sufficient permissions.

Authorizations:
Authorization
Request Body schema: application/json
name
required
string
notes
required
string
organizationId
required
string <uuid>
required
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "notes": "string",
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "config": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "notes": "string",
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "config": {
    }
}

Get transcoding profile

Get a transcoding profile by id.

Authorizations:
Authorization
path Parameters
transcodingProfileId
required
string <uuid>

ID of the transcoding profile to get.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "notes": "string",
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "config": {
    }
}

Update transcoding profile

Update a transcoding profile by id. Requires a read-write scoped API key with sufficient permissions.

Authorizations:
Authorization
path Parameters
transcodingProfileId
required
string <uuid>
Request Body schema: application/json
id
string <uuid>
name
string
notes
string
object

Responses

Request samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "notes": "string",
  • "config": {
    }
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "notes": "string",
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "config": {
    }
}

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:
Authorization
path Parameters
transcodingProfileId
required
string <uuid>

Responses

Response samples

Content type
application/json
null

Get transcoding profile by channel

Get the transcoding profile configured for the specific channel.

Authorizations:
Authorization
path Parameters
channelId
required
string

ID of the channel to get the transcoding profile for.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "name": "string",
  • "notes": "string",
  • "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
  • "config": {
    }
}

Profile

Get profile

Get profile info based on the api token used to make the request.

Authorizations:
Authorization

Responses

Response samples

Content type
application/json
{
  • "apiKey": {
    },
  • "user": {
    },
  • "organizations": [
    ]
}

Ingest

Get ingest information

Get ingest information for a channel.

Authorizations:
Authorization
path Parameters
channelId
required
string

ID of the channel to get.

Responses

Response samples

Content type
application/json
{
  • "active": true,
  • "playUrl": {
    }
}