API reference
In this document you will find all API methods available for Cloud Video Kit.
Authorization
All Cloud Video Kit API methods require authentication with API key obtained from Cloud Video Kit console. Learn more from Authorization document.
API endpoints
Each tenant has it's own unique set of URLs used for Cloud Video Kit API.
Make sure to use your tenant's name in all used endpoints.
Example:
https://{tenant_name}.api.videokit.cloud/
You can find all endpoints for your tenant on API cheatsheet page in Cloud Video Kit console.
Postman collection
You can download Postman collecction of all API methods with the button below, and import it directly into Postman.

Make sure to update variables in the collection with your credentials, and you're good to go!
List of available methods
VOD
Live
Recorder
Streaming
Core
Transcoder
VOD
Create VOD Asset
Creates a VOD asset using input file(s). The input file(s) will be transcoded to the format defined by the preset.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/assets |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
transcodedSources | Yes | Array of VodSource | Array of source files to be transcoded VodSource |
preset | Yes | string | Transcoding preset to be used |
metadata | No | object | Additional metadata for the asset |
title | No | string | Title of the asset |
Response
Field | Type | Notes |
---|
id | string | ID of the created or processed asset |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/vod/v1/assets \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"transcodedSources": [
{
"fileId": "example_file_id",
"transcodingTracks": [
{
"trackSelector": {
"trackId": "video_track_1"
},
"type": "Video",
"language": "en",
"name": "Main Video Track"
}
],
"fileTypesFlag": "Video"
}
],
"preset": "example_preset",
"metadata": {
"key1": "value1",
"key2": "value2"
},
"title": "My VOD Asset"
}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc"
}
List VOD Assets
Retrieves a list of VOD assets.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/assets |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
statuses | No | array of strings | Filter by asset status (e.g., Available , Processing , etc.). |
limit | No | int32 | Number of items per page (default: 100). |
page | No | int32 | Page number to retrieve (default: 1). |
fileId | No | string <uuid> | Filter assets created with this file ID. |
query | No | string | Text search query. |
sort | No | string | Field to sort by (e.g., Metadata.Title , Id , CreateDate ). |
desc | No | boolean | Sort in descending order (default: false). |
ids | No | array of strings | Filter by specific asset IDs. |
createDateStart | No | string <date-time> | Filter assets created after this date. |
createDateEnd | No | string <date-time> | Filter assets created before this date. |
lastModificationDateStart | No | string <date-time> | Filter assets modified after this date. |
lastModificationDateEnd | No | string <date-time> | Filter assets modified before this date. |
durationFrom | No | int64 | Filter assets with duration greater than or equal to this value. |
durationTo | No | int64 | Filter assets with duration less than or equal to this value. |
presets | No | array of strings | Filter by transcoding presets. |
tags | No | array of strings | Filter by tags. |
attributes | No | array of strings | Filter by attributes in the format [key]=value . |
Response
Field | Type | Notes |
---|
items | array of VodAsset | List of VOD assets. |
pageCount | int32 | Total number of pages. |
pageSize | int32 | Number of items per page. |
totalCount | int32 | Total number of matching items. |
pageNumber | int32 | Current page number. |
hasMore | boolean | Indicates if more pages are available. |
REQUEST
curl -X GET \
'https://{tenant_name}.api.videokit.cloud/vod/v1/assets?limit=10&page=1' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"items": [
{
"id": "12345678-1234-1234-1234-123456789abc",
"preset": "mp4",
"title": "Sample VOD",
"status": "Available",
"createDate": "2025-06-01T12:00:00Z",
"lastModificationDate": "2025-06-02T12:00:00Z"
}
],
"pageCount": 1,
"pageSize": 10,
"totalCount": 1,
"pageNumber": 1,
"hasMore": false
}
Get VOD Asset
Retrieves details of a specific VOD asset.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/assets/{id} |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | VOD asset ID |
Response
Field | Type | Notes |
---|
id | string | VOD asset ID |
preset | string | Transcoding preset used |
transcodedJobId | string | ID of the transcoding job |
title | string | Asset title |
metadata | object | Additional metadata |
tenantId | string | Tenant ID |
createDate | string <date-time> | Creation date |
lastModificationDate | string <date-time> | Last modification date |
status | AssetStatus | Current status of the asset |
fileIds | object | Map of file IDs to FileTypesFlag |
sources | Array of VodSource | Source files used |
endpoints | Array of EndpointInfo | Available endpoints for the asset. EndpointInfo |
outputs | Array of EntityTranscodingOutput | Transcoding outputs. EntityTranscodingOutput |
errorMessage | string | Error message if any |
durationMilliseconds | int64 | Duration of the asset in milliseconds |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/vod/v1/assets/12345678-1234-1234-1234-123456789abc \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc",
"preset": "example_preset",
"title": "Sample VOD Asset",
"metadata": {
"key1": "value1",
"key2": "value2"
},
"tenantId": "98765432-9876-9876-9876-987654321fed",
"createDate": "2023-07-01T12:00:00Z",
"lastModificationDate": "2023-07-01T14:30:00Z",
"status": "Available",
"fileIds": {
"video_file_id": "Video"
},
"sources": [
{
"fileId": "video_file_id",
"fileTypesFlag": "Video"
}
],
"endpoints": [
{
"id": "endpoint_1",
"accessType": "Http",
"format": "HLS",
"url": "https://example.com/stream/asset.m3u8"
}
],
"durationMilliseconds": 360000
}
Update VOD Asset
Updates metadata, title, tags, or attributes of a specific VOD asset.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/assets/{id} |
HTTP method | PATCH |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string <uuid> | ID of the VOD asset to update. |
metadata | No | object | Key-value pairs to update asset metadata. |
title | No | string | New title for the asset. |
tags | No | array of strings | Tags to associate with the asset. |
attributes | No | array of strings | Attributes in the format [key]=value . |
Response
Field | Type | Notes |
---|
id | string <uuid> | ID of the updated asset. |
title | string | Updated title. |
metadata | object | Updated metadata. |
tags | array of strings | Updated tags. |
attributes | array of strings | Updated attributes. |
status | string | Current status of the asset. |
createDate | string <date-time> | Creation timestamp. |
lastModificationDate | string <date-time> | Last modification timestamp. |
REQUEST
curl -X PATCH \
https://{tenant_name}.api.videokit.cloud/vod/v1/assets/12345678-1234-1234-1234-123456789abc \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"title": "Updated Asset Title",
"metadata": {
"Genre": "Documentary",
"Language": "English"
},
"tags": ["education", "history"],
"attributes": ["category=learning"]
}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc",
"title": "Updated Asset Title",
"metadata": {
"Genre": "Documentary",
"Language": "English"
},
"tags": ["education", "history"],
"attributes": ["category=learning"],
"status": "Available",
"createDate": "2025-06-01T12:00:00Z",
"lastModificationDate": "2025-07-04T09:00:00Z"
}
Delete VOD Asset
Deletes a specific VOD asset.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/assets/{id} |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | VOD asset ID |
Response
A successful deletion returns an HTTP 200 status code with no body.
REQUEST
curl -X DELETE \
https://{tenant_name}.api.videokit.cloud/vod/v1/assets/12345678-1234-1234-1234-123456789abc \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
Delete Multiple VOD Assets
Deletes multiple VOD assets in a single request.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/assets/deletemany |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
body | Yes | Array of string | Array of VOD asset IDs to be deleted |
Response
Field | Type | Notes |
---|
(asset_id) | ServiceResponse | Object containing the deletion status for each asset |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/vod/v1/assets/deletemany \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '["12345678-1234-1234-1234-123456789abc", "87654321-4321-4321-4321-987654321fed"]'
RESPONSE
{
"12345678-1234-1234-1234-123456789abc": {
"status": {
"code": "success",
"status": 200
},
"success": true
},
"87654321-4321-4321-4321-987654321fed": {
"status": {
"code": "success",
"status": 200
},
"success": true
}
}
Add Output to VOD
Adds a new output (e.g., transcoding preset) to an existing VOD asset.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/assets/{id}/outputs |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string (uuid) | ID of the VOD asset to which the output will be added. |
preset | Yes | string | Transcoding preset name (e.g., mp4 ). |
id | No | string | Optional ID for the output. |
expirationDate | No | string (date-time) | Optional expiration date for the output. |
harvestedEndpointInfos | No | array of objects | Optional list of endpoint info objects. |
Response
Field | Type | Notes |
---|
outputId | string | ID of the newly created output. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/vod/v1/assets/{id}/outputs \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"preset": "mp4",
"id": "output-1080p",
"expirationDate": "2050-01-01T00:00:00Z"
}'
RESPONSE
{
"outputId": "output-1080p"
}
Remove Output from VOD
Deletes a specific output from a VOD asset.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/assets/{id}/outputs/{outputId} |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string (uuid) | ID of the VOD asset. |
outputId | Yes | string | ID of the output to delete. |
Response
A successful deletion returns an HTTP 200 status code with no body.
REQUEST
curl -X DELETE \
https://{tenant_name}.api.videokit.cloud/vod/v1/assets/{id}/outputs/{outputId} \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
Delete File
Deletes a specific file.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/files/{id} |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | File ID |
Response
Field | Type | Notes |
---|
deletedFileKey | string | Key of the deleted file |
REQUEST
curl -X DELETE \
https://{tenant_name}.api.videokit.cloud/vod/v1/files/file_12345 \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"deletedFileKey": "file_12345"
}
Get File
Retrieves details of a specific file.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/files/{id} |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | File ID |
Response
Field | Type | Notes |
---|
id | string | File ID |
tenantId | string | Tenant ID |
fileKey | string | Key of the file |
metadata | object | Additional metadata for the file |
status | UploadFileStatus | Current status of the file |
createDate | string <date-time> | Creation date |
lastModificationDate | string <date-time> | Last modification date |
vodAssets | Array of string | IDs of VOD assets using this file |
fileTypes | FileTypesFlag | Type of the file |
fileSize | int64 | Size of the file in bytes |
s3Uri | string | S3 URI of the file |
location | string | Location of the file |
bucket | string | S3 bucket name |
orginalFileName | string | Original file name |
name | string | Current name of the file |
friendlyName | string | Friendly name of the file |
tracks | Array of TranscodingTrack | Detected tracks in the file TranscodingTrack |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/vod/v1/files/file_12345 \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"id": "file_12345",
"tenantId": "98765432-9876-9876-9876-987654321fed",
"fileKey": "path/to/file.mp4",
"metadata": {
"key1": "value1",
"key2": "value2"
},
"status": "Completed",
"createDate": "2023-07-01T12:00:00Z",
"lastModificationDate": "2023-07-01T12:00:00Z",
"vodAssets": ["asset_id_1", "asset_id_2"],
"fileTypes": "Video",
"fileSize": 1048576,
"s3Uri": "s3://bucket-name/path/to/file.mp4",
"location": "path/to/file.mp4",
"bucket": "bucket-name",
"orginalFileName": "original_file.mp4",
"name": "My Video File",
"friendlyName": "My Awesome Video",
"tracks": [
{
"trackSelector": {
"trackId": "video_1"
},
"type": "Video",
"language": "en",
"name": "Main Video Track"
}
]
}
Update File
Updates metadata or properties of an uploaded file.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/files/{id} |
HTTP method | PATCH |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string (uuid) | ID of the file to update. |
metadata | No | object | Key-value pairs to update in file metadata. |
name | No | string | New internal name for the file. |
friendlyName | No | string | User-friendly name for the file. |
tags | No | array of strings | Tags to assign to the file. |
attributes | No | array of strings | Attributes in the format [key]=value . |
Response
Field | Type | Notes |
---|
id | string (uuid) | File identifier. |
fileKey | string | File storage key. |
status | string | Upload status (e.g., Completed ). |
fileSize | int64 | Size of the file in bytes. |
name | string | Internal name of the file. |
friendlyName | string | User-friendly name. |
tags | array of strings | Tags assigned to the file. |
attributes | array of strings | Custom attributes. |
createDate | string (date-time) | File creation timestamp. |
lastModificationDate | string (date-time) | Last modification timestamp. |
REQUEST
curl -X PATCH \
https://{tenant_name}.api.videokit.cloud/vod/v1/files/file_12345 \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"friendlyName": "Updated File Name",
"metadata": {
"Category": "Tutorial"
},
"tags": ["learning", "video"]
}'
RESPONSE
{
"id": "file_12345",
"fileKey": "tenant_id/sources/images/uploaded/file.jpg",
"status": "Completed",
"fileSize": 901353,
"name": "updated_file.jpg",
"friendlyName": "Updated File Name",
"tags": ["learning", "video"],
"attributes": ["category=tutorial"],
"createDate": "2023-06-14T15:49:36.797Z",
"lastModificationDate": "2023-06-14T15:49:36.797Z"
}
Delete Multiple Files
Deletes multiple files in a single request.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/files/deletemany |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
body | Yes | Array of string | Array of file IDs to be deleted |
Response
Field | Type | Notes |
---|
(file_id) | ServiceResponse | Object containing the deletion status for each file |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/vod/v1/files/deletemany \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '["file_12345", "file_67890"]'
RESPONSE
{
"file_12345": {
"status": {
"code": "success",
"status": 200
},
"success": true
},
"file_67890": {
"status": {
"code": "success",
"status": 200
},
"success": true
}
}
List Files
Retrieves a list of uploaded files.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/files |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
limit | No | int32 | Number of items per page (default: 100). |
page | No | int32 | Page number to retrieve (default: 1). |
fileType | No | string | Filter by file type (e.g., Video , Audio , Caption ). |
status | No | string | Filter by file status (e.g., Uploading , Completed , Error ). |
query | No | string | Text search query. |
sort | No | string | Field to sort by (e.g., CreateDate , FileSize , Metadata.FriendlyName ). |
desc | No | boolean | Sort descending (default: false). |
ids | No | array of strings | Filter by specific file IDs. |
createDateStart | No | string (date-time) | Filter by creation date (start). |
createDateEnd | No | string (date-time) | Filter by creation date (end). |
lastModificationDateStart | No | string (date-time) | Filter by last modification date (start). |
lastModificationDateEnd | No | string (date-time) | Filter by last modification date (end). |
statuses | No | array of strings | Filter by multiple statuses. |
tags | No | array of strings | Filter by tags. |
attributes | No | array of strings | Filter by attributes (e.g., [key]=value ). |
Response
Field | Type | Notes |
---|
items | array of UploadedFileResult | List of uploaded files. |
pageCount | int32 | Total number of pages. |
pageSize | int32 | Number of items per page. |
totalCount | int32 | Total number of items. |
pageNumber | int32 | Current page number. |
hasMore | boolean | Indicates if more pages exist. |
REQUEST
curl -X GET \
'https://{tenant_name}.api.videokit.cloud/vod/v1/files?limit=10&page=1' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"items": [
{
"id": "00000000-0000-0000-0000-000000000000",
"fileKey": "tenant_id/sources/images/uploaded/file.jpg",
"status": "Completed",
"fileSize": 901353,
"name": "file.jpg",
"friendlyName": "My File",
"tags": ["tag1", "tag2"],
"attributes": ["category=demo"],
"createDate": "2023-06-14T15:49:36.797Z",
"lastModificationDate": "2023-06-14T15:49:36.797Z"
}
],
"pageCount": 1,
"pageSize": 10,
"totalCount": 1,
"pageNumber": 1,
"hasMore": false
}
Get File Preview URL
Retrieves a preview URL for a specific file. The URL will expire after some time.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/files/{id}/preview |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | File ID |
Response
Field | Type | Notes |
---|
link | string | Preview URL for the file |
expirationDate | string <date-time> | Expiration date of the preview URL |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/vod/v1/files/file_12345/preview \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"link": "https://preview.example.com/file_12345?token=abc123",
"expirationDate": "2023-07-02T12:00:00Z"
}
Start File Upload
Initiates a file upload process.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/files/start |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
name | Yes | string | Name of the file (max 1024 characters) |
friendlyName | Yes | string | Friendly name of the file (max 1024 characters) |
metadata | No | object | Additional metadata for the file |
fileSize | Yes | int64 | Size of the file in bytes |
Response
Field | Type | Notes |
---|
fileId | string | ID of the file |
multipartUrls | Array of strings | URLs for multipart upload |
fileKey | string | Key of the file |
partSize | int64 | Size of each part for multipart upload |
lastPartSize | int64 | Size of the last part |
partsCount | int64 | Total number of parts |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/vod/v1/files/start \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"name": "file-to-upload.mp4",
"friendlyName": "My Awesome Video",
"metadata": {
"category": "entertainment"
},
"fileSize": 76251798
}'
RESPONSE
{
"fileId": "file_12345",
"multipartUrls": [
"https://upload.example.com/part1?token=abc123",
"https://upload.example.com/part2?token=def456"
],
"fileKey": "path/to/my_video.mp4",
"partSize": 50000000,
"lastPartSize": 26251798,
"partsCount": 2
}
Get Next Part Upload URL
Retrieves the URL for uploading the next part of a file.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/files/{id}/part/{partNumber} |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | File ID from files/start method |
partNumber | Yes | int32 | Number of the part |
Response
Field | Type | Notes |
---|
url | string | URL for uploading the part |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/vod/v1/files/file_12345/part/2 \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"url": "https://upload.example.com/part2?token=def456"
}
Finish File Upload
Finishes the file upload process. Call this method after uploading all parts.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/files/complete |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
fileId | Yes | string | File ID from the start upload process |
parts | Yes | Array of PartETag | Array of part numbers and their ETags |
parts.partNumber | Yes | integer | |
parts.eTag | Yes | string | Nullable |
Response
Field | Type | Notes |
---|
fileId | string | ID of the uploaded file |
fileKey | string | Key of the uploaded file |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/vod/v1/files/complete \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"fileId": "file_12345",
"parts": [
{
"partNumber": 1,
"eTag": "abc123"
},
{
"partNumber": 2,
"eTag": "def456"
}
]
}'
RESPONSE
{
"fileId": "file_12345",
"fileKey": "path/to/my_video.mp4"
}
Cancel File Upload
It cancels the upload of a file.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/files/{id}/cancel |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Uploading file ID. |
delete | No | boolean | If true, the uploading file will be immediately deleted. Otherwise, it will change to status=Error. |
X-Tenant-Id | No | string | Tenant ID is required only if one tenant is active on a given account. |
Response
No content is returned upon successful cancellation.
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/vod/v1/files/12345678-1234-1234-1234-123456789abc/cancel \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: <tenant_id>' \
-d '{
"delete": true
}'
Detects media tracks in a specific file.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/files/{id}/detect |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | File ID to detect media tracks for |
Response
Field | Type | Notes |
---|
tracks | Array of TranscodingTrack | Detected tracks in the file TranscodingTrack |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/vod/v1/files/file_12345/detect \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"tracks": [
{
"trackSelector": {
"trackId": "video_1"
},
"type": "Video",
"language": "en",
"name": "Main Video Track"
},
{
"trackSelector": {
"trackId": "audio_1"
},
"type": "Audio",
"language": "en",
"name": "English Audio"
},
{
"trackSelector": {
"trackId": "captions_1"
},
"type": "Captions",
"language": "en",
"name": "English Subtitles"
}
]
}
Get File Types
Retrieves a list of supported file types.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/filetypes |
HTTP method | GET |
Request
This endpoint doesn't require any parameters.
Response
Field | Type | Notes |
---|
fileTypes | object | Object with file types as keys and arrays of supported extensions as values |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/vod/v1/filetypes \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"fileTypes": {
"Audio": [".mp3", ".wav"],
"Caption": [".txt", ".srt"],
"Video": [".mp4", ".mxf", ".mov", ".ts"]
}
}
Get Languages
Retrieves a list of supported languages.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/vod/v1/languages |
HTTP method | GET |
Request
This endpoint doesn't require any parameters.
Response
Field | Type | Notes |
---|
languages | Array of strings | List of supported languages |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/vod/v1/languages \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"languages": [
"en",
"pl",
"de",
"fr",
"pt"
]
}
Live
List Channels
It returns list of channels.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/channels |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
limit | No | int32 | Page size of channels; default: 100 |
page | No | int32 | Number of requested page; default: 1 . |
query | No | string | Query by metadata or id. |
sort | No | string | Property to sort by. Examples: Metadata.Title, CreateDate, LastModificationDate |
desc | No | boolean | Set to true to sort descending; default: false |
ids | No | Array of strings | Channel ids |
createDateStart | No | string <date-time> | Filter by creation date (start) |
createDateEnd | No | string <date-time> | Filter by creation date (end) |
lastModificationDateStart | No | string <date-time> | Filter by last modification date (start) |
lastModificationDateEnd | No | string <date-time> | Filter by last modification date (end) |
includeAwsData | No | boolean | Include data from AWS; default: true |
Response
Field | Type | Notes |
---|
items | array of objects | Single page of listed ChannelResults. |
pageCount | int32 | Number of all pages. |
pageSize | int32 | Size of the page. |
totalCount | int32 | Number of all items. |
REQUEST
curl -X GET \
'https://{tenant_name}.api.videokit.cloud/live/v1/channels?limit=100&page=1&includeAwsData=true' \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"items": [
{
"id": "12345678-1234-1234-1234-123456789abc",
"endpoints": [
{
"id": "string",
"accessType": "Http",
"format": "SmoothStreaming",
"url": "string",
"preset": "string",
"protection": "None",
"protectionDetails": {
"keyIds": ["string"],
"contentId": "string"
},
"durationMilliseconds": 0,
"size": 0
}
],
"archiveEndpointIds": ["string"],
"transcodeEndpointId": "string",
"cdn": {
"enabled": true
},
"inputs": [
{
"id": "string",
"type": "string",
"destinations": [
{
"url": "string"
}
],
"details": {
"securityGroupIps": ["string"]
}
}
],
"encoding": {
"preset": "string",
"pipelines": 0
},
"status": "Processing",
"internalStatus": "string",
"metadata": {
"property1": "string",
"property2": "string"
},
"createDate": "2019-08-24T14:15:22Z",
"lastModificationDate": "2019-08-24T14:15:22Z",
"automationDisabled": true,
"name": "string"
}
],
"pageCount": 0,
"pageSize": 0,
"totalCount": 0,
"pageNumber": 0,
"hasMore": true
}
Create Channel
Creates a new channel.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/channels |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
name | Yes | string | Channel name |
redundancy | No | string | Redundancy mode: SingleInput or DoubleInput |
latency | No | string | Latency mode: NormalLatency or ReducedLatency |
input.type | Yes | string | Input type, e.g., RTMP_PUSH |
input.whitelistCidr | No | string | CIDR whitelist for input |
input.inputLoss.type | Yes | string | Input loss type: COLOR or SLATE |
input.inputLoss.color | No | string | Hex color for input loss screen |
endpoints[].type | No | string | Endpoint types, e.g., DashDrm , HlsDrm |
qualities[].resolution | No | string | Resolution: 360p , 480p , 720p , etc. |
qualities[].frameRate | No | int | Frame rate per resolution |
restreams[].protocol | No | string | Protocol, e.g., RTMP |
restreams[].id | No | string | Restream ID |
restreams[].destination | No | string | Destination name, e.g., Facebook |
restreams[].rtmpDestinations[].url | No | string | RTMP destination URL |
restreams[].rtmpDestinations[].streamKey | No | string | Stream key for RTMP destination |
activationMode | No | string | EventBased or Manual |
transmissionType | No | string | Video or Audio |
environment | No | string | MediaLive or MediaLiveAnywhere |
mediaPackageVersion | No | string | V1 or V2 |
Response
Field | Type | Notes |
---|
id | string | ID of the created channel |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/live/v1/channels \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"name": "chn-1",
"redundancy": "DoubleInput",
"latency": "NormalLatency",
"input": {
"type": "RTMP_PUSH",
"whitelistCidr": "0.0.0.0/0",
"inputLoss": {
"type": "COLOR",
"color": "000000"
}
},
"endpoints": [
{ "type": "DashDrm" },
{ "type": "HlsDrm" }
],
"qualities": [
{ "resolution": "360p", "frameRate": 25 },
{ "resolution": "480p", "frameRate": 30 },
{ "resolution": "720p", "frameRate": 50 },
{ "resolution": "1080p", "frameRate": 60 },
{ "resolution": "2160p", "frameRate": 60 }
],
"restreams": [
{
"protocol": "RTMP",
"id": "0f000000-ac11-0242-a160-08dd5be2bb79",
"destination": "Facebook",
"rtmpDestinations": [
{
"url": "rtmp://example.domain.com/live1",
"streamKey": "0f000000-ac11-0242-a1ac-08dd5be2bb79"
},
{
"url": "rtmp://example.domain.com/live2",
"streamKey": "0f000000-ac11-0242-a1af-08dd5be2bb79"
}
]
}
],
"activationMode": "EventBased",
"transmissionType": "Video",
"environment": "MediaLive",
"mediaPackageVersion": "V1"
}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc"
}
Get Channel Details
Gets channel details.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/channels/{id} |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Channel Id |
Response
Field | Type | Notes |
---|
id | string | Channel Id |
endpoints | array | Channel endpoints |
archiveEndpointIds | array | Endpoint names that will be used for recording |
transcodeEndpointId | string | Endpoint name used for transcoding of archived recording |
cdn | object | CDN channel info |
cdn.enabled | boolean | CDN channel info |
inputs | array | List of channel inputs (ingest points) |
inputs.id | string | nullable |
inputs.type | string | nullable |
inputs.destinations | array of ChannelInputEndpoint | nullable |
inputs.destinations.url | string | nullable |
inputs.details | ChannelInputDetails | |
inputs.details.securityGroupIps | array of string | nullable |
encoding | object | Channel encoding information |
encoding.preset | string | Channel encoding information |
encoding.pipelines | integer | Channel encoding information |
status | enum | Channel status. Possible values: Processing, Off, On, Starting, Stopping, Error |
internalStatus | string | Internal status of the channel |
metadata | object | Channel metadata |
createDate | string | Creation date |
lastModificationDate | string | Last modification date |
automationDisabled | boolean | Indicates if automation is disabled |
name | string | Channel name |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/live/v1/channels/12345678-1234-1234-1234-123456789abc \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc",
"endpoints": [
{
"id": "string",
"accessType": "Http",
"format": "SmoothStreaming",
"url": "string",
"preset": "string",
"protection": "None",
"protectionDetails": {
"keyIds": [
"string"
],
"contentId": "string"
},
"durationMilliseconds": 0,
"size": 0
}
],
"archiveEndpointIds": [
"string"
],
"transcodeEndpointId": "string",
"cdn": {
"enabled": true
},
"inputs": [
{
"id": "string",
"type": "string",
"destinations": [
{
"url": "string"
}
],
"details": {
"securityGroupIps": [
"string"
]
}
}
],
"encoding": {
"preset": "string",
"pipelines": 0
},
"status": "Processing",
"internalStatus": "string",
"metadata": {
"property1": "string",
"property2": "string"
},
"createDate": "2019-08-24T14:15:22Z",
"lastModificationDate": "2019-08-24T14:15:22Z",
"automationDisabled": true,
"name": "string"
}
Update Channel
Updates selected fields of an existing channel.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/channels/{id} |
HTTP method | PATCH |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | ID of the channel to update (in URL path) |
automationDisabled | No | boolean | Disable or enable automation |
name | No | string | New name for the channel |
input.type | No | string | Input type, e.g., RTMP_PUSH |
input.whitelistCidr | No | string | CIDR whitelist for input |
input.inputLoss.type | No | string | Input loss type: COLOR or SLATE |
input.inputLoss.color | No | string | Hex color for input loss screen |
endpoints[].type | No | string | Endpoint types, e.g., DashDrm , HlsDrm |
qualities[].resolution | No | string | Resolution: 360p , 480p , 720p , etc. |
qualities[].frameRate | No | int | Frame rate per resolution |
restreams | No | array | Add, edit, or remove RTMP services where you want to restream this channel. Max items: 10 Restream |
Response
Field | Type | Notes |
---|
id | string | ID of the updated channel |
REQUEST
curl -X PATCH \
https://{tenant_name}.api.videokit.cloud/live/v1/channels/12345678-1234-1234-1234-123456789abc \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"automationDisabled": true,
"name": "Updated Channel Name",
"input": {
"type": "RTMP_PUSH",
"whitelistCidr": "0.0.0.0/0",
"inputLoss": {
"type": "COLOR",
"color": "000000"
}
},
"endpoints": [
{ "type": "DashDrm" },
{ "type": "HlsDrm" }
],
"qualities": [
{ "resolution": "720p", "frameRate": 50 },
{ "resolution": "1080p", "frameRate": 60 }
],
"restreams": [
{
"protocol": "RTMP",
"id": "0f000000-ac11-0242-a160-08dd5be2bb79",
"destination": "Facebook",
"rtmpDestinations": [
{
"url": "rtmp://example.domain.com/live1",
"streamKey": "0f000000-ac11-0242-a1ac-08dd5be2bb79"
}
]
}
]
}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc"
}
Delete Channel
Deletes a channel.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/channels/{id} |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Channel identifier (path parameter) |
Response
Returns a ServiceResponse object indicating the success of the operation.
REQUEST
curl -X DELETE \
https://{tenant_name}.api.videokit.cloud/live/v1/channels/12345678-1234-1234-1234-123456789abc \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"status": {
"code": "success",
"message": "Channel deleted successfully"
},
"success": true
}
Start Channel
Starts a channel.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/channels/{id}/start |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Channel Id (path parameter) |
Response
This method doesn't return a specific response body. Check the HTTP status code for the operation result.
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/live/v1/channels/12345678-1234-1234-1234-123456789abc/start \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
Stop Channel
Stops a channel.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/channels/{id}/stop |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Channel Id (path parameter) |
Response
This method doesn't return a specific response body. Check the HTTP status code for the operation result.
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/live/v1/channels/12345678-1234-1234-1234-123456789abc/stop \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
Get Channel Status
Returns status info about a channel.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/channels/{id}/status |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Channel Id (path parameter) |
Response
Field | Type | Notes |
---|
id | string | Channel Id |
status | enum | Channel status. Possible values: Processing, Off, On, Starting, Stopping, Error |
internalStatus | string | Internal status of the channel |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/live/v1/channels/12345678-1234-1234-1234-123456789abc/status \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: String^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-4-[0-9a-f]{12}$'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc",
"status": "Processing",
"internalStatus": "string"
}
Get Channel Statistics
Returns channel statistics.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/channels/{id}/stats |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Channel Id (path parameter) |
start | No | string <date-time> | Start time of stats stream |
end | No | string <date-time> | End time of stats stream |
periodSeconds | No | int32 | Granularity. Multiple of 60, default: 60 |
aggregationFunction | No | string | Sum or Avg, Sum is default |
Response
Field | Type | Notes |
---|
metrics | object | Object containing StatsMetricResult objects |
[].id | string | nullable |
[].description | string | nullable |
[].unitName | string | nullable |
[].unitSymbol | string | nullable |
[].data | array of StatsPointResult | nullable |
[].data.time | string (date-time) | |
[].data.value | number (double) | |
REQUEST
curl -X GET \
'https://{tenant_name}.api.videokit.cloud/live/v1/channels/12345678-1234-1234-1234-123456789abc/stats?start=2023-07-25T00:00:00Z&end=2023-07-25T23:59:59Z&periodSeconds=3600&aggregationFunction=Sum' \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"metrics": {
"metric1": {
"id": "string",
"description": "string",
"unitName": "string",
"unitSymbol": "string",
"data": [
{
"time": "2023-07-25T00:00:00Z",
"value": 123.45
},
{
"time": "2023-07-25T01:00:00Z",
"value": 234.56
}
]
}
}
}
Get Channels Status
Returns status info about multiple channels.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/channelsstatus |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
ids | No | array of string | Comma separated list of channel ids |
Response
Field | Data Type | Notes |
---|
id | string | nullable, Channel Id |
status | enum | Channel status. Possible values: Processing, Off, On, Starting, Stopping, Error |
internalStatus | string | nullable, Internal status of the channel |
REQUEST
curl -X GET \
'https://{tenant_name}.api.videokit.cloud/live/v1/channelsstatus?ids=12345678-1234-1234-1234-123456789abc,87654321-4321-4321-4321-987654321cba' \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
[
{
"id": "12345678-1234-1234-1234-123456789abc",
"status": "Processing",
"internalStatus": "string"
},
{
"id": "87654321-4321-4321-4321-987654321cba",
"status": "On",
"internalStatus": "string"
}
]
Get Channel Configuration
It returns the AWS configuration for a specific channel.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/channels/{id}/configuration |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Channel ID. |
X-Tenant-Id | No | string | Tenant ID is required only if one tenant is active on a given account. |
Response
Field | Data type | Notes |
---|
id | string | Channel ID. |
configuration | object | AWS configuration details for the channel. |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/live/v1/channels/12345678-1234-1234-1234-123456789abc/configuration \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: <tenant_id>'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc",
"configuration": {
"awsRegion": "us-east-1",
"bucketName": "channel-bucket",
"accessKey": "AKIAXXXXXXXXXXXXXXXX",
"secretKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
}
Get Channel Limit
It returns the channel limit for the active tenant.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/channels/limit |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
X-Tenant-Id | No | string | Tenant ID is required only if one tenant is active on a given account. |
Response
Field | Data type | Notes |
---|
limit | int32 | Channel limit for the active tenant. |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/live/v1/channels/limit \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: <tenant_id>'
Create Event
Creates a new event on a specified channel.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/events |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
channelId | Yes | string | ID of the channel the event belongs to |
start | Yes | string <date-time> | Event start time in ISO 8601 format |
end | Yes | string <date-time> | Event end time in ISO 8601 format |
title | No | string | Optional title of the event |
ensureChannel | No | boolean | If true, the live channel will be automatically started for this event |
metadata.title | No | string | Title of the event (used in metadata) |
tags | No | array of strings | Optional tags |
attributes | No | array of strings | Optional attributes in format [key]=value |
Response
Field | Type | Notes |
---|
id | string | ID of the created event |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/live/v1/events \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"channelId": "cot-live-ch1",
"start": "2025-03-05T11:00:00+00:00",
"end": "2025-03-05T11:05:00+00:00",
"ensureChannel": true,
"title": "The Matrix",
"metadata": {
"Title": "The Matrix"
},
"tags": [],
"attributes": []
}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc"
}
List Events
Returns a list of all events, optionally filtered by channel, time range, metadata, and other parameters.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/events |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
channelId | No | string | Filter events by channel ID |
searchStart | No | string <date-time> | Start of search time range |
searchEnd | No | string <date-time> | End of search time range |
limit | No | int32 | Number of events to return; default: 100 |
page | No | int32 | Page number; default: 1 |
query | No | string | Query by metadata or ID |
sort | No | string | Sort by property (e.g., ChannelId , Start , Metadata.Title ) |
desc | No | boolean | Sort descending; default: false |
ids | No | array of UUIDs | Filter by specific event IDs |
createDateStart | No | string <date-time> | Filter by creation date (start) |
createDateEnd | No | string <date-time> | Filter by creation date (end) |
lastModificationDateStart | No | string <date-time> | Filter by last modification date (start) |
lastModificationDateEnd | No | string <date-time> | Filter by last modification date (end) |
channels | No | array of strings | Filter by multiple channel IDs |
statuses | No | array of strings | Filter by event statuses (e.g., Live , Scheduled , Finished ) |
tags | No | array of strings | Filter by tags |
attributes | No | array of strings | Filter by attributes in format [key]=value |
Response
Field | Type | Notes |
---|
items | array of objects | List of event objects |
items[].id | string | Unique identifier of the event |
items[].channelId | string | ID of the channel the event belongs to |
items[].start | string <date-time> | Start time of the event |
items[].end | string <date-time> | End time of the event |
items[].title | string | Title of the event |
items[].ensureChannel | boolean | Whether the channel should auto-start |
items[].metadata | object | Custom metadata key-value pairs |
items[].tags | array of strings | Tags associated with the event |
items[].attributes | array of strings | Attributes in [key]=value format |
items[].createDate | string <date-time> | Creation timestamp |
items[].lastModificationDate | string <date-time> | Last modification timestamp |
items[].status | string | Status of the event (e.g., Scheduled ) |
items[].catchup | object | Catchup endpoints (if available) |
pageCount | int32 | Number of all pages |
pageSize | int32 | Size of the page |
totalCount | int32 | Total number of matching events |
pageNumber | int32 | Current page number |
hasMore | boolean | Indicates if more pages are available |
REQUEST
curl -X GET \
'https://{tenant_name}.api.videokit.cloud/live/v1/events?limit=100&page=1&sort=Start&desc=false' \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"items": [
{
"id": "12345678-1234-1234-1234-123456789abc",
"channelId": "cot-live-ch1",
"start": "2025-03-05T11:00:00+00:00",
"end": "2025-03-05T11:05:00+00:00",
"title": "The Matrix",
"ensureChannel": true,
"metadata": {
"Title": "The Matrix"
},
"tags": [],
"attributes": [],
"createDate": "2025-03-01T10:00:00+00:00",
"lastModificationDate": "2025-03-01T10:00:00+00:00",
"status": "Scheduled"
}
],
"pageCount": 1,
"pageSize": 100,
"totalCount": 1,
"pageNumber": 1,
"hasMore": false
}
Get Event Details
Gets event details.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/events/{id} |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Event id (path parameter). Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
Response
Field | Type | Notes |
---|
id | string | Unique identifier of the event |
channelId | string | Identifier of the channel |
start | string <date-time> | Start time of the event |
end | string <date-time> | End time of the event |
ensureChannel | boolean | Flag to automatically turn on/off the channel for this event |
title | string | Asset title |
catchup | object | Catchup information |
catchup.endpoints | array | Array of endpoint objects |
metadata | object | Event metadata dictionary |
createDate | string <date-time> | Creation date of the event |
lastModificationDate | string <date-time> | Last modification date of the event |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/live/v1/events/event-12345678-1234-1234-1234-123456789abc \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"id": "event-12345678-1234-1234-1234-123456789abc",
"channelId": "cot-live-ch1",
"start": "2024-07-19T11:00:00+00:00",
"end": "2024-07-19T11:05:00+00:00",
"ensureChannel": true,
"title": "The Matrix",
"catchup": {
"endpoints": []
},
"metadata": {
"Title": "The Matrix"
},
"createDate": "2023-07-25T10:30:00Z",
"lastModificationDate": "2023-07-25T10:30:00Z"
}
Update Event
Updates selected fields of an existing event.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/events/{id} |
HTTP method | PATCH |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | ID of the event to update (in URL path) |
start | No | string <date-time> | New start time of the event |
end | No | string <date-time> | New end time of the event |
title | No | string | New title of the event |
ensureChannel | No | boolean | Whether to auto-start the channel |
metadata | No | object | Key-value pairs to update in metadata |
tags | No | array of strings | Tags to update |
attributes | No | array of strings | Attributes in [key]=value format |
Response
Field | Type | Notes |
---|
id | string | ID of the updated event |
channelId | string | ID of the associated channel |
start | string <date-time> | Start time of the event |
end | string <date-time> | End time of the event |
title | string | Title of the event |
ensureChannel | boolean | Whether the channel auto-starts |
metadata | object | Updated metadata |
tags | array of strings | Updated tags |
attributes | array of strings | Updated attributes |
createDate | string <date-time> | Creation timestamp |
lastModificationDate | string <date-time> | Last modification timestamp |
status | string | Status of the event (e.g., Scheduled , Live , Finished ) |
catchup | object | Catchup endpoints (if available) |
REQUEST
curl -X PATCH \
https://{tenant_name}.api.videokit.cloud/live/v1/events/event-12345678-1234-1234-1234-123456789abc \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"title": "Updated Matrix",
"start": "2025-03-05T11:00:00+00:00",
"end": "2025-03-05T11:10:00+00:00",
"metadata": {
"Title": "Updated Matrix"
},
"tags": ["updated"],
"attributes": ["genre=action"]
}'
RESPONSE
{
"id": "event-12345678-1234-1234-1234-123456789abc",
"channelId": "cot-live-ch1",
"start": "2025-03-05T11:00:00+00:00",
"end": "2025-03-05T11:10:00+00:00",
"title": "Updated Matrix",
"ensureChannel": true,
"metadata": {
"Title": "Updated Matrix"
},
"tags": ["updated"],
"attributes": ["genre=action"],
"createDate": "2025-03-01T10:00:00+00:00",
"lastModificationDate": "2025-03-01T10:05:00+00:00",
"status": "Scheduled",
"catchup": {
"endpoints": []
}
}
Delete Event
Deletes an event.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/events/{id} |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Event id (path parameter). Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
Response
A successful deletion returns an HTTP 200 status code with no body.
REQUEST
curl -X DELETE \
https://{tenant_name}.api.videokit.cloud/live/v1/events/event-12345678-1234-1234-1234-123456789abc \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
Delete Multiple Events
Deletes multiple events.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/live/v1/events/deletemany |
HTTP method | POST |
Request
The request body should contain an array of event ids to be deleted.
Response
Field | Type | Notes |
---|
{eventId} | object | Object with event id as key and ServiceResponse as value |
{eventId}.status | object | Status information |
{eventId}.status.code | string | Status code (e.g., "success") |
{eventId}.status.message | string | Status message |
{eventId}.success | boolean | Indicates if the operation was successful |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/live/v1/events/deletemany \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '["event-12345678-1234-1234-1234-123456789abc", "event-87654321-4321-4321-4321-987654321cba"]'
RESPONSE
{
"event-12345678-1234-1234-1234-123456789abc": {
"status": {
"code": "success",
"message": "Event deleted successfully"
},
"success": true
},
"event-87654321-4321-4321-4321-987654321cba": {
"status": {
"code": "success",
"message": "Event deleted successfully"
},
"success": true
}
}
Recorder
Create Recording
Creates a new recording.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
source | Yes | object | Recording source details. |
source.type | Yes | RecordingSourceType | RecordingSourceType |
source.liveChannelDetails | No | LiveSourceMessage | LiveSourceMessage |
source.liveChannelDetails.channelId | No | string | Channel ID. Example: "dazn-test-1" |
source.liveChannelDetails.start | No | string (date-time) | Event start time. Example: "2020-11-18T13:07:43.486Z" |
source.liveChannelDetails.end | No | string (date-time) | Event stop time. Example: "2020-11-18T14:07:43.486Z" |
catchup | No | object | Catchup settings object. |
catchup.enabled | No | boolean | If true, temporary stream address will be created (typically valid for 14 days) |
archive | No | object | Archive settings object. |
archive.enabled | No | boolean | If true, the recording will be archived to persistent storage |
public | No | boolean | Visibility of the recording. |
outputs | No | array | List of output configurations. |
outputs.preset | No | string | Type of output. Example: "mp4" |
outputs.id | No | string | Id of this output. Example: "output1" |
metadata | No | object | Custom metadata object. |
metadata.title | No | string | Asset title |
metadata.attributes | No | object | Attributes object |
metadata.attributes.key | No | string | Attribute key |
metadata.attributes.value | No | string | Attribute value |
Response
Field | Type | Notes |
---|
id | string | ID of the created recording. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"source": {
"type": "LiveChannel",
"liveChannelDetails": {
"channelId": "cot-live-ch1",
"start": "2025-02-13T08:00:00+00:00",
"end": "2025-02-13T08:05:00+00:00"
}
},
"catchup": {
"enabled": true
},
"archive": {
"enabled": true
},
"public": false,
"outputs": [
{
"id": "file1",
"preset": "mp4"
}
],
"metadata": {
"title": "The Matrix",
"attributes": [
{
"key": "genre",
"value": "sci-fi"
}
]
}
}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc"
}
List Recordings
Returns a list of recordings.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
limit | No | int32 | Number of recordings to return; default: 100 |
page | No | int32 | Number of requested page; default: 1 |
searchStart | No | string <date-time> | Start time for recording search |
searchEnd | No | string <date-time> | End time for recording search |
channelId | No | string | Channel ID of the recording |
query | No | string | Text query to search by metadata |
sort | No | string | Property to sort by. Examples: Source.LiveChannelDetails.Start , Metadata.Title , CreateDate , LastModificationDate |
desc | No | boolean | Set to true to sort descending; default: false |
ids | No | array of UUIDs | List of recording IDs |
createDateStart | No | string <date-time> | Filter by creation date (start) |
createDateEnd | No | string <date-time> | Filter by creation date (end) |
lastModificationDateStart | No | string <date-time> | Filter by last modification date (start) |
lastModificationDateEnd | No | string <date-time> | Filter by last modification date (end) |
statuses | No | array | Filter by asset statuses (e.g., Pending , Available , etc.) |
channels | No | array of strings | Filter by channel IDs |
Response
Field | Type | Notes |
---|
items | array of objects | List of recordings. RecordingResult |
pageCount | int32 | Number of all pages |
pageSize | int32 | Size of the page |
totalCount | int32 | Total number of items |
pageNumber | int32 | Current page number |
hasMore | boolean | Whether more pages are available |
REQUEST
curl -X GET \
'https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings?limit=1&page=1' \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"items": [
{
"id": "12345678-1234-1234-1234-123456789abc",
"title": "The Matrix",
"status": "Available",
"createDate": "2025-02-13T08:00:00Z",
"lastModificationDate": "2025-02-13T08:10:00Z",
"durationMilliseconds": 300000,
"metadata": {
"title": "The Matrix",
"genre": "sci-fi"
}
}
],
"pageCount": 1,
"pageSize": 1,
"totalCount": 1,
"pageNumber": 1,
"hasMore": false
}
Get Recording Details
Get details of a specific recording.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings/{id} |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Recording id |
X-Tenant-Id | No | string | TenantId required if one tenant is active |
Response
Field | Data type | Notes |
---|
id | string | Recording Id |
source | object | Recording source details |
catchup | object | Catchup details |
catchup.enabled | boolean | If true, temporary stream address will be created (typically valid for 14 days) |
catchup.expirationTime | string (date-time) | Time when this catchup becomes unavailable |
catchup.endpoints | array | Endpoints for this catchup |
archive | object | Archive details |
archive.enabled | boolean | If true, the recording will be archived to persistent storage |
archive.delaySeconds | integer | Delay between stop of the recording and creating persistent archive |
archive.public | boolean | Should the persistent archive be publicly available |
archive.expirationDate | string (date-time) | Expiration date for this archive |
archive.status | AssetStatus | AssetStatus |
archive.endpoints | array | Persistent endpoints created for this archive |
archive.archivisationCompletedDate | string (date-time) | Time of successful archivisation completed (used for metering) |
outputs | array | Additional outputs |
outputs.status | AssetStatus | AssetStatus |
outputs.preset | string | Preset name for this output. For example 'mp4' |
outputs.id | string | Id of this output, unique in scope of this recording |
outputs.expirationDate | string (date-time) | After this time, the output will be permanently deleted |
outputs.endpoints | array of EndpointInfo | Additional Endpoints generated for this recording |
expirationDate | string | Asset expiration date |
status | string | Recording status |
metadata | object | Asset metadata |
errorMessage | string | Error information |
createDate | string | Creation date |
lastModificationDate | string | Last modification date |
durationMilliseconds | int64 | Duration in milliseconds |
title | string | Asset title |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings/12345678-1234-1234-1234-123456789abc \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc",
"source": {
"type": "LiveChannel",
"liveChannelDetails": {
"channelId": "cot-live-ch1",
"start": "2024-07-19T12:00:00+00:00",
"end": "2024-07-19T12:05:00+00:00"
}
},
"catchup": {
"enabled": true,
"expirationTime": "2024-08-02T12:05:00+00:00",
"endpoints": [
{
"id": "catchup-endpoint-1",
"accessType": "Http",
"format": "HLS",
"url": "https://example.com/catchup/12345678-1234-1234-1234-123456789abc.m3u8"
}
]
},
"archive": {
"enabled": true,
"public": false,
"status": "Available",
"endpoints": [
{
"id": "archive-endpoint-1",
"accessType": "Http",
"format": "MP4",
"url": "https://example.com/archive/12345678-1234-1234-1234-123456789abc.mp4"
}
]
},
"outputs": [
{
"status": "Available",
"preset": "mp4",
"id": "file1",
"endpoints": [
{
"id": "output-endpoint-1",
"accessType": "Http",
"format": "MP4",
"url": "https://example.com/output/12345678-1234-1234-1234-123456789abc-file1.mp4"
}
]
}
],
"status": "Available",
"metadata": {
"title": "The Matrix"
},
"createDate": "2024-07-19T12:00:00+00:00",
"lastModificationDate": "2024-07-19T12:05:00+00:00",
"durationMilliseconds": 300000,
"title": "The Matrix"
}
Update Recording
Updates selected fields of a recording.
The source
can only be changed for recordings in Pending
status (before they are archived).
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings/{id} |
HTTP method | PATCH |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Recording ID (UUID format) |
source | No | object | Recording source details. |
source.type | Yes | RecordingSourceType | RecordingSourceType |
source.liveChannelDetails | No | LiveSourceMessage | LiveSourceMessage |
source.liveChannelDetails.channelId | No | string | Channel ID. Example: "dazn-test-1" |
source.liveChannelDetails.start | No | string (date-time) | Event start time. Example: "2020-11-18T13:07:43.486Z" |
source.liveChannelDetails.end | No | string (date-time) | Event stop time. Example: "2020-11-18T14:07:43.486Z" |
catchup | No | object | Catchup settings. |
catchup.enabled | No | boolean | catchup.enabled |
archive | No | object | Archive settings. |
archive.enabled | No | boolean | If true, the recording will be archived to persistent |
archive.public | No | boolean | If true, recording will be public after archivisation |
archive.delaySeconds | No | integer | Delay between stop of the recording and creating persistent archive. Max: 2592000, Min: 0 |
title | No | string | New title of the recording |
metadata | No | object | Metadata fields to update (key-value pairs) |
tags | No | array | List of tags |
attributes | No | array | List of attributes in [key]=value format |
Response
Field | Type | Notes |
---|
id | string | Recording ID |
title | string | Title of the recording |
status | string | Status of the recording |
createDate | string | Creation timestamp |
lastModificationDate | string | Last modification timestamp |
durationMilliseconds | int64 | Duration of the recording in milliseconds |
metadata | object | Updated metadata |
REQUEST
curl -X PATCH \
https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings/12345678-1234-1234-1234-123456789abc \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"title": "The Matrix Reloaded",
"metadata": {
"genre": "action"
},
"catchup": {
"enabled": false
},
"archive": {
"enabled": true,
"public": true,
"delaySeconds": 60
}
}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc",
"title": "The Matrix Reloaded",
"status": "Available",
"createDate": "2025-02-13T08:00:00Z",
"lastModificationDate": "2025-02-13T08:15:00Z",
"durationMilliseconds": 300000,
"metadata": {
"genre": "action"
}
}
Delete Recording
Delete a specific recording.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings/{id} |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Recording id |
X-Tenant-Id | No | string | TenantId required if one tenant is active |
Response
A successful deletion returns an HTTP 200 status code with no body.
REQUEST
curl -X DELETE \
https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings/12345678-1234-1234-1234-123456789abc \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
Delete Multiple Recordings
Delete multiple recordings at once.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings/deletemany |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
X-Tenant-Id | No | string | TenantId required if one tenant is active |
Request Body: An array of recording IDs to delete.
Response
Field | Data type | Notes |
---|
<id> | object | Object with deletion status for each ID |
<id>.status | ServiceStatus | ServiceStatus |
<id>.status.code | string | Application level error code. Example: "common_1" |
<id>.status.status | integer | HTTP status |
<id>.status.message | string | Developer friendly message. Example: "Asset ID not found" |
<id>.success | boolean | Set if the request was processed successfully |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings/deletemany \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '["12345678-1234-1234-1234-123456789abc", "87654321-4321-4321-4321-cba987654321"]'
RESPONSE
{
"12345678-1234-1234-1234-123456789abc": {
"status": {
"code": "success",
"status": 200,
"message": "Recording deleted successfully"
},
"success": true
},
"87654321-4321-4321-4321-cba987654321": {
"status": {
"code": "success",
"status": 200,
"message": "Recording deleted successfully"
},
"success": true
}
}
Remove Output from Recording
Remove one output from a recording.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings/{recordingId}/outputs/{id} |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
recordingId | Yes | string | Recording id |
id | Yes | string | Output Id |
X-Tenant-Id | No | string | TenantId required if one tenant is active |
Response
A successful deletion returns an HTTP 200 status code with no body.
REQUEST
curl -X DELETE \
https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings/12345678-1234-1234-1234-123456789abc/outputs/file1 \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
Add Output to Recording
Add output to an existing recording (this will trigger transcoding once the recording is recorded).
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings/{id}/outputs |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Recording id |
X-Tenant-Id | No | string | TenantId required if one tenant is active |
Request Body:
Field | Required | Type | Notes |
---|
preset | Yes | string | Transcoding preset |
id | No | string | Id of this output |
expirationDate | No | string | Optional date of removal |
Response
Field | Data type | Notes |
---|
items | array of objects | Array of created output IDs |
pageCount | int32 | Number of pages |
pageSize | int32 | Size of the page |
totalCount | int32 | Total number of items |
pageNumber | int32 | Current page number |
hasMore | boolean | If there are more pages |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/cvr/v1/recordings/12345678-1234-1234-1234-123456789abc/outputs \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"preset": "mp4",
"id": "new-output-1",
"expirationDate": "2050-01-01T00:00:00Z"
}'
RESPONSE
{
"items": [
{
"id": "new-output-1"
}
],
"pageCount": 1,
"pageSize": 1,
"totalCount": 1,
"pageNumber": 1,
"hasMore": false
}
Streaming
Get Ads Count Analytics
Get ads count analytics.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/ads/queries/count |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
start | No | string <date-time> | Start of timeframe which is queried in UTC format. |
end | No | string <date-time> | End of timeframe which is queried in UTC format. |
filters | No | array of objects | Analytics Query Filters. |
orderBy | No | array of objects | Analytics order by filters. |
interval | No | string | Time interval. |
groupBy | No | array of strings | Array of strings. |
limit | No | int64 | Maximum number of rows returned (max. 200). |
offset | No | int64 | Offset of data. |
dimension | Yes | string | Analytic dimension. |
Response
Field | Data type | Notes |
---|
rowCount | int64 | Number of rows returned. |
rows | array of arrays | Array of objects. |
columnLabels | array of objects | Column labels. |
columnLabels.key | string | Key. |
columnLabels.label | string | Label. |
contextDescription | array of objects | Context description. |
contextDescription.label | string | Label name. |
contextDescription.description | string | Description. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/ads/queries/count \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"start": "2024-09-15T08:10:37.560Z",
"end": "2024-09-22T08:10:37.560Z",
"dimension": "PAGE_LOAD_TIME"
}'
RESPONSE
{
"rowCount": 141,
"rows": [
[
1691580900000,
4095,
1
]
],
"columnLabels": [
{
"key": "PLAYED",
"label": "Played (ms)"
}
],
"contextDescription": [
{
"label": "Sessions",
"description": "Number of Sessions"
}
]
}
Get Ads Sum Analytics
Get ads sum analytics.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/ads/queries/sum |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
start | No | string <date-time> | Start of timeframe which is queried in UTC format. |
end | No | string <date-time> | End of timeframe which is queried in UTC format. |
filters | No | array of objects | Analytics Query Filters. |
orderBy | No | array of objects | Analytics order by filters. |
interval | No | string | Time interval. |
groupBy | No | array of strings | Array of strings. |
limit | No | int64 | Maximum number of rows returned (max. 200). |
offset | No | int64 | Offset of data. |
dimension | Yes | string | Analytic dimension. |
Response
Field | Data type | Notes |
---|
rowCount | int64 | Number of rows returned. |
rows | array of arrays | Array of objects. |
columnLabels | array of objects | Column labels. |
columnLabels.key | string | Key. |
columnLabels.label | string | Label. |
contextDescription | array of objects | Context description. |
contextDescription.label | string | Label name. |
contextDescription.description | string | Description. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/ads/queries/sum \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"start": "2024-09-15T08:10:37.560Z",
"end": "2024-09-22T08:10:37.560Z",
"dimension": "PAGE_LOAD_TIME"
}'
RESPONSE
{
"rowCount": 141,
"rows": [
[
1691580900000,
4095,
1
]
],
"columnLabels": [
{
"key": "PLAYED",
"label": "Played (ms)"
}
],
"contextDescription": [
{
"label": "Sessions",
"description": "Number of Sessions"
}
]
}
Get Ads Avg Analytics
Get ads avg analytics.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/ads/queries/avg |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
start | No | string <date-time> | Start of timeframe which is queried in UTC format. |
end | No | string <date-time> | End of timeframe which is queried in UTC format. |
filters | No | array of objects | Analytics Query Filters. |
orderBy | No | array of objects | Analytics order by filters. |
interval | No | string | Time interval. |
groupBy | No | array of strings | Array of strings. |
limit | No | int64 | Maximum number of rows returned (max. 200). |
offset | No | int64 | Offset of data. |
dimension | Yes | string | Analytic dimension. |
Response
Field | Data type | Notes |
---|
rowCount | int64 | Number of rows returned. |
rows | array of arrays | Array of objects. |
columnLabels | array of objects | Column labels. |
columnLabels.key | string | Key. |
columnLabels.label | string | Label. |
contextDescription | array of objects | Context description. |
contextDescription.label | string | Label name. |
contextDescription.description | string | Description. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/ads/queries/avg \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"start": "2024-09-15T08:10:37.560Z",
"end": "2024-09-22T08:10:37.560Z",
"dimension": "PAGE_LOAD_TIME"
}'
RESPONSE
{
"rowCount": 141,
"rows": [
[
1691580900000,
4095,
1
]
],
"columnLabels": [
{
"key": "PLAYED",
"label": "Played (ms)"
}
],
"contextDescription": [
{
"label": "Sessions",
"description": "Number of Sessions"
}
]
}
List Assets
List all assets.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
limit | No | int32 | Number of recordings to return. Default: 100 |
page | No | int32 | Number of requested page. Default: 1 |
query | No | string | Text query to search by metadata. |
sort | No | string | Property name to sort by. Metadata.Title , CreateDate , LastModificationDate . |
desc | No | boolean | Set to true to order descending. Default: false |
ids | No | array of strings | List of asset IDs. |
channelId | No | string | Channel identifier. |
isDrm | No | boolean | Filter DRM assets. |
source | No | string | [Obsolete] Asset source module: Live , Recorder , Vod . |
status | No | string | Asset status. |
type | No | string | Asset type: LiveEvent , LiveChannel , Recording , Vod . |
durationFrom | No | int64 | Asset duration from (in milliseconds). |
durationTo | No | int64 | Asset duration to (in milliseconds). |
searchStart | No | string <date-time> | Search date start range. |
searchEnd | No | string <date-time> | Search date end range. |
createDateStart | No | string <date-time> | Create date start range. |
createDateEnd | No | string <date-time> | Create date end range. |
lastModificationDateStart | No | string <date-time> | Last modification date start range. |
lastModificationDateEnd | No | string <date-time> | Last modification date end range. |
channels | No | array of strings | Filter by multiple channel IDs. |
statuses | No | array of strings | Filter by multiple statuses. |
types | No | array of strings | Filter by multiple asset types. |
tags | No | array of strings | Filter by tags. |
attributes | No | array of strings | Filter by attributes in [key]=value format. |
Response
Field | Type | Notes |
---|
items | array of objects | One page of listed AssetResult objects. |
pageCount | int32 | Number of all pages. |
pageSize | int32 | Size of the page. |
totalCount | int32 | Number of all items. |
pageNumber | int32 | Number of this page. |
hasMore | boolean | Indicates if more pages are available. |
REQUEST
curl -X GET \
'https://{tenant_name}.api.videokit.cloud/streaming/v1/assets?limit=100&page=1' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"items": [
{
"id": "12345678-1234-1234-1234-123456789abc",
"status": "Processing",
"metadata": {
"Title": "The Matrix"
},
"outputs": [
{
"status": "Processing",
"preset": "mp4",
"id": "output-1",
"expirationDate": "2023-06-14T15:49:36.797+02:00",
"endpoints": [
{
"id": "endpoint-1",
"accessType": "Http",
"format": "MP4",
"url": "https://example.com/video.mp4",
"protection": "None"
}
]
}
],
"createDate": "2023-06-14T15:49:36.797+02:00",
"lastModificationDate": "2023-06-14T15:49:36.797+02:00",
"durationMilliseconds": 3600000,
"source": "Vod",
"type": "Vod",
"channelId": "cot-channel-ch1",
"isDrm": true,
"preset": "dash_hls_1080p",
"title": "The Matrix",
"description": "A computer hacker learns from mysterious rebels about the true nature of his reality and his role in the war against its controllers.",
"tags": ["action"],
"images": {
"poster": {
"Id": "poster-guid",
"Name": "matrix_poster.jpg",
"Url": "https://example.com/images/matrix_poster.jpg"
}
},
"chapters": [
{
"title": "Opening Scene",
"start": 0,
"end": 180
}
],
"settings": {
"tokenRequired": {
"asset": "Enabled",
"tenant": "Enabled"
},
"devToolsAccess": {
"asset": "Disabled",
"tenant": "Disabled"
},
"cap": {
"asset": "Enabled",
"tenant": "Enabled"
},
"analytics": {
"asset": "Enabled",
"tenant": "Enabled"
},
"codeObfuscation": {
"asset": "Enabled",
"tenant": "Enabled"
}
}
}
],
"pageCount": 1,
"pageSize": 100,
"totalCount": 1,
"pageNumber": 1,
"hasMore": false
}
Get Asset Details
Get asset details.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId} |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Asset id. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
Response
Field | Data type | Notes |
---|
id | string | Player asset Id. |
status | string | Asset status. |
metadata | object | Asset metadata. |
outputs | array of objects | Additional outputs, generated after archivisation. |
outputs.status | AssetStatus | Output status. |
outputs.preset | string | Preset name for this output. |
outputs.id | string | Id of this output. |
outputs.expirationDate | string (date-time) | Expiration date of the output. |
outputs.endpoints | array of EndpointInfo | Additional Endpoints generated for this recording. EndpointInfo |
createDate | string <date-time> | Create date. |
lastModificationDate | string <date-time> | Last modification date. |
durationMilliseconds | int64 | Duration time in milliseconds. |
source | string | Asset source. |
type | string | Asset type. |
channelId | string | Channel identifier. |
start | string <date-time> | Start time of the event. |
end | string <date-time> | End time of the event. |
isDrm | boolean | Is DRM content. |
preset | string | Preset info. |
tokenRequiredPolicy | object | Token required policy. |
title | string | Asset title. |
description | string | Asset description. |
tags | array of objects | Asset tags. |
tags.id | string | Tag ID. |
tags.name | string | Tag name. |
images | object | Asset images. |
images.id | string | Image ID. |
images.url | string | Image URL. |
images.name | string | Image name. |
chapters | array of objects | Asset chapters. |
chapters.id | string | Chapter ID. |
chapters.startSecond | integer | Start time in seconds. |
chapters.endSecond | integer | End time in seconds. |
chapters.durationSeconds | integer | Duration in seconds (read-only). |
chapters.title | string | Chapter title. |
settings | object | Asset settings. |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc.",
"status": "Processing",
"metadata": {
"Title": "The Matrix"
},
"outputs": [
{
"status": "Processing",
"preset": "mp4",
"id": "output-1",
"expirationDate": "2023-06-14T15:49:36.7973126+02:00",
"endpoints": [
{
"id": "endpoint-1",
"accessType": "Http",
"format": "MP4",
"url": "https://example.com/video.mp4",
"protection": "None"
}
]
}
],
"createDate": "2023-06-14T15:49:36.7973126+02:00",
"lastModificationDate": "2023-06-14T15:49:36.7973126+02:00",
"durationMilliseconds": 3600000,
"source": "Vod",
"type": "Vod",
"channelId": "cot-channel-ch1",
"isDrm": true,
"preset": "dash_hls_1080p",
"tokenRequiredPolicy": {
"asset": "inherit",
"tenant": "true"
},
"title": "The Matrix",
"description": "A computer hacker learns from mysterious rebels about the true nature of his reality and his role in the war against its controllers.",
"tags": [
{
"name": "action",
"id": "00000000-0000-0000-0000-000000000001"
}
],
"images": {
"poster": {
"Id": "poster-guid",
"Name": "matrix_poster.jpg",
"Url": "https://example.com/images/matrix_poster.jpg"
}
},
"chapters": [
{
"title": "Opening Scene",
"start": 0,
"end": 180
}
],
"settings": {
"tokenRequired": {
"asset": "Enabled",
"tenant": "Enabled"
},
"devToolsAccess": {
"asset": "Disabled",
"tenant": "Disabled"
},
"cap": {
"asset": "Enabled",
"tenant": "Enabled"
},
"analytics": {
"asset": "Enabled",
"tenant": "Enabled"
},
"codeObfuscation": {
"asset": "Enabled",
"tenant": "Enabled"
}
}
}
Update Asset
Updates selected fields of an existing asset.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId} |
HTTP method | PATCH |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Asset identifier (path parameter). |
tokenRequiredPolicy | No | string | Token policy for the asset. Values: Inherit , True , False . |
images.{key}.id | No | string (UUID) | Image ID. |
images.{key}.name | No | string | Image file name. |
images.{key}.url | No | string | Public URL to the image. |
chapters[].title | No | string | Chapter title. |
chapters[].startSecond | No | integer (int64) | Start time of the chapter in seconds. |
chapters[].endSecond | No | integer (int64) | End time of the chapter in seconds. Optional. |
description | No | string | Description of the asset. |
tags[] | No | array[string] | List of tags to assign to the asset. |
attributes[] | No | array[string] | List of attributes in [key]=value format. |
Response
Field | Type | Notes |
---|
id | string | Asset ID |
status | string | Asset status |
title | string | Asset title |
description | string | Asset description |
metadata | object | Key-value metadata |
tags[] | array[string] | Tags assigned to the asset |
attributes[] | array[string] | Attributes assigned to the asset |
images.{key}.id | string | Image ID |
images.{key}.name | string | Image name |
images.{key}.url | string | Image URL |
chapters[].title | string | Chapter title |
chapters[].startSecond | integer | Chapter start time |
chapters[].endSecond | integer | Chapter end time |
createDate | string <date-time> | Creation timestamp |
lastModificationDate | string <date-time> | Last modification timestamp |
durationMilliseconds | integer | Duration in milliseconds |
source | string | Asset source: Live , Recorder , Vod , etc. |
type | string | Asset type: LiveEvent , Recording , Vod , etc. |
channelId | string | Channel identifier |
start | string <date-time> | Start time of the event |
end | string <date-time> | End time of the event |
isDrm | boolean | Whether the asset is DRM protected |
preset | string | Preset name |
tokenRequiredPolicy.asset | string | Token policy for asset |
tokenRequiredPolicy.tenant | string | Token policy for tenant |
settings.tokenRequired.asset | string | Token required setting for asset |
settings.tokenRequired.tenant | string | Token required setting for tenant |
settings.devToolsAccess.asset | string | Dev tools access setting for asset |
settings.devToolsAccess.tenant | string | Dev tools access setting for tenant |
settings.cap.asset | string | CAP setting for asset |
settings.cap.tenant | string | CAP setting for tenant |
settings.analytics.asset | string | Analytics setting for asset |
settings.analytics.tenant | string | Analytics setting for tenant |
settings.codeObfuscation.asset | string | Code obfuscation setting for asset |
settings.codeObfuscation.tenant | string | Code obfuscation setting for tenant |
isWatermarkProtected | boolean | Whether watermark protection is enabled |
REQUEST
curl -X PATCH \
'https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}' \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"title": "Updated Title",
"description": "Updated description.",
"tokenRequiredPolicy": "True",
"tags": ["updated", "featured"],
"attributes": ["genre=drama"],
"images": {
"poster": {
"id": "poster-guid",
"name": "updated_poster.jpg",
"url": "https://example.com/images/updated_poster.jpg"
}
},
"chapters": [
{
"title": "Intro",
"startSecond": 0,
"endSecond": 60
}
]
}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc",
"status": "Available",
"title": "Updated Title",
"description": "Updated description.",
"tags": ["updated", "featured"],
"attributes": ["genre=drama"],
"images": {
"poster": {
"id": "poster-guid",
"name": "updated_poster.jpg",
"url": "https://example.com/images/updated_poster.jpg"
}
},
"chapters": [
{
"title": "Intro",
"startSecond": 0,
"endSecond": 60
}
],
"createDate": "2023-06-14T15:49:36.797Z",
"lastModificationDate": "2025-07-04T09:00:00.000Z"
}
Update Asset Settings
Update asset settings.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/settings |
HTTP method | PATCH |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Asset id. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
tokenRequired | No | string | Token required status. |
devToolsAccess | No | string | Dev tools access status. |
cap | No | string | CAP status. |
analytics | No | string | Analytics status. |
codeObfuscation | No | string | Code obfuscation status. |
Response
Field | Data type | Notes |
---|
id | string | Player asset Id. |
status | string | Asset status. |
metadata | object | Asset metadata. |
outputs | array of objects | Additional outputs, generated after archivisation. |
createDate | string <date-time> | Create date. |
lastModificationDate | string <date-time> | Last modification date. |
durationMilliseconds | int64 | Duration time in milliseconds. |
source | string | Asset source. |
type | string | Asset type. |
channelId | string | Channel identifier. |
start | string <date-time> | Start time of the event. |
end | string <date-time> | End time of the event. |
isDrm | boolean | Is DRM content. |
preset | string | Preset info. |
tokenRequiredPolicy | object | Token required policy. |
title | string | Asset title. |
description | string | Asset description. |
tags | array of objects | Asset tags. |
images | object | Asset images. |
chapters | array of objects | Asset chapters. |
settings | object | Asset settings. |
REQUEST
curl -X PATCH \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/settings \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"tokenRequired": "Enabled",
"devToolsAccess": "Disabled",
"cap": "Enabled",
"analytics": "Enabled",
"codeObfuscation": "Enabled"
}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc.",
"status": "Processing",
"metadata": {
"Title": "The Matrix"
},
"createDate": "2023-06-14T15:49:36.7973126+02:00",
"lastModificationDate": "2023-06-14T16:00:00.0000000+02:00",
"durationMilliseconds": 3600000,
"source": "Vod",
"type": "Vod",
"channelId": "cot-channel-ch1",
"isDrm": true,
"preset": "dash_hls_1080p",
"tokenRequiredPolicy": {
"asset": "inherit",
"tenant": "true"
},
"title": "The Matrix",
"description": "A computer hacker learns from mysterious rebels about the true nature of his reality and his role in the war against its controllers.",
"tags": [
{
"name": "action",
"id": "00000000-0000-0000-0000-000000000001"
}
],
"settings": {
"tokenRequired": {
"asset": "Enabled",
"tenant": "Enabled"
},
"devToolsAccess": {
"asset": "Disabled",
"tenant": "Disabled"
},
"cap": {
"asset": "Enabled",
"tenant": "Enabled"
},
"analytics": {
"asset": "Enabled",
"tenant": "Enabled"
},
"codeObfuscation": {
"asset": "Enabled",
"tenant": "Enabled"
}
}
}
Delete Asset Chapter
Delete asset chapter.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/chapters/{chapterId} |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
chapterId | Yes | string | Streaming asset chapter identifier. |
Response
This method returns a 200 OK status code on success with no response body.
REQUEST
curl -X DELETE \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/chapters/chapter1 \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
Create Asset Chapters
Create asset chapters.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/chapters |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
chapters | No | array of objects | Asset chapters. |
Response
This method returns a 200 OK status code on success with no response body.
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/chapters \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"chapters": [
{
"title": "chapter-001",
"startSecond": 35
},
{
"title": "chapter-002",
"startSecond": 60,
"endSecond": 100
}
]
}'
List Allowed Domains
List allowed domains.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/domains |
HTTP method | GET |
Response
Field | Data type | Notes |
---|
- | array of objects | Array of allowed domains. |
playerDomainId | string | Player domain identifier. |
analyticsDomainId | string | Analytic domain identifier. |
url | string | Domain Url. |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/streaming/v1/domains \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
[
{
"playerDomainId": "00000000-0000-0000-0000-000000000000",
"analyticsDomainId": "00000000-0000-0000-0000-000000000000",
"url": "https://example.domain.com"
}
]
Add Allow Domain
Add new allow domain for player.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/domains |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
url | Yes | string | Allow domain url. |
Response
Field | Data type | Notes |
---|
playerDomainId | string | Player domain identifier. |
analyticsDomainId | string | Analytic domain identifier. |
url | string | Domain Url. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/domains \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"url": "https://your.domain.com"
}'
RESPONSE
{
"playerDomainId": "00000000-0000-0000-0000-000000000000",
"analyticsDomainId": "00000000-0000-0000-0000-000000000000",
"url": "https://your.domain.com"
}
Delete Allow Domain
Delete allow domain for player.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/domains |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
playerDomainId | No | string | Player domain id. |
analyticsDomainId | No | string | Analytics domain id. |
Response
This method returns a 200 OK status code on success with no response body.
REQUEST
curl -X DELETE \
'https://{tenant_name}.api.videokit.cloud/streaming/v1/domains?playerDomainId=00000000-0000-0000-0000-000000000000&analyticsDomainId=00000000-0000-0000-0000-000000000000' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
Delete Asset Image
Delete asset image.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/images/{imageKey} |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
imageKey | Yes | string | Image key name. |
Response
This method returns a 200 OK status code on success with no response body.
REQUEST
curl -X DELETE \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/images/poster \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
Create Asset Images
Create asset images.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/images |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
images | No | object | Dictionary of images. |
Response
This method returns a 200 OK status code on success with no response body.
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/images \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"images": {
"poster": {
"Id": "guid",
"Name": "photo01.jpg",
"Url": "https://domain.com/image.jpg"
},
"image1": {
"Id": "guid",
"Name": "image1.jpg",
"Url": "https://domain.com/image2.jpg"
}
}
}'
Start Image Upload
Start image upload.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/images/uploaded/start |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
name | Yes | string | File name, allowed alphanumeric and underscore characters. |
fileSize | Yes | int64 | File size in bytes. |
Response
Field | Data type | Notes |
---|
fileId | string | File identifier. |
multipartUrls | array of strings | URLs to upload parts of file to. |
fileKey | string | File storage id. |
partSize | int64 | Size of each file part in bytes. |
lastPartSize | int64 | Size of last file part. |
partsCount | int64 | Number of parts that the file has to be divided into. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/images/uploaded/start \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"name": "file.jpg",
"fileSize": 7000
}'
RESPONSE
{
"fileId": "00000000-0000-0000-0000-000000000000",
"multipartUrls": [
"https://buekct-name.s3.eu-west-1.amazonaws.com/file.jpg?uploadId=upload-chunk-1",
"https://buekct-name.s3.eu-west-1.amazonaws.com/file.jpg?uploadId=upload-chunk-2"
],
"fileKey": "tenant_id/sources/images/uploaded/file.jpg",
"partSize": 5123100,
"lastPartSize": 9000,
"partsCount": 20
}
Finish Image Upload
Finishing image upload. Call this method after uploading all parts.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/images/uploaded/complete |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
fileId | Yes | string | File identifier. |
parts | Yes | array of objects | List of uploaded parts. |
parts.partNumber | Yes | integer | Part number. |
parts.eTag | Yes | string | Etag header from part upload response. |
Response
Field | Data type | Notes |
---|
fileId | string | File identifier. |
fileKey | string | File storage id. |
url | string | Location url. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/images/uploaded/complete \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"fileId": "00000000-0000-0000-0000-000000000000",
"parts": [
{
"partNumber": 1,
"eTag": "kjjfds9f9sd23jkjfsduf9sji234ifds"
},
{
"partNumber": 2,
"eTag": "ko2kjc0skngfo0a1dklkf0osojk54jfs"
}
]
}'
RESPONSE
{
"fileId": "00000000-0000-0000-0000-000000000000",
"fileKey": "tenant_id/sources/images/uploaded/file.jpg",
"url": "https://example.cloudfront.net/bucket-name/tenant_id/images/file.jpg"
}
Get Next Part Upload URL
Get next part upload URL.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/images/uploaded/{fileId}/part/{partNumber} |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
fileId | Yes | string | File id from files/start method. |
partNumber | Yes | int32 | Number of part. |
Response
Field | Data type | Notes |
---|
url | string | Part upload url. |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/images/uploaded/00000000-0000-0000-0000-000000000000/part/1 \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"url": "https://buekct-name.s3.eu-west-1.amazonaws.com/file.jpg?uploadId=upload-chunk-1"
}
List Images
Lists images.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/images/uploaded |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
limit | No | int32 | Number of items per page. Default: 100 |
page | No | int32 | Request page number. Default: 1 |
fileType | No | string | File type. |
status | No | string | File status. |
query | No | string | Text search query. |
sort | No | string | Field to sort by. Examples: CreateDate, LastModificationDate, FileSize. |
desc | No | boolean | Sort descending. Default: false |
ids | No | array of strings | File identifiers. |
createDateStart | No | string <date-time> | Create date start range. |
createDateEnd | No | string <date-time> | Create date end range. |
lastModificationDateEnd | No | string <date-time> | Last modification date end range. |
lastModificationDateStart | No | string <date-time> | Last modification date start range. |
Response
Field | Data type | Notes |
---|
items | array of objects | One page of listed UploadedFileResult. |
pageCount | int32 | Number of all pages. |
pageSize | int32 | Size of the page. |
totalCount | int32 | Number of all items. |
pageNumber | int32 | Number of this page. |
hasMore | boolean | Actual number of matching records is larger than TotalCount. |
REQUEST
curl -X GET \
'https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/images/uploaded?limit=100&page=1' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"items": [
{
"id": "00000000-0000-0000-0000-000000000000",
"fileKey": "tenant_id/sources/images/uploaded/file.jpg",
"status": "Completed",
"fileSize": 901353,
"s3Uri": "s3://bucket-name/tenant_id/images/file.jpg",
"url": "https://example.cloudfront.net/bucket-name/tenant_id/images/file.jpg",
"bucket": "bucket-name",
"orginalFileName": "file.jpg",
"name": "file.jpg",
"createDate": "2023-06-14T15:49:36.7973126+02:00",
"lastModificationDate": "2023-06-14T15:49:36.7973126+02:00"
}
],
"pageCount": 1,
"pageSize": 100,
"totalCount": 1,
"pageNumber": 1,
"hasMore": false
}
Get Image Details
Get image details.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/images/uploaded/{fileId} |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
fileId | Yes | string | File id from files/start method. |
Response
Field | Data type | Notes |
---|
id | string | File identifier. |
fileKey | string | File storage id. |
status | string | File status. |
fileSize | int64 | File size. |
s3Uri | string | s3 uri path. |
url | string | Location url. |
bucket | string | s3 bucket name. |
orginalFileName | string | Original file name. |
name | string | File name. |
createDate | string <date-time> | Create date. |
lastModificationDate | string <date-time> | Last modification date. |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/images/uploaded/00000000-0000-0000-0000-000000000000 \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"id": "00000000-0000-0000-0000-000000000000",
"fileKey": "tenant_id/sources/images/uploaded/file.jpg",
"status": "Completed",
"fileSize": 901353,
"s3Uri": "s3://bucket-name/tenant_id/images/file.jpg",
"url": "https://example.cloudfront.net/bucket-name/tenant_id/images/file.jpg",
"bucket": "bucket-name",
"orginalFileName": "file.jpg",
"name": "file.jpg",
"createDate": "2023-06-14T15:49:36.7973126+02:00",
"lastModificationDate": "2023-06-14T15:49:36.7973126+02:00"
}
Delete Uploaded Image
Delete uploaded image.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/images/uploaded/{fileId} |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
fileId | Yes | string | File id from files/start method. |
Response
Field | Data type | Notes |
---|
deletedFileKey | string | Deleted file key. |
REQUEST
curl -X DELETE \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/images/uploaded/00000000-0000-0000-0000-000000000000 \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"deletedFileKey": "tenant_id/sources/images/uploaded/file.jpg"
}
Delete Multiple Images
Delete multiple images.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/images/uploaded/deletemany |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
body | Yes | array of strings | File id from files/start method |
Response
Field | Data type | Notes |
---|
[fileId] | object | Service response for each file ID |
[fileId].status | ServiceStatus | Service status details |
[fileId].status.code | string | Application level error code |
[fileId].status.message | string | Developer friendly message |
[fileId].success | boolean | Set if the request was processed successfully |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/images/uploaded/deletemany \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '["00000000-0000-0000-0000-000000000000", "11111111-1111-1111-1111-111111111111"]'
RESPONSE
{
"00000000-0000-0000-0000-000000000000": {
"status": {
"code": "success",
"message": "File deleted successfully"
},
"success": true
},
"11111111-1111-1111-1111-111111111111": {
"status": {
"code": "error",
"message": "File not found"
},
"success": false
}
}
Get Image Frames
Get image frames for given asset
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/images/frames |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
Response
Field | Data type | Notes |
---|
items | array of strings | Single page of listed objects. |
items[].s3Uri | string | S3 URI of the image frame |
items[].url | string | url of the image frame |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/12345678-1234-1234-1234-123456789abc/images/frames \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
RESPONSE
{
"00000000-0000-0000-0000-000000000000": {
"s3Uri": "s3://bucket-name/path/to/file.jpg"
"url": "https://example.com/images/file.jpg"
},
"11111111-1111-1111-1111-111111111111": {
"s3Uri": "s3://bucket-name/path/to/file2.jpg"
"url": "https://example.com/images/file2.jpg"
}
}
List Impressions
List of impressions.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/impressions |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
start | No | string <date-time> | Start of timeframe which is queried in UTC format. |
end | No | string <date-time> | End of timeframe which is queried in UTC format. |
filters | No | array of objects | Analytics Query Filters. |
limit | No | int64 | Maximum number of rows returned (max. 200). |
Response
Field | Data type | Notes |
---|
impressions | array of objects | Array of impressions. |
impressions.impressionId | string | Random UUID that is used to identify a session. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/impressions \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"start": "2024-09-15T08:10:37.560Z",
"end": "2024-09-22T08:10:37.560Z",
"limit": 100
}'
RESPONSE
{
"impressions": [
{
"impressionId": "00000000-0000-0000-0000-000000000000"
},
{
"impressionId": "11111111-1111-1111-1111-111111111111"
}
]
}
Get Max Concurrent Viewers
Get max concurrent viewers analytics.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/metrics/max_concurrentviewers |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
start | No | string <date-time> | Start of timeframe which is queried in UTC format. |
end | No | string <date-time> | End of timeframe which is queried in UTC format. |
filters | No | array of objects | Analytics Query Filters. |
orderBy | No | array of objects | Analytics order by filters. |
interval | No | string | Time interval. |
groupBy | No | array of strings | Array of strings. |
limit | No | int64 | Maximum number of rows returned (max. 200). |
offset | No | int64 | Offset of data. |
Response
Field | Data type | Notes |
---|
rowCount | int64 | Number of rows returned. |
rows | array of arrays | Array of objects. |
columnLabels | array of objects | Column labels. |
columnLabels.key | string | Key. |
columnLabels.label | string | Label. |
contextDescription | array of objects | Context description. |
contextDescription.label | string | Label name. |
contextDescription.description | string | Description. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/metrics/max_concurrentviewers \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"start": "2024-09-15T08:10:37.560Z",
"end": "2024-09-22T08:10:37.560Z",
"interval": "DAY"
}'
RESPONSE
{
"rowCount": 31,
"rows": [
[
1672531200000,
150
],
[
1672617600000,
200
]
],
"columnLabels": [
{
"key": "TIMESTAMP",
"label": "Timestamp"
},
{
"key": "MAX_CONCURRENT_VIEWERS",
"label": "Max Concurrent Viewers"
}
],
"contextDescription": [
{
"label": "Max Concurrent Viewers",
"description": "Maximum number of concurrent viewers"
}
]
}
Generate QR Code
Generates a QR Code for the asset from the streaming module.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/qrcode/{id} |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Streaming asset identifier. Pattern: ^[a-zA-Z0-9_-]{1,128}$ |
Muted | No | boolean | Player muted. |
Autoplay | No | boolean | Player autoplay. |
TimeShift | No | boolean | Player timeshift. |
Analytics | No | boolean | Analytics enabled. |
Response
Returns a QR code image.
REQUEST
curl -X GET \
'https://{tenant_name}.api.videokit.cloud/streaming/v1/qrcode/12345678-1234-1234-1234-123456789abc?Muted=true&Autoplay=true' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
Get queries median analytics.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/queries/median |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
start | No | string <date-time> | Start of timeframe which is queried in UTC format. |
end | No | string <date-time> | End of timeframe which is queried in UTC format. |
filters | No | array of objects | Analytics Query Filters. |
orderBy | No | array of objects | Analytics order by filters. |
interval | No | string | Time interval. |
groupBy | No | array of strings | Array of strings. |
limit | No | int64 | Maximum number of rows returned (max. 200). |
offset | No | int64 | Offset of data. |
dimension | Yes | string | Metric dimension. |
includeContext | No | boolean | Whether context data should be included in the response. |
Response
Field | Data type | Notes |
---|
rowCount | int64 | Number of rows returned. |
rows | array of arrays | Array of objects. |
columnLabels | array of objects | Column labels. |
columnLabels.key | string | Key. |
columnLabels.label | string | Label. |
contextDescription | array of objects | Context description. |
contextDescription.label | string | Label name. |
contextDescription.description | string | Description. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/queries/median \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"start": "2024-09-15T08:10:37.560Z",
"end": "2024-09-22T08:10:37.560Z",
"dimension": "PAGE_LOAD_TIME",
"interval": "DAY"
}'
RESPONSE
{
"rowCount": 31,
"rows": [
[
1672531200000,
250
],
[
1672617600000,
300
]
],
"columnLabels": [
{
"key": "TIMESTAMP",
"label": "Timestamp"
},
{
"key": "PAGE_LOAD_TIME",
"label": "Page Load Time (ms)"
}
],
"contextDescription": [
{
"label": "Page Load Time",
"description": "Median page load time in milliseconds"
}
]
}
Get Queries Avg Analytics
Get queries avg analytics.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/queries/avg |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
start | No | string <date-time> | Start of timeframe which is queried in UTC format. |
end | No | string <date-time> | End of timeframe which is queried in UTC format. |
filters | No | array of objects | Analytics Query Filters. |
orderBy | No | array of objects | Analytics order by filters. |
interval | No | string | Time interval. |
groupBy | No | array of strings | Array of strings. |
limit | No | int64 | Maximum number of rows returned (max. 200). |
offset | No | int64 | Offset of data. |
dimension | Yes | string | Metric dimension. |
includeContext | No | boolean | Whether context data should be included in the response. |
Response
Field | Data type | Notes |
---|
rowCount | int64 | Number of rows returned. |
rows | array of arrays | Array of objects. |
columnLabels | array of objects | Column labels. |
columnLabels.key | string | Key. |
columnLabels.label | string | Label. |
contextDescription | array of objects | Context description. |
contextDescription.label | string | Label name. |
contextDescription.description | string | Description. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/queries/avg \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"start": "2024-09-15T08:10:37.560Z",
"end": "2024-09-22T08:10:37.560Z",
"dimension": "PLAYED",
"interval": "DAY"
}'
RESPONSE
{
"rowCount": 31,
"rows": [
[
1672531200000,
1800000
],
[
1672617600000,
2100000
]
],
"columnLabels": [
{
"key": "TIMESTAMP",
"label": "Timestamp"
},
{
"key": "PLAYED",
"label": "Average Played Time (ms)"
}
],
"contextDescription": [
{
"label": "Average Played Time",
"description": "Average played time in milliseconds"
}
]
}
Get Queries Count Analytics
Get queries count analytics.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/queries/count |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
start | No | string <date-time> | Start of timeframe which is queried in UTC format. |
end | No | string <date-time> | End of timeframe which is queried in UTC format. |
filters | No | array of objects | Analytics Query Filters. |
orderBy | No | array of objects | Analytics order by filters. |
interval | No | string | Time interval. |
groupBy | No | array of strings | Array of strings. |
limit | No | int64 | Maximum number of rows returned (max. 200). |
offset | No | int64 | Offset of data. |
dimension | Yes | string | Metric dimension. |
includeContext | No | boolean | Whether context data should be included in the response. |
Response
Field | Data type | Notes |
---|
rowCount | int64 | Number of rows returned. |
rows | array of arrays | Array of objects. |
columnLabels | array of objects | Column labels. |
columnLabels.key | string | Key. |
columnLabels.label | string | Label. |
contextDescription | array of objects | Context description. |
contextDescription.label | string | Label name. |
contextDescription.description | string | Description. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/queries/count \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"start": "2024-09-15T08:10:37.560Z",
"end": "2024-09-22T08:10:37.560Z",
"dimension": "IMPRESSIONS",
"interval": "DAY"
}'
RESPONSE
{
"rowCount": 31,
"rows": [
[
1672531200000,
1000
],
[
1672617600000,
1200
]
],
"columnLabels": [
{
"key": "TIMESTAMP",
"label": "Timestamp"
},
{
"key": "IMPRESSIONS",
"label": "Impressions Count"
}
],
"contextDescription": [
{
"label": "Impressions",
"description": "Number of impressions"
}
]
}
Get Queries Sum Analytics
Get queries sum analytics.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/queries/sum |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
start | No | string <date-time> | Start of timeframe which is queried in UTC format. |
end | No | string <date-time> | End of timeframe which is queried in UTC format. |
filters | No | array of objects | Analytics Query Filters. |
orderBy | No | array of objects | Analytics order by filters. |
interval | No | string | Time interval. |
groupBy | No | array of strings | Array of strings. |
limit | No | int64 | Maximum number of rows returned (max. 200). |
offset | No | int64 | Offset of data. |
dimension | Yes | string | Metric dimension. |
includeContext | No | boolean | Whether context data should be included in the response. |
Response
Field | Data type | Notes |
---|
rowCount | int64 | Number of rows returned. |
rows | array of arrays | Array of objects. |
columnLabels | array of objects | Column labels. |
columnLabels.key | string | Key. |
columnLabels.label | string | Label. |
contextDescription | array of objects | Context description. |
contextDescription.label | string | Label name. |
contextDescription.description | string | Description. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/streaming/v1/analytics/queries/sum \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"start": "2023-01-01T00:00:00Z",
"end": "2023-01-31T23:59:59Z",
"dimension": "PLAYED",
"interval": "DAY"
}'
RESPONSE
{
"rowCount": 31,
"rows": [
[
1672531200000,
18000000
],
[
1672617600000,
21000000
]
],
"columnLabels": [
{
"key": "TIMESTAMP",
"label": "Timestamp"
},
{
"key": "PLAYED",
"label": "Total Played Time (ms)"
}
],
"contextDescription": [
{
"label": "Total Played Time",
"description": "Sum of played time in milliseconds"
}
]
}
Get Settings
Get settings for player module.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/settings |
HTTP method | GET |
Response
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/streaming/v1/settings \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"tenantId": "00000000-0000-0000-0000-000000000000",
"tenantName": "tenant01",
"playerEncryptedData": "encrypted_data_string",
"contentAcquisitionInfo": {
"acquireContentUrl": "https://example.player.videokit.cloud/player/v1/acquirecontent/bitmovin/web",
"sourceConfigUrl": "https://example.player.videokit.cloud/v1/sourceconfig",
"authorization": {
"tokenRequiredPolicy": true,
"signingKey": "SGVsbG8=",
"signingAlgorithm": "HS256"
}
},
"licenseAcquisitionInfo": {
"enabled": true,
"authorization": {
"signingKey": "SGVsbG8=",
"signingAlgorithm": "HS256"
},
"endpoints": [
{
"licenseUrl": "https://example.la.drm.cloud/acquire-license/fairplay",
"systemName": "Fairplay",
"systemId": "94ce86fb-07ff-4f43-adb8-93d2fa968ca2"
}
]
},
"bitmovinPlayerInfo": {
"embedUrl": "https://example.streaming.videokit.cloud/v1/embed/bitmovin",
"sourceConfigUrl": "https://example.player.videokit.cloud/v1/sourceconfig",
"playerLicense": {
"key": "00000000-0000-0000-0000-000000000000",
"impressions": 90,
"maxImpressions": 5000,
"id": "00000000-0000-0000-0000-000000000000"
},
"analyticsLicense": {
"key": "00000000-0000-0000-0000-000000000000",
"impressions": 90,
"maxImpressions": 5000
}
},
"capInfo": {
"enabled": true,
"capUrl": "https://example.cap.videokit.cloud/heartbeat/v1/heartbeat/00000000-0000-0000-0000-000000000000",
"signingKey": "SGVsbG8="
},
"allowedDomains": [
{
"playerDomainId": "00000000-0000-0000-0000-000000000000",
"analyticsDomainId": "00000000-0000-0000-0000-000000000000",
"url": "https://example.domain.com"
}
],
"playerConfigInfo": {
"devToolsAccess": false,
"analytics": true,
"codeObfuscation": true
}
}
Delete Asset Tag
Removes a specific tag from an asset.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/tags/{tag} |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Asset identifier (path parameter). |
tag | Yes | string | Tag to be removed (path parameter). |
Response
This method returns a 200 OK status code on success with no response body.
REQUEST
curl -X DELETE \
'https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/tags/{tag}' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
Adds one or more tags to a specific asset.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/tags |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
assetId | Yes | string | Asset identifier (path parameter). |
tags | Yes | array of objects | List of tags to be added. Attributes in the format [key]=value |
Response
This method returns a 200 OK status code on success with no response body.
REQUEST
curl -X POST \
'https://{tenant_name}.api.videokit.cloud/streaming/v1/assets/{assetId}/tags' \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}' \
-d '{
"tags": [
{ "name": "comedy" },
{ "name": "featured" }
]
}'
Core
Get Tenant Status
It returns the status of a tenant.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/core/v1/settings/tenant/{id}/status |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | Tenant ID. |
X-Tenant-Id | No | string | Tenant ID is required only if one tenant is active on a given account. |
Response
Field | Data type | Notes |
---|
status | string | Tenant status (e.g., Active, Blocked, Deleted, SettingUp, Error). |
message | string | Additional message about the tenant status. |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/core/v1/settings/tenant/12345678-1234-1234-1234-123456789abc/status \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: <tenant_id>'
RESPONSE
{
"status": "Active",
"message": "Tenant is active and running."
}
Get API Keys
Returns a list of API keys details.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/core/v1/api-key |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
Query | No | string | Text query to filter API keys |
Sort | No | string | Field to sort by |
Desc | No | boolean | Set to true to sort descending |
Page | No | int32 | Page number |
Limit | No | int32 | Number of items per page |
Response
Field | Type | Notes |
---|
items | array of objects | Single page of listed objects. |
items.id | string | API Key ID. |
items.name | string | API Key name. |
items.roleId | string | Role name associated with the API Key. |
items.roleId | string | Role ID associated with the API Key. |
items.createdAt | string | API Key creation timestamp. |
pageCount | int32 | Number of all pages. |
pageSize | int32 | Size of the page. |
totalCount | int32 | Number of all items. |
REQUEST
curl -X GET \
'https://{tenant_name}.api.videokit.cloud/core/v1/api-key?Query=admin&Sort=name&Desc=true&Page=1&Limit=10' \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"items": [
{
"id": "12345678-1234-1234-1234-123456789abc",
"name": "API Key 1",
"roleName": "Admin",
"roleId": "role-123",
"createdAt": "2025-05-19T09:35:36.538996+00:00"
}
],
"pageCount": 1,
"pageSize": 100,
"totalCount": 1,
"pageNumber": 1,
"hasMore": false
}
Get Single API Key
It returns the details of a specific API key by its ID.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/core/v1/api-key/{id} |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | API Key ID. |
X-Tenant-Id | No | string | Tenant ID is required only if one tenant is active on a given account. |
Response
Field | Data type | Notes |
---|
id | string | API Key ID. |
name | string | API Key name. |
roleId | string | Role ID associated with the API Key. |
REQUEST
curl -X GET \
https://{tenant_name}.api.videokit.cloud/core/v1/api-key/12345678-1234-1234-1234-123456789abc \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: <tenant_id>'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc",
"name": "API Key 1",
"roleId": "role-123"
}
Create API Key
It creates a new API key.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/core/v1/api-key |
HTTP method | POST |
Request
Parameter | Required | Type | Notes |
---|
X-Tenant-Id | No | string | Tenant ID is required only if one tenant is active on a given account. |
name | Yes | string | Name of the API Key. |
roleId | Yes | string | Role ID associated with the API Key. |
Response
Field | Data type | Notes |
---|
id | string | API Key ID. |
name | string | API Key name. |
roleId | string | Role ID associated with the API Key. |
REQUEST
curl -X POST \
https://{tenant_name}.api.videokit.cloud/core/v1/api-key \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: <tenant_id>' \
-d '{
"name": "API Key 1",
"roleId": "role-123"
}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc",
"name": "API Key 1",
"roleId": "role-123"
}
Update API Key
It updates an existing API key.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/core/v1/api-key/{id} |
HTTP method | PUT |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | API Key ID. |
X-Tenant-Id | No | string | Tenant ID is required only if one tenant is active on a given account. |
name | Yes | string | Updated name of the API Key. |
roleId | Yes | string | Updated Role ID associated with the API Key. |
Response
Field | Data type | Notes |
---|
id | string | API Key ID. |
name | string | Updated API Key name. |
roleId | string | Updated Role ID associated with the API Key. |
REQUEST
curl -X PUT \
https://{tenant_name}.api.videokit.cloud/core/v1/api-key/12345678-1234-1234-1234-123456789abc \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: <tenant_id>' \
-d '{
"name": "Updated API Key 1",
"roleId": "role-456"
}'
RESPONSE
{
"id": "12345678-1234-1234-1234-123456789abc",
"name": "Updated API Key 1",
"roleId": "role-456"
}
Delete API Key
It deletes an API key by its ID.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/core/v1/api-key/{id} |
HTTP method | DELETE |
Request
Parameter | Required | Type | Notes |
---|
id | Yes | string | API Key ID. |
X-Tenant-Id | No | string | Tenant ID is required only if one tenant is active on a given account. |
Response
No content is returned upon successful deletion.
REQUEST
curl -X DELETE \
https://{tenant_name}.api.videokit.cloud/core/v1/api-key/12345678-1234-1234-1234-123456789abc \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: <tenant_id>'
Transcoder
List Available Presets
List available presets for output generation.
Specifics
| |
---|
Method URL | https://{tenant_name}.api.videokit.cloud/transcoder/v1/presets |
HTTP method | GET |
Request
Parameter | Required | Type | Notes |
---|
limit | No | int32 | Page size of presets; default: 100 |
page | No | int32 | Number of requested page; default: 1 |
Response
Field | Data type | Notes |
---|
items | array of objects | Single page of listed presets |
items[].name | string | Name of the preset |
items[].description | string | Description of the preset |
items[].createsDownload | boolean | Indicates if the preset creates a downloadable output |
pageCount | int32 | Number of all pages |
pageSize | int32 | Size of the page |
totalCount | int32 | Number of all items |
pageNumber | int32 | Number of this page |
hasMore | boolean | Actual number of matching records is larger than TotalCount |
REQUEST
curl -X GET \
'https://{tenant_name}.api.videokit.cloud/transcoder/v1/presets?limit=10&page=1' \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: {your_api_key}' \
-H 'X-Tenant-Id: {tenant_id}'
RESPONSE
{
"items": [
{
"name": "preset1",
"description": "HD 1080p preset",
"createsDownload": true
},
{
"name": "preset2",
"description": "SD 720p preset",
"createsDownload": false
}
],
"pageCount": 1,
"pageSize": 10,
"totalCount": 2,
"pageNumber": 1,
"hasMore": false
}