Complete reference of every operation, grouped by resource. See the README for usage and configuration.
VideoAssetsSubtitleUploadAudioUploadVideoUsageAnalyticsMultipartUploadVideoProfilesVideoPlaylistsWebhooksImageSourcesImageUsageAnalyticsLiveStreamAssetsRecycleBinVideoWorkspacesFoldersChannelViewersVideoAnalyticsOrganizationDataUserDataAuditLogsBillingLiveStreamWorkspacesLiveStreamAnalyticsGlobalSearch
import Gumlet from '@gumlet/nodejs-sdk';
const client = new Gumlet({
apiKey: process.env['API_KEY'], // defaults to the API_KEY env var
});Upload, manage, and retrieve video assets, including thumbnails, subtitles, audio tracks, and chapters.
An asset refers to media content/video that is processed, stored, and delivered through Gumlet. This endpoint creates an asset allowing users to ingest media content into the Gumlet system for processing and delivery.
| Direction | Type |
|---|---|
| Request | VideoAssetCreateParams |
| Response | VideoAssetCreateResponse |
const videoAsset = await client.videoAssets.create({
format: 'ABR',
workspace_id: '<your workspace id>',
title: 'Example Title',
input: 'http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8',
});This endpoint creates a video asset allowing upload of a video from the local file system and ingest media content into the Gumlet system for processing and delivery. Body parameters are the same as the Create Asset body parameters except for the input parameter, which this endpoint does not take. A successful response will be returned with upload_url field. You can make PUT request to that URL to upload video. To upload video using upload_url refer to this.
| Direction | Type |
|---|---|
| Request | VideoAssetUploadParams |
| Response | VideoAssetUploadResponse |
const videoAsset = await client.videoAssets.upload({
format: 'ABR',
collection_id: '646df1c9173a4a2fcac180b4',
description: 'some description',
tag: ['ball'],
profile_id: '646df1c9173a4a2fcac180b7',
playlist_id: '6597acd5ed6f26a9c5ca9633',
metadata: { headermeta: 'metavalue' },
call_to_actions: [
{
start_time: 1,
end_time: 90,
text: 'some test',
url: 'https://some-url.com',
position_from_top: 11,
position_from_right: 23,
font_color: '#000001',
background_color: '#ffffff',
},
],
folder: '697375fbfa2d1037283140e4',
});This endpoint retrieves the details of an asset that has previously been created.
| Direction | Type |
|---|---|
| Response | VideoAssetRetrieveDetailsResponse |
const videoAsset = await client.videoAssets.retrieveDetails('assetId');This endpoint removes an asset given its unique asset id. The asset will be removed from storage as well, associated URLs will be inaccessible.
await client.videoAssets.delete('assetId');This endpoint allows users to update video asset that has previously been created.
| Direction | Type |
|---|---|
| Request | VideoAssetUpdateParams |
| Response | VideoAssetUpdateResponse |
const videoAsset = await client.videoAssets.update({ asset_id: '<YOUR_ASSET_ID>', title: 'Updated Title' });Select frame from video to use as thumbnail.
| Direction | Type |
|---|---|
| Request | VideoAssetThumbnailSelectParams |
| Response | VideoAssetThumbnailSelectResponse |
const videoAsset = await client.videoAssets.thumbnailSelect('assetId', { frame_at_second: 2 });Use any image file to use as thumbnail. Once you use the API, you will get upload_url in the response, and that can be used to upload the image file.
Here is the sample curl request.
curl --location --request PUT '<upload_url>' \
--data '<YOUR_FILE_PATH>'| Direction | Type |
|---|---|
| Response | VideoAssetThumbnailUploadResponse |
const videoAsset = await client.videoAssets.thumbnailUpload('assetId');This endpoint will create/update video asset chapters.
| Direction | Type |
|---|---|
| Request | VideoAssetCreateUpdateChapterParams |
| Response | VideoAssetCreateUpdateChapterResponse |
const videoAsset = await client.videoAssets.createUpdateChapter('assetId', {
chapters: [
{ label: 'Chapter 1', startTime: 0 },
{ label: 'Chapter 2', startTime: 10 },
],
});List folders and assets for a workspace in a single response. Use parent_id to browse a specific folder, or filters like title, status, and playlist_id to search assets.
| Direction | Type |
|---|---|
| Request | VideoAssetListParams |
| Response | VideoAssetListResponse |
const videoAsset = await client.videoAssets.list('workspaceId', {
type: 'all',
offset: 0,
size: 20,
signed_token: 'false',
});[Deprecated] This endpoint list assets in video workspace. You can also pass status and tag to filter assets.
| Direction | Type |
|---|---|
| Request | VideoAssetListDeprecatedParams |
| Response | VideoAssetListDeprecatedResponse |
const videoAsset = await client.videoAssets.listDeprecated('workspaceId', {
sortBy: 'created_at',
orderBy: 'desc',
});Delete multiple VOD assets at once.
| Direction | Type |
|---|---|
| Request | VideoAssetDeleteManyParams |
| Response | VideoAssetDeleteManyResponse |
const videoAsset = await client.videoAssets.deleteMany({
source_id: '60bd2ba353ff754d28179ee6',
asset_list: ['64249a8858fd3a208b987702', '64784bae843b155b829bbf84'],
});Add / remove tags from multiple assets at once.
| Direction | Type |
|---|---|
| Request | VideoAssetTagManyParams |
| Response | VideoAssetTagManyResponse |
const videoAsset = await client.videoAssets.tagMany({
source_id: '60bd2ba353ff754d28179ee6',
add_tags: ['tag-1'],
remove_tags: ['playlist-1'],
asset_list: ['6221db301c8b821b0519fba0', '61e8f2726ec832ab2ac4fa6e'],
});Get video analytics for a single asset.
| Direction | Type |
|---|---|
| Request | VideoAssetAnalyticsParams |
| Response | VideoAssetAnalyticsResponse |
const videoAsset = await client.videoAssets.analytics('assetId', {
group_by: 'daily',
date_range: {
start_at: '2024-01-01',
end_at: '2024-01-01',
},
metrics: ['impressions'],
});Add subtitles to an existing asset.
Upload .srt or .vtt file to the video asset. The response of this API call gives upload_url for each language specified. You need to send a PUT request of the subtitle files to those URLs. Once that's done, you need to call the subtitle upload complete API. Only after that, Gumlet will add subtitles to asset.
| Direction | Type |
|---|---|
| Request | SubtitleUploadUploadParams |
| Response | SubtitleUploadUploadResponse |
const subtitleUpload = await client.subtitleUpload.upload('assetId');This API must be called after adding subtitles; the add subtitle call gives you URLs to upload, and you complete a PUT request to those URLs.
Once that is done, calling this initiates the process to actually add the subtitle to the video.
| Direction | Type |
|---|---|
| Request | SubtitleUploadCompleteParams |
| Response | SubtitleUploadCompleteResponse |
const subtitleUpload = await client.subtitleUpload.complete('assetId');Add additional audio tracks to an existing asset.
Add any audio file to the video asset.
The response of this API call gives upload_url for each language specified. You need to send a PUT request of the audio files to those URLs. Once that's done, you need to call the audio upload complete API. Only after that will Gumlet add audio to the asset.
| Direction | Type |
|---|---|
| Request | AudioUploadUploadParams |
| Response | AudioUploadUploadResponse |
const audioUpload = await client.audioUpload.upload('assetId');This API must be called after adding audio(s); The add audio call gives you URLs to upload, and you complete a PUT request to those URLs.
Once that is done, calling this initiates the process to actually add the subtitle to the video.
| Direction | Type |
|---|---|
| Request | AudioUploadCompleteParams |
| Response | AudioUploadCompleteResponse |
const audioUpload = await client.audioUpload.complete('assetId');Query video analytics and streaming duration usage data.
This endpoint gives usage analytics data of your videos. Ex - top assets, bandwidth consumption
| Direction | Type |
|---|---|
| Request | VideoUsageAnalyticRetrieveParams |
| Response | VideoUsageAnalyticRetrieveResponse |
const videoUsageAnalytic = await client.videoUsageAnalytics.retrieve({
metrics: ['bandwidth_consumption', 'asset_duration', 'storage_unit', 'top_assets', 'drm_requests'],
date_range: { start_at: '2026-08-01', end_at: '2026-08-20' },
group_by: 'daily',
});This endpoint lists top streamed assets in a video collection
| Direction | Type |
|---|---|
| Request | VideoUsageAnalyticTopAssetsParams |
| Response | VideoUsageAnalyticTopAssetsResponse |
const videoUsageAnalytic = await client.videoUsageAnalytics.topAssets({
start_at: '2026-06-21',
end_at: '2026-06-30',
page: '1',
page_size: '1000',
});Upload large video files in parts and complete the multipart upload.
Use this endpoint to retrieve a pre-signed upload URL for the given part number.
| Direction | Type |
|---|---|
| Request | MultipartUploadRetrievePartURLParams |
| Response | MultipartUploadRetrievePartURLResponse |
const multipartUpload = await client.multipartUpload.retrievePartURL('partNumber', {
asset_id: 'assetId',
});Once you upload all parts to S3 bucket via pre-signed URL, use this endpoint to complete the multipart upload.
| Direction | Type |
|---|---|
| Request | MultipartUploadCompleteParams |
| Response | MultipartUploadCompleteResponse |
const multipartUpload = await client.multipartUpload.complete('assetId');This call aborts multi-part upload and deletes the already uploaded parts from the storage.
| Direction | Type |
|---|---|
| Request | MultipartUploadAbortParams |
| Response | MultipartUploadAbortResponse |
const multipartUpload = await client.multipartUpload.abort('assetId');Lists all parts uploaded so far.
| Direction | Type |
|---|---|
| Request | MultipartUploadListParams |
| Response | MultipartUploadListResponse |
const multipartUpload = await client.multipartUpload.list('assetId');Create and manage encoding/output profiles for video assets.
Gumlet provides the functionality of creating multiple video assets using the same set of parameters. A Video profile is a set of parameters that can be referenced/used while creating a video as a single parameter.
| Direction | Type |
|---|---|
| Request | VideoProfileCreateParams |
| Response | VideoProfileCreateResponse |
const videoProfile = await client.videoProfiles.create({
name: 'Gumlet-Profile-1',
format: 'ABR',
});This endpoint retrieves the details of all profiles that have previously been created.
| Direction | Type |
|---|---|
| Request | VideoProfileListParams |
| Response | VideoProfileListResponse |
const videoProfile = await client.videoProfiles.list();Update an existing profile. Settings provided in body parameters will only be updated in the existing profile.
| Direction | Type |
|---|---|
| Request | VideoProfileUpdateParams |
| Response | VideoProfileUpdateResponse |
const videoProfile = await client.videoProfiles.update('profileId', {
profile_id: '',
format: 'ABR',
});This endpoint retrieves the details of a video profile that has previously been created.
| Direction | Type |
|---|---|
| Response | VideoProfileRetrieveResponse |
const videoProfile = await client.videoProfiles.retrieve('profileId');This endpoint removes a profile given its unique profile_id. The profile will be removed but video assets created using the profile will remain as it is.
| Direction | Type |
|---|---|
| Response | VideoProfileDeleteResponse |
const videoProfile = await client.videoProfiles.delete('profileId');Create and manage playlists, and control which assets belong to them.
Create new playlist inside video wprkspace
| Direction | Type |
|---|---|
| Request | VideoPlaylistCreateParams |
| Response | VideoPlaylistCreateResponse |
const videoPlaylist = await client.videoPlaylists.create({
title: 'Playlist-Title',
description: 'This is description for playlist.',
collection_id: '{{video-source-id}}',
});Get all playlists for given workspace
| Direction | Type |
|---|---|
| Request | VideoPlaylistListAllParams |
| Response | VideoPlaylistListAllResponse |
const videoPlaylist = await client.videoPlaylists.listAll();This operation adds a single asset or a list of assets to a playlist.
| Direction | Type |
|---|---|
| Request | VideoPlaylistCreateAssetParams |
| Response | VideoPlaylistCreateAssetResponse |
const videoPlaylist = await client.videoPlaylists.createAsset('playlistId', {
asset_list: [
{ asset_id: '6508790283e4d60611846790' },
{ position: 1, asset_id: '650878f883e4d6061184677d' },
{ asset_id: '650878de83e4d6061184676a' },
{ position: 2, asset_id: '650878d883e4d60611846757' },
{ position: 3, asset_id: '65578dd87eebc22dcdd549a2' },
],
});Removed an asset or list of assets from a given playlist.
| Direction | Type |
|---|---|
| Request | VideoPlaylistDeleteAssetParams |
| Response | VideoPlaylistDeleteAssetResponse |
const videoPlaylist = await client.videoPlaylists.deleteAsset('playlistId', {
delete_list: ['6508790783e4d606118467a3'],
});This endpoint allows you to update playlist name, channel visibility, or playlist order on a channel page.
| Direction | Type |
|---|---|
| Request | VideoPlaylistUpdateParams |
| Response | VideoPlaylistUpdateResponse |
const videoPlaylist = await client.videoPlaylists.update('playlistId');Deletes this playlist.
await client.videoPlaylists.delete('playlistId');Get a list of all assets inside playlist. You can choose in which order are assets returned.
| Direction | Type |
|---|---|
| Request | VideoPlaylistListAssetsParams |
| Response | VideoPlaylistListAssetsResponse |
const videoPlaylist = await client.videoPlaylists.listAssets('playlistId', {
sort_order: 1,
page_number: 1,
page_size: '10',
});Reorder videos inside a playlist either by moving a single asset to a position or by sorting the playlist by title or created date.
| Direction | Type |
|---|---|
| Request | VideoPlaylistReorderAssetParams |
| Response | VideoPlaylistReorderAssetResponse |
const videoPlaylist = await client.videoPlaylists.reorderAsset('playlistId', {
asset_id: '6e82bf783e88be000ab45ed2',
page_number: 1,
page_size: 10,
asset_position: 0,
});Configure webhooks for account and asset events.
Creates a new webhook listener.
| Direction | Type |
|---|---|
| Request | WebhookCreateParams |
| Response | WebhookCreateResponse |
const webhook = await client.webhooksResource.create({
url: '',
secret_token: '',
triggers: [''],
sources: [''],
});List all webhooks.
| Direction | Type |
|---|---|
| Response | WebhookListResponse |
const webhook = await client.webhooksResource.list();Update a webhook listener.
| Direction | Type |
|---|---|
| Request | WebhookUpdateParams |
| Response | WebhookUpdateResponse |
const webhook = await client.webhooksResource.update('webhookId');Delete webhook listener endpoint.
| Direction | Type |
|---|---|
| Response | WebhookDeleteResponse |
const webhook = await client.webhooksResource.delete('webhookId');Get logs history for a given webhook.
| Direction | Type |
|---|---|
| Response | WebhookHistoryResponse |
const webhook = await client.webhooksResource.history('webhookId');Manage image sources, view image analytics, and purge the image cache.
This endpoint allows users to create image source.
| Direction | Type |
|---|---|
| Request | ImageSourceCreateParams |
| Response | ImageSourceCreateResponse |
const imageSource = await client.imageSources.create({
type: 'webfolder',
webfolder: { base_url: 'https://www.google.com' },
namespace: 'google-demo',
});This endpoint list image sources which are assigned to the user or token.
| Direction | Type |
|---|---|
| Request | ImageSourceListParams |
| Response | ImageSourceListResponse |
const imageSource = await client.imageSources.list({
offset: 0,
size: 20,
});Get all details about image source.
| Direction | Type |
|---|---|
| Response | ImageSourceRetrieveResponse |
const imageSource = await client.imageSources.retrieve('imageSourceId');This endpoint allows users to update image source that has previously been created.
| Direction | Type |
|---|---|
| Request | ImageSourceUpdateParams |
| Response | ImageSourceUpdateResponse |
const imageSource = await client.imageSources.update('imageSourceId');This endpoint removes a image source. All image delivery using this subdomain will be stopped.
| Direction | Type |
|---|---|
| Response | ImageSourceDeleteResponse |
const imageSource = await client.imageSources.delete('imageSourceId');You can purge cache for any image by using our cache purge API.
| Direction | Type |
|---|---|
| Request | ImageSourcePurgeCacheParams |
| Response | ImageSourcePurgeCacheResponse |
const imageSource = await client.imageSources.purgeCache('subdomain');You can purge the cache for any image path by using this cache purge API.
| Direction | Type |
|---|---|
| Request | ImageSourcePurgeParams |
| Response | ImageSourcePurgeResponse |
const imageSource = await client.imageSources.purge('sourceId', { paths: ['image.jpeg', 'image2.png'] });Query aggregated and chart-ready image usage analytics data.
This endpoint helps you get image analytics data like bandwidth consumption, request count, CDN hit ratio, etc.
| Direction | Type |
|---|---|
| Request | ImageUsageAnalyticRetrieveParams |
| Response | ImageUsageAnalyticRetrieveResponse |
const imageUsageAnalytic = await client.imageUsageAnalytics.retrieve({
metrics: ['bandwidth_consumption'],
date_range: {
start_at: '2024-01-01',
end_at: '2024-01-01',
},
group_by: 'daily',
});Create, control, and monitor live stream assets.
A live asset refers to media content/video that is live-streamed through Gumlet. This endpoint creates a live streaming asset allowing users to live stream a video that will be pushed to Gumlet.
| Direction | Type |
|---|---|
| Request | LiveStreamAssetCreateParams |
| Response | LiveStreamAssetCreateResponse |
const liveStreamAsset = await client.liveStreamAssets.create({
live_source_id: '',
resolution: '',
});A live asset refers to media content/video that is live-streamed through Gumlet. This endpoint allows users to update a live streaming asset.
| Direction | Type |
|---|---|
| Request | LiveStreamAssetUpdateParams |
| Response | LiveStreamAssetUpdateResponse |
const liveStreamAsset = await client.liveStreamAssets.update({
live_asset_id: '',
});This endpoint retrieves the details of a live video asset that has previously been created.
| Direction | Type |
|---|---|
| Response | LiveStreamAssetRetrieveStatusResponse |
const liveStreamAsset = await client.liveStreamAssets.retrieveStatus('liveAssetId');This endpoint removes a live asset given its unique live asset id. The live asset will be removed from storage as well, associated URLs will be inaccessible.
| Direction | Type |
|---|---|
| Response | LiveStreamAssetDeleteResponse |
const liveStreamAsset = await client.liveStreamAssets.delete('liveAssetId');This endpoint allows marking live assets complete. Once the live asset is marked complete, it can no longer be used to ingest the live stream on Gumlet.
| Direction | Type |
|---|---|
| Response | LiveStreamAssetCompleteResponse |
const liveStreamAsset = await client.liveStreamAssets.complete('liveAssetId');This endpoint lists live assets on the basis of status for the given live_source_id.
| Direction | Type |
|---|---|
| Request | LiveStreamAssetFilterParams |
| Response | LiveStreamAssetFilterResponse |
const liveStreamAsset = await client.liveStreamAssets.filter('liveSourceId');Start a live stream.
await client.liveStreamAssets.start('liveAssetId');Generate presigned upload URLs for live stream thumbnails. Supported thumbnail states are preparing, disconnected, and end.
| Direction | Type |
|---|---|
| Request | LiveStreamAssetUploadParams |
| Response | LiveStreamAssetUploadResponse |
const liveStreamAsset = await client.liveStreamAssets.upload({
live_asset_id: '68c406b147f9ad0c0d584ce2',
statuses: ['preparing', 'disconnected'],
});This endpoint retrieves the history of a live video asset that has previously been created.
| Direction | Type |
|---|---|
| Response | LiveStreamAssetStatusHistoryResponse |
const liveStreamAsset = await client.liveStreamAssets.statusHistory('liveAssetId');Endpoints to list deleted assets and restore them.
Recovers a deleted asset from the recycle bin.
| Direction | Type |
|---|---|
| Request | RecycleBinRecoverParams |
await client.recycleBin.recover({
asset_id: '',
});List all assets in a recycle bin for a given workspace. The deleted assets are available for 30 days. After that, assets are permanently deleted.
| Direction | Type |
|---|---|
| Request | RecycleBinListParams |
| Response | RecycleBinListResponse |
const recycleBin = await client.recycleBin.list({
size: 20,
workspace_id: 'workspaceId',
});Create and manage video workspaces.
This endpoint list video workspace which are assigned to the user or token.
| Direction | Type |
|---|---|
| Request | VideoWorkspaceListParams |
| Response | VideoWorkspaceListResponse |
const videoWorkspace = await client.videoWorkspaces.list({
offset: '0',
size: '10',
});Video workspaces are top-level entities in Gumlet. You can use them to organize videos for different teams/departments or use cases.
| Direction | Type |
|---|---|
| Request | VideoWorkspaceCreateParams |
| Response | VideoWorkspaceCreateResponse |
const videoWorkspace = await client.videoWorkspaces.create({
name: 'zoom-workspace',
type: 'zoom',
zoom: { secret: 'yourSecret' },
});This endpoint allows users to update video workspace that has previously been created.
| Direction | Type |
|---|---|
| Request | VideoWorkspaceUpdateParams |
| Response | VideoWorkspaceUpdateResponse |
const videoWorkspace = await client.videoWorkspaces.update('workspaceId');This endpoint get all the data of video workspace that has previously been created.
| Direction | Type |
|---|---|
| Response | VideoWorkspaceRetrieveResponse |
const videoWorkspace = await client.videoWorkspaces.retrieve('workspaceId');This endpoint removes a video workspace given its unique asset id. All the asset in workspace will be removed from storage as well, associated URLs will be inaccessible.
| Direction | Type |
|---|---|
| Response | VideoWorkspaceDeleteResponse |
const videoWorkspace = await client.videoWorkspaces.delete('workspaceId');Organize video assets into folders within a workspace.
Create a folder inside a video workspace. Optionally provide parent_id to create a nested folder.
| Direction | Type |
|---|---|
| Request | FolderCreateParams |
| Response | FolderCreateResponse |
const folder = await client.folders.create('workspaceId', { name: 'Course Assets', parent_id: null });List folders for a video workspace. Use parent_id to list only folders inside a specific parent folder.
| Direction | Type |
|---|---|
| Request | FolderListParams |
| Response | FolderListResponse |
const folder = await client.folders.list('workspaceId');Get a single folder by id.
| Direction | Type |
|---|---|
| Request | FolderRetrieveParams |
| Response | FolderRetrieveResponse |
const folder = await client.folders.retrieve('folderId', {
workspace_id: 'workspaceId',
});Rename a folder, move it to another parent folder, or move assets into the folder by sending asset_ids.
| Direction | Type |
|---|---|
| Request | FolderUpdateParams |
| Response | FolderUpdateResponse |
const folder = await client.folders.update('folderId', {
workspace_id: 'workspaceId',
});Delete a folder. Descendant folders and assets inside them are deleted by the backend workflow.
| Direction | Type |
|---|---|
| Request | FolderDeleteParams |
| Response | FolderDeleteResponse |
const folder = await client.folders.delete('folderId', {
workspace_id: 'workspaceId',
});Remove one or more assets from their current folder assignment inside the workspace.
| Direction | Type |
|---|---|
| Request | FolderDeleteAssetsParams |
| Response | FolderDeleteAssetsResponse |
const folder = await client.folders.deleteAssets('workspaceId', {
asset_ids: ['67e4f2b4403562dbea654301', '67e4f2bb403562dbea654302'],
});Invite and remove viewers on a private video channel.
Invite one or more viewers to a members-only channel.
| Direction | Type |
|---|---|
| Request | ChannelViewerInviteParams |
| Response | ChannelViewerInviteResponse |
const channelViewer = await client.channelViewers.invite('videoWorkspaceId', {
users: [
{ email: 'test@gumlet.com', name: 'Test User-0' },
{ email: 'test+1@gumlet.com', name: 'Test User-1' },
{ email: 'test+2@gumlet.com', name: 'Test User-2' },
],
});Remove one or more viewers from a channel by email address.
| Direction | Type |
|---|---|
| Request | ChannelViewerDeleteParams |
| Response | ChannelViewerDeleteResponse |
const channelViewer = await client.channelViewers.delete('videoWorkspaceId', {
emails: ['test@gumlet.com', 'test+2@gumlet.com'],
});Invite viewers to a channel by uploading a CSV file.
| Direction | Type |
|---|---|
| Request | ChannelViewerInviteCsvParams |
| Response | ChannelViewerInviteCsvResponse |
const channelViewer = await client.channelViewers.inviteCsv('videoWorkspaceId', {
viewers_csv: 'viewers.csv',
});List all channel subscribers.
| Direction | Type |
|---|---|
| Request | ChannelViewerListSubscribersParams |
| Response | ChannelViewerListSubscribersResponse |
const channelViewer = await client.channelViewers.listSubscribers('workspaceId', {
page_number: 1,
page_size: 10,
});Query aggregated and chart-ready video analytics data.
This endpoint retrieves viewer analytics data. This endpoint is use for deep insights on the analytics data.
| Direction | Type |
|---|---|
| Request | VideoAnalyticChartDataParams |
| Response | VideoAnalyticChartDataResponse |
const videoAnalytic = await client.videoAnalytics.chartData({
metrics: [''],
workspace_id: '',
date_range: {
start_at: '2024-01-01',
end_at: '2024-01-01',
},
group_by: 'daily',
});This endpoint retrieves breakdown data of the given metrics by given breakdown field
| Direction | Type |
|---|---|
| Request | VideoAnalyticBreakdownDataParams |
| Response | VideoAnalyticBreakdownDataResponse |
const videoAnalytic = await client.videoAnalytics.breakdownData({
date_range: { start_at: '2026-07-20', end_at: '2026-08-20' },
filters: [],
breakdowns: [
{ name: 'custom_video_id', metric: 'views', page: 1, page_size: 10 },
{ name: 'custom_video_title', metric: 'completion_percent_by_views', page: 1, page_size: 10 },
],
workspace_id: '6694c405e63913eecf3cf5fb',
});This endpoint retrieves aggregated data of the given metrics.
| Direction | Type |
|---|---|
| Request | VideoAnalyticAggregatedDataParams |
| Response | VideoAnalyticAggregatedDataResponse |
const videoAnalytic = await client.videoAnalytics.aggregatedData({
aggregate: [
{
metric: 'views',
function: 'sum',
},
],
workspace_id: '',
timeframe: {},
});Endpoints to get organization details.
You can get organization data using this API.
| Direction | Type |
|---|---|
| Response | OrganizationDataFetchOrgResponse |
const organizationData = await client.organizationData.fetchOrg();Endpoints to get user details.
This endpoint gives information about the user account.
| Direction | Type |
|---|---|
| Response | UserDataFetchResponse |
const userData = await client.userData.fetch();Get detailed user activity logs for the entire organisation.
Get audit logs for the user activity in your organisation. Please note that this endpoint can only be accessed by owner and admin role users.
| Direction | Type |
|---|---|
| Request | AuditLogFetchParams |
| Response | AuditLogFetchResponse |
const auditLog = await client.auditLogs.fetch({
date_range: { start_at: '2026-08-25', end_at: '2026-08-29' },
});Get / change all details about billing and invoices.
Liost all invoices that are generated so far.
| Direction | Type |
|---|---|
| Response | BillingListInvoicesResponse |
const billing = await client.billing.listInvoices();Get billing details for this organization.
| Direction | Type |
|---|---|
| Response | BillingFetchDetailsResponse |
const billing = await client.billing.fetchDetails();Update billing details
| Direction | Type |
|---|---|
| Request | BillingUpdateDetailsParams |
| Response | BillingUpdateDetailsResponse |
const billing = await client.billing.updateDetails({
address_line: '',
city: '',
company_name: '',
country_code: '',
gst_number: '',
postal: '',
state_code: '',
});Get details about upcoming invoice.
| Direction | Type |
|---|---|
| Response | BillingFetchUpcomingInvoiceResponse |
const billing = await client.billing.fetchUpcomingInvoice();Create and manage live stream workspaces.
List all live stream workspaces.
| Direction | Type |
|---|---|
| Response | LiveStreamWorkspaceListResponse |
const liveStreamWorkspace = await client.liveStreamWorkspaces.list();Create live stream workspace.
| Direction | Type |
|---|---|
| Request | LiveStreamWorkspaceCreateParams |
| Response | LiveStreamWorkspaceCreateResponse |
const liveStreamWorkspace = await client.liveStreamWorkspaces.create({
name: '',
});Update live stream workspace.
| Direction | Type |
|---|---|
| Request | LiveStreamWorkspaceUpdateParams |
| Response | LiveStreamWorkspaceUpdateResponse |
const liveStreamWorkspace = await client.liveStreamWorkspaces.update('liveWorkspaceId');Delete the live stream workspace.
| Direction | Type |
|---|---|
| Response | LiveStreamWorkspaceDeleteResponse |
const liveStreamWorkspace = await client.liveStreamWorkspaces.delete('liveWorkspaceId');Get usage analytics for live streams.
Get usage analytics for your live streams.
| Direction | Type |
|---|---|
| Request | LiveStreamAnalyticUsageParams |
| Response | LiveStreamAnalyticUsageResponse |
const liveStreamAnalytic = await client.liveStreamAnalytics.usage({
date_range: {
start_at: '2024-01-01',
end_at: '2024-01-01',
},
group_by: 'daily',
metrics: ['bandwidth_consumption'],
});Search all video assets / playlists / folders etc across workspaces.
Search all video assets / playlists / folders etc across workspaces.
| Direction | Type |
|---|---|
| Request | GlobalSearchSearchParams |
| Response | GlobalSearchSearchResponse |
const globalSearch = await client.globalSearch.search({
search_query: 'searchQuery',
size: 20,
assets_offset: 0,
folders_offset: 0,
playlists_offset: 0,
channels_offset: 0,
});