Video Channels
Create branded video channel pages, add and reorder the videos they list, publish them for sharing, and retrieve the shareable URL and embed code through the REST API.
A video channel is a branded, shareable page that lists an ordered set of your videos. Create the channel, add videos to it, set its branding, then publish it to get a shareable URL and paste-ready embed code.
Publishing
New channels start unpublished, so the page is not reachable until you send isPublished: true on PATCH /rest/v1/video-channels/{id}. Publishing renders the page from the channel's current videos and branding, and every later change to the videos or branding updates the published page. Sending isPublished: false takes the page offline.
Because a published channel page is public and unauthenticated, do not add videos whose titles, descriptions, or transcripts contain protected health information (PHI) or other confidential information.
Videos in a channel
Videos are attached through the channel's media sub-resource rather than a field on the channel, because one video can appear in several channels.
GET /rest/v1/video-channels/{id}/mediareturns the channel's full video list in display order.POST /rest/v1/video-channels/{id}/mediaadds a video. Omitpositionto append it to the end. Calling it again for a video already in the channel updates its position instead of adding a duplicate.DELETE /rest/v1/video-channels/{id}/media?mediaId=...removes one video from this channel. The video itself is not deleted and stays in any other channel it belongs to. This call is idempotent.POST /rest/v1/video-channels/{id}/reordersets the display order. It takes every video id currently in the channel, in display order (index 0 appears first).
Deleting a channel takes its page offline and leaves the videos it listed in your library.
Branding and embedding
PATCH /rest/v1/video-channels/{id} sets description, brandColor, footerText, and logoMediaId. logoMediaId must reference an image in your media library; send null to clear it.
GET /rest/v1/video-channels/{id} returns resolvedValues with the channel's video count, the shareable page URL (embedUrl), and the HTML embed snippet (embedCode).
GET/rest/v1/video-channels
Ours Privacy API key
In: header
Query Parameters
Maximum number of channels to return. Defaults to 25; values below 1 are clamped to 1 and values above 1000 are clamped to 1000.
Opaque pagination cursor from pagination.nextCursor in the previous response. Do not decode or modify it. Malformed cursors return 400 Bad Request.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/rest/v1/video-channels"{ "entities": [ { "id": "string", "accountId": "string", "name": "string", "description": "string", "brandColor": "string", "logoMediaId": "string", "footerText": "string", "isPublished": true, "createdAt": "string", "updatedAt": "string" } ], "pagination": { "nextCursor": "string", "hasMore": true }}POST/rest/v1/video-channels
Ours Privacy API key
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/rest/v1/video-channels" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "id": "string", "accountId": "string", "name": "string", "description": "string", "brandColor": "string", "logoMediaId": "string", "footerText": "string", "isPublished": true, "createdAt": "string", "updatedAt": "string"}GET/rest/v1/video-channels/{id}
Ours Privacy API key
In: header
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/rest/v1/video-channels/string"{ "id": "string", "accountId": "string", "name": "string", "description": "string", "brandColor": "string", "logoMediaId": "string", "footerText": "string", "isPublished": true, "createdAt": "string", "updatedAt": "string", "resolvedValues": { "mediaCount": 0, "embedUrl": "string", "embedCode": "string" }}PATCH/rest/v1/video-channels/{id}
Ours Privacy API key
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/rest/v1/video-channels/string" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "string", "accountId": "string", "name": "string", "description": "string", "brandColor": "string", "logoMediaId": "string", "footerText": "string", "isPublished": true, "createdAt": "string", "updatedAt": "string", "resolvedValues": { "mediaCount": 0, "embedUrl": "string", "embedCode": "string" }}DELETE/rest/v1/video-channels/{id}
Ours Privacy API key
In: header
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/rest/v1/video-channels/string"{ "id": "string", "deleted": true}GET/rest/v1/video-channels/{id}/media
Ours Privacy API key
In: header
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/rest/v1/video-channels/string/media"{ "entities": [ { "id": "string", "accountId": "string", "createdAt": "string", "updatedAt": "string", "type": "Video", "name": "string", "description": "string", "duration": 0, "width": 0, "height": 0, "hasVideoUpload": true, "sourceLanguageCode": "string", "captionTracks": [ { "languageCode": "string", "label": "string", "url": "string", "origin": "string", "status": "string", "isMachineTranslated": true, "humanEditedAt": "string" } ], "captionsUpdatedAt": "string", "captionsUpdatedByName": "string" } ]}POST/rest/v1/video-channels/{id}/media
Ours Privacy API key
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/rest/v1/video-channels/string/media" \ -H "Content-Type: application/json" \ -d '{ "mediaId": "5a8ffac5-2288-485d-b463-90c3cd9941ad" }'{ "id": "string", "accountId": "string", "channelId": "string", "mediaId": "string", "position": 0, "createdAt": "string", "updatedAt": "string"}DELETE/rest/v1/video-channels/{id}/media
Ours Privacy API key
In: header
Path Parameters
Query Parameters
Id of the video to remove from this channel.
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://example.com/rest/v1/video-channels/string/media?mediaId=497f6eca-6276-4993-bfeb-53cbbbba6f08"{ "id": "string", "accountId": "string", "name": "string", "description": "string", "brandColor": "string", "logoMediaId": "string", "footerText": "string", "isPublished": true, "createdAt": "string", "updatedAt": "string", "resolvedValues": { "mediaCount": 0, "embedUrl": "string", "embedCode": "string" }}POST/rest/v1/video-channels/{id}/reorder
Ours Privacy API key
In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/rest/v1/video-channels/string/reorder" \ -H "Content-Type: application/json" \ -d '{ "mediaIds": [ "4502986e-0fff-480a-ad24-52d33b36f104" ] }'{ "id": "string", "accountId": "string", "name": "string", "description": "string", "brandColor": "string", "logoMediaId": "string", "footerText": "string", "isPublished": true, "createdAt": "string", "updatedAt": "string", "resolvedValues": { "mediaCount": 0, "embedUrl": "string", "embedCode": "string" }}How is this guide?

