Skip to content

Latest commit

 

History

History
1582 lines (1167 loc) · 44.1 KB

File metadata and controls

1582 lines (1167 loc) · 44.1 KB

Gumlet TypeScript API

Complete reference of every operation, grouped by resource. See the README for usage and configuration.

Contents

Setup

import Gumlet from '@gumlet/nodejs-sdk';

const client = new Gumlet({
  apiKey: process.env['API_KEY'], // defaults to the API_KEY env var
});

VideoAssets

Upload, manage, and retrieve video assets, including thumbnails, subtitles, audio tracks, and chapters.

Create Asset

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',
});

Create Asset Direct Upload

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',
});

Asset Details

This endpoint retrieves the details of an asset that has previously been created.

Direction Type
Response VideoAssetRetrieveDetailsResponse
const videoAsset = await client.videoAssets.retrieveDetails('assetId');

Delete Asset

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');

Update Asset

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' });

Update thumbnail from video

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 });

Update thumbnail via upload

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');

Create/Update Video Asset Chapters

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 Assets

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',
});

List Assets

[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',
});

Bulk Delete

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'],
});

Bulk Tag

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'],
});

Asset Analytics

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'],
});

SubtitleUpload

Add subtitles to an existing asset.

Upload Subtitles

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');

Complete Subtitle Upload

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');

AudioUpload

Add additional audio tracks to an existing asset.

Add Audio

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');

Complete Audio Upload

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');

VideoUsageAnalytics

Query video analytics and streaming duration usage data.

Video Usage Analytics

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',
});

Top Streamed Assets

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',
});

MultipartUpload

Upload large video files in parts and complete the multipart upload.

Get Part Upload URL

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',
});

Complete Multipart Upload

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');

Abort Upload

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');

List Uploads

Lists all parts uploaded so far.

Direction Type
Request MultipartUploadListParams
Response MultipartUploadListResponse
const multipartUpload = await client.multipartUpload.list('assetId');

VideoProfiles

Create and manage encoding/output profiles for video assets.

Create Profile

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',
});

List Profiles

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 Profile

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',
});

Get Profile

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');

Delete Profile

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');

VideoPlaylists

Create and manage playlists, and control which assets belong to them.

Create Playlist

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

Get all playlists for given workspace

Direction Type
Request VideoPlaylistListAllParams
Response VideoPlaylistListAllResponse
const videoPlaylist = await client.videoPlaylists.listAll();

Add asset to playlist

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' },
  ],
});

Remove asset from playlist

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'],
});

Update Playlist

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');

delete

Deletes this playlist.

await client.videoPlaylists.delete('playlistId');

Get playlist assets

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',
});

Arrange Videos In Playlist

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,
});

Webhooks

Configure webhooks for account and asset events.

Create Webhook

Creates a new webhook listener.

Direction Type
Request WebhookCreateParams
Response WebhookCreateResponse
const webhook = await client.webhooksResource.create({
  url: '',
  secret_token: '',
  triggers: [''],
  sources: [''],
});

List Webhooks

List all webhooks.

Direction Type
Response WebhookListResponse
const webhook = await client.webhooksResource.list();

Update Webhook

Update a webhook listener.

Direction Type
Request WebhookUpdateParams
Response WebhookUpdateResponse
const webhook = await client.webhooksResource.update('webhookId');

Delete Webhook

Delete webhook listener endpoint.

Direction Type
Response WebhookDeleteResponse
const webhook = await client.webhooksResource.delete('webhookId');

Get History

Get logs history for a given webhook.

Direction Type
Response WebhookHistoryResponse
const webhook = await client.webhooksResource.history('webhookId');

ImageSources

Manage image sources, view image analytics, and purge the image cache.

Create Source

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',
});

List Sources

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 Image Source

Get all details about image source.

Direction Type
Response ImageSourceRetrieveResponse
const imageSource = await client.imageSources.retrieve('imageSourceId');

Update Source

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');

Delete Source

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');

Purge Cache

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');

Purge Image Cache

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'] });

ImageUsageAnalytics

Query aggregated and chart-ready image usage analytics data.

Image Usage Analytics

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',
});

LiveStreamAssets

Create, control, and monitor live stream assets.

Create Live Asset

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: '',
});

Update Live Asset

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: '',
});

Get Live Asset Status

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');

Delete Live Asset

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');

Complete Live Stream

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');

Filter Live Assets

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

Start a live stream.

await client.liveStreamAssets.start('liveAssetId');

Upload Live Thumbnails

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'],
});

Get Live Asset Status History

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');

RecycleBin

Endpoints to list deleted assets and restore them.

Recover Deleted Asset

Recovers a deleted asset from the recycle bin.

Direction Type
Request RecycleBinRecoverParams
await client.recycleBin.recover({
  asset_id: '',
});

List Recycle Bin

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',
});

VideoWorkspaces

Create and manage video workspaces.

List 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',
});

Create Workspace

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' },
});

Update Workspace

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');

Get Workspace

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');

Delete Workspace

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');

Folders

Organize video assets into folders within a workspace.

Create Folder

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

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 Folder

Get a single folder by id.

Direction Type
Request FolderRetrieveParams
Response FolderRetrieveResponse
const folder = await client.folders.retrieve('folderId', {
  workspace_id: 'workspaceId',
});

Update Folder

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 Folder

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 Assets From Folder

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'],
});

ChannelViewers

Invite and remove viewers on a private video channel.

Invite Channel Viewers

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 Channel Viewers

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 Channel Viewers via CSV

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 Subscribers

List all channel subscribers.

Direction Type
Request ChannelViewerListSubscribersParams
Response ChannelViewerListSubscribersResponse
const channelViewer = await client.channelViewers.listSubscribers('workspaceId', {
  page_number: 1,
  page_size: 10,
});

VideoAnalytics

Query aggregated and chart-ready video analytics data.

Viewer Analytics

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',
});

Breakdown Data

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',
});

Aggregated Data

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: {},
});

OrganizationData

Endpoints to get organization details.

Get Organization Details

You can get organization data using this API.

Direction Type
Response OrganizationDataFetchOrgResponse
const organizationData = await client.organizationData.fetchOrg();

UserData

Endpoints to get user details.

Get User

This endpoint gives information about the user account.

Direction Type
Response UserDataFetchResponse
const userData = await client.userData.fetch();

AuditLogs

Get detailed user activity logs for the entire organisation.

Fetch Audit Logs

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' },
});

Billing

Get / change all details about billing and invoices.

List Invoices

Liost all invoices that are generated so far.

Direction Type
Response BillingListInvoicesResponse
const billing = await client.billing.listInvoices();

Get Billing Details

Get billing details for this organization.

Direction Type
Response BillingFetchDetailsResponse
const billing = await client.billing.fetchDetails();

Update Billing Details

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: '',
});

Upcoming Invoice

Get details about upcoming invoice.

Direction Type
Response BillingFetchUpcomingInvoiceResponse
const billing = await client.billing.fetchUpcomingInvoice();

LiveStreamWorkspaces

Create and manage live stream workspaces.

List Workspaces

List all live stream workspaces.

Direction Type
Response LiveStreamWorkspaceListResponse
const liveStreamWorkspace = await client.liveStreamWorkspaces.list();

Create Workspace

Create live stream workspace.

Direction Type
Request LiveStreamWorkspaceCreateParams
Response LiveStreamWorkspaceCreateResponse
const liveStreamWorkspace = await client.liveStreamWorkspaces.create({
  name: '',
});

Update Workspace

Update live stream workspace.

Direction Type
Request LiveStreamWorkspaceUpdateParams
Response LiveStreamWorkspaceUpdateResponse
const liveStreamWorkspace = await client.liveStreamWorkspaces.update('liveWorkspaceId');

Delete Workspace

Delete the live stream workspace.

Direction Type
Response LiveStreamWorkspaceDeleteResponse
const liveStreamWorkspace = await client.liveStreamWorkspaces.delete('liveWorkspaceId');

LiveStreamAnalytics

Get usage analytics for live streams.

Usage Analytics

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'],
});

GlobalSearch

Search all video assets / playlists / folders etc across workspaces.

Global Search

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,
});