Complete reference of every operation, grouped by resource. See the README for usage and configuration.
VideoAssetsSubtitleUploadAudioUploadVideoUsageAnalyticsMultipartUploadVideoProfilesVideoPlaylistsWebhooksImageSourcesImageUsageAnalyticsLiveStreamAssetsRecycleBinVideoWorkspacesFoldersChannelViewersVideoAnalyticsOrganizationDataUserDataAuditLogsBillingLiveStreamWorkspacesLiveStreamAnalyticsGlobalSearch
import os
from gumlet import Gumlet
client = Gumlet(
api_key=os.environ.get("API_KEY"),
)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 |
video_asset = client.video_assets.create(
input="http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8",
format="ABR",
title="Example Title",
workspace_id="<your workspace id>",
)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 |
video_asset = client.video_assets.upload(
collection_id="646df1c9173a4a2fcac180b4",
profile_id="646df1c9173a4a2fcac180b7",
format="ABR",
tag=["ball"],
description="some description",
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,
"border_radius": "11",
"font_color": "#000001",
"background_color": "#ffffff",
}
],
playlist_id="6597acd5ed6f26a9c5ca9633",
folder="697375fbfa2d1037283140e4",
)This endpoint retrieves the details of an asset that has previously been created.
| Direction | Type |
|---|---|
| Response | VideoAssetRetrieveDetailsResponse |
video_asset = client.video_assets.retrieve_details(
asset_id="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.
client.video_assets.delete(
asset_id="assetId",
)This endpoint allows users to update video asset that has previously been created.
| Direction | Type |
|---|---|
| Request | VideoAssetUpdateParams |
| Response | VideoAssetUpdateResponse |
video_asset = client.video_assets.update(
asset_id="<YOUR_ASSET_ID>",
title="Updated Title",
)Select frame from video to use as thumbnail.
| Direction | Type |
|---|---|
| Request | VideoAssetThumbnailSelectParams |
| Response | VideoAssetThumbnailSelectResponse |
video_asset = client.video_assets.thumbnail_select(
asset_id="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 |
video_asset = client.video_assets.thumbnail_upload(
asset_id="assetId",
)This endpoint will create/update video asset chapters.
| Direction | Type |
|---|---|
| Request | VideoAssetCreateUpdateChapterParams |
| Response | VideoAssetCreateUpdateChapterResponse |
video_asset = client.video_assets.create_update_chapter(
asset_id="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 |
video_asset = client.video_assets.list(
workspace_id="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 |
video_asset = client.video_assets.list_deprecated(
workspace_id="workspaceId",
sort_by="created_at",
order_by="desc",
)Delete multiple VOD assets at once.
| Direction | Type |
|---|---|
| Request | VideoAssetDeleteManyParams |
| Response | VideoAssetDeleteManyResponse |
video_asset = client.video_assets.delete_many(
asset_list=["64249a8858fd3a208b987702", "64784bae843b155b829bbf84"],
source_id="60bd2ba353ff754d28179ee6",
)Add / remove tags from multiple assets at once.
| Direction | Type |
|---|---|
| Request | VideoAssetTagManyParams |
| Response | VideoAssetTagManyResponse |
video_asset = client.video_assets.tag_many(
asset_list=["6221db301c8b821b0519fba0", "61e8f2726ec832ab2ac4fa6e"],
source_id="60bd2ba353ff754d28179ee6",
add_tags=["tag-1"],
remove_tags=["playlist-1"],
)Get video analytics for a single asset.
| Direction | Type |
|---|---|
| Request | VideoAssetAnalyticsParams |
| Response | VideoAssetAnalyticsResponse |
video_asset = client.video_assets.analytics(
asset_id="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 |
subtitle_upload = client.subtitle_upload.upload(
asset_id="assetId",
language_codes=["en"],
)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 |
subtitle_upload = client.subtitle_upload.complete(
asset_id="assetId",
upload_responses=[{"language_code": "en", "uploaded": True}],
)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 |
audio_upload = client.audio_upload.upload(
asset_id="assetId",
language_codes=["en"],
)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 |
audio_upload = client.audio_upload.complete(
asset_id="assetId",
upload_responses=[{"language_codes": ["en"], "uploaded": True}],
)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 |
video_usage_analytic = client.video_usage_analytics.retrieve(
metrics=["bandwidth_consumption", "asset_duration", "storage_unit", "top_assets", "drm_requests"],
date_range={"start_at": "2026-08-01", "end_at": "2026-08-20"},
top_assets_count="5",
top_assets_page="0",
group_by="hourly",
)This endpoint lists top streamed assets in a video collection
| Direction | Type |
|---|---|
| Request | VideoUsageAnalyticTopAssetsParams |
| Response | VideoUsageAnalyticTopAssetsResponse |
video_usage_analytic = client.video_usage_analytics.top_assets(
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 |
|---|---|
| Response | MultipartUploadRetrievePartURLResponse |
multipart_upload = client.multipart_upload.retrieve_part_url(
asset_id="assetId",
part_number="partNumber",
)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 |
multipart_upload = client.multipart_upload.complete(
asset_id="assetId",
)This call aborts multi-part upload and deletes the already uploaded parts from the storage.
| Direction | Type |
|---|---|
| Request | MultipartUploadAbortParams |
| Response | MultipartUploadAbortResponse |
multipart_upload = client.multipart_upload.abort(
asset_id="assetId",
)Lists all parts uploaded so far.
| Direction | Type |
|---|---|
| Request | MultipartUploadListParams |
| Response | MultipartUploadListResponse |
multipart_upload = client.multipart_upload.list(
asset_id="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 |
video_profile = client.video_profiles.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 |
video_profile = client.video_profiles.list()Update an existing profile. Settings provided in body parameters will only be updated in the existing profile.
| Direction | Type |
|---|---|
| Request | VideoProfileUpdateParams |
| Response | VideoProfileUpdateResponse |
video_profile = client.video_profiles.update(
path_profile_id="profileId",
body_profile_id="",
format="ABR",
)This endpoint retrieves the details of a video profile that has previously been created.
| Direction | Type |
|---|---|
| Response | VideoProfileRetrieveResponse |
video_profile = client.video_profiles.retrieve(
profile_id="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 |
video_profile = client.video_profiles.delete(
profile_id="profileId",
)Create and manage playlists, and control which assets belong to them.
Create new playlist inside video wprkspace
| Direction | Type |
|---|---|
| Request | VideoPlaylistCreateParams |
| Response | VideoPlaylistCreateResponse |
video_playlist = client.video_playlists.create(
collection_id="{{video-source-id}}",
title="Playlist-Title",
description="This is description for playlist.",
)Get all playlists for given workspace
| Direction | Type |
|---|---|
| Request | VideoPlaylistListAllParams |
| Response | VideoPlaylistListAllResponse |
video_playlist = client.video_playlists.list_all()This operation adds a single asset or a list of assets to a playlist.
| Direction | Type |
|---|---|
| Request | VideoPlaylistCreateAssetParams |
| Response | VideoPlaylistCreateAssetResponse |
video_playlist = client.video_playlists.create_asset(
playlist_id="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 |
video_playlist = client.video_playlists.delete_asset(
playlist_id="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 |
video_playlist = client.video_playlists.update(
playlist_id="playlistId",
title="Playlist-Title-Updated",
description="This is updated description",
position=6,
player_config={
"preload": True,
"autoplay": False,
"disable_seek": True,
"disable_player_controls": False,
"powered_by_gumlet_overlay": False,
"allow_drm_protected_videos": False,
"loop": False,
"player_color": "#6658ea",
"include_seo": True,
"subtitle_enabled": True,
"pixel_tags": {},
"logo_width": 51,
"logo_height": 100,
"dynamic_watermark": False,
"watermark_font_size": 1,
"watermark_font_color": "#ff0000",
"watermark_bg_color": "transparent",
"watermark_interval": 1000,
},
channel_visibility=False,
)Deletes this playlist.
client.video_playlists.delete(
playlist_id="playlistId",
)Get a list of all assets inside playlist. You can choose in which order are assets returned.
| Direction | Type |
|---|---|
| Request | VideoPlaylistListAssetsParams |
| Response | VideoPlaylistListAssetsResponse |
video_playlist = client.video_playlists.list_assets(
playlist_id="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 |
video_playlist = client.video_playlists.reorder_asset(
playlist_id="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 |
webhook = client.webhooks.create(
url="",
secret_token="",
triggers=[""],
sources=[""],
)List all webhooks.
| Direction | Type |
|---|---|
| Response | WebhookListResponse |
webhook = client.webhooks.list()Update a webhook listener.
| Direction | Type |
|---|---|
| Request | WebhookUpdateParams |
| Response | WebhookUpdateResponse |
webhook = client.webhooks.update(
webhook_id="webhookId",
)Delete webhook listener endpoint.
| Direction | Type |
|---|---|
| Response | WebhookDeleteResponse |
webhook = client.webhooks.delete(
webhook_id="webhookId",
)Get logs history for a given webhook.
| Direction | Type |
|---|---|
| Response | WebhookHistoryResponse |
webhook = client.webhooks.history(
webhook_id="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 |
image_source = client.image_sources.create(
namespace="google-demo",
type="webfolder",
webfolder={"base_url": "https://www.google.com"},
)This endpoint list image sources which are assigned to the user or token.
| Direction | Type |
|---|---|
| Request | ImageSourceListParams |
| Response | ImageSourceListResponse |
image_source = client.image_sources.list(
offset=0,
size=20,
)Get all details about image source.
| Direction | Type |
|---|---|
| Response | ImageSourceRetrieveResponse |
image_source = client.image_sources.retrieve(
image_source_id="imageSourceId",
)This endpoint allows users to update image source that has previously been created.
| Direction | Type |
|---|---|
| Request | ImageSourceUpdateParams |
| Response | ImageSourceUpdateResponse |
image_source = client.image_sources.update(
image_source_id="imageSourceId",
type="aws",
aws={
"bucket_name": "my-bucket-test",
"bucket_region": "ap-southeast-1",
"access_key": "BQUA6QFXVWHAAB6IO2X1",
"secret": "aws_secret",
},
)This endpoint removes a image source. All image delivery using this subdomain will be stopped.
| Direction | Type |
|---|---|
| Response | ImageSourceDeleteResponse |
image_source = client.image_sources.delete(
image_source_id="imageSourceId",
)You can purge cache for any image by using our cache purge API.
| Direction | Type |
|---|---|
| Request | ImageSourcePurgeCacheParams |
| Response | ImageSourcePurgeCacheResponse |
image_source = client.image_sources.purge_cache(
subdomain="subdomain",
paths=["image.jpeg", "image2.png"],
)You can purge the cache for any image path by using this cache purge API.
| Direction | Type |
|---|---|
| Request | ImageSourcePurgeParams |
| Response | ImageSourcePurgeResponse |
image_source = client.image_sources.purge(
source_id="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 |
image_usage_analytic = client.image_usage_analytics.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 |
live_stream_asset = client.live_stream_assets.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 |
live_stream_asset = client.live_stream_assets.update(
live_asset_id="",
)This endpoint retrieves the details of a live video asset that has previously been created.
| Direction | Type |
|---|---|
| Response | LiveStreamAssetRetrieveStatusResponse |
live_stream_asset = client.live_stream_assets.retrieve_status(
live_asset_id="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 |
live_stream_asset = client.live_stream_assets.delete(
live_asset_id="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 |
live_stream_asset = client.live_stream_assets.complete(
live_asset_id="liveAssetId",
)This endpoint lists live assets on the basis of status for the given live_source_id.
| Direction | Type |
|---|---|
| Request | LiveStreamAssetFilterParams |
| Response | LiveStreamAssetFilterResponse |
live_stream_asset = client.live_stream_assets.filter(
live_source_id="liveSourceId",
)Start a live stream.
client.live_stream_assets.start(
live_asset_id="liveAssetId",
)Generate presigned upload URLs for live stream thumbnails. Supported thumbnail states are preparing, disconnected, and end.
| Direction | Type |
|---|---|
| Request | LiveStreamAssetUploadParams |
| Response | LiveStreamAssetUploadResponse |
live_stream_asset = client.live_stream_assets.upload(
live_asset_id="68c406b147f9ad0c0d584ce2",
statuses="preparing",
)This endpoint retrieves the history of a live video asset that has previously been created.
| Direction | Type |
|---|---|
| Response | LiveStreamAssetStatusHistoryResponse |
live_stream_asset = client.live_stream_assets.status_history(
live_asset_id="liveAssetId",
)Endpoints to list deleted assets and restore them.
Recovers a deleted asset from the recycle bin.
| Direction | Type |
|---|---|
| Request | RecycleBinRecoverParams |
client.recycle_bin.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 |
recycle_bin = client.recycle_bin.list(
size=20,
workspace_id="workspace_id",
)Create and manage video workspaces.
This endpoint list video workspace which are assigned to the user or token.
| Direction | Type |
|---|---|
| Request | VideoWorkspaceListParams |
| Response | VideoWorkspaceListResponse |
video_workspace = client.video_workspaces.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 |
video_workspace = client.video_workspaces.create(
name="zoom-workspace",
type="direct-upload",
zoom={"secret": "yourSecret"},
)This endpoint allows users to update video workspace that has previously been created.
| Direction | Type |
|---|---|
| Request | VideoWorkspaceUpdateParams |
| Response | VideoWorkspaceUpdateResponse |
video_workspace = client.video_workspaces.update(
workspace_id="workspaceId",
name="awsrename",
default_profile_id="646df1c9173a4a2fcac180b7",
type="aws",
aws={
"bucket_name": "my-bucket-test",
"bucket_region": "ap-southeast-1",
"access_key": "BQUA6QFXVWHAAB6IO2X1",
"secret": "aws_secret",
},
)This endpoint get all the data of video workspace that has previously been created.
| Direction | Type |
|---|---|
| Response | VideoWorkspaceRetrieveResponse |
video_workspace = client.video_workspaces.retrieve(
workspace_id="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 |
video_workspace = client.video_workspaces.delete(
workspace_id="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 |
folder = client.folders.create(
workspace_id="workspaceId",
name="Course Assets",
parent_id="",
)List folders for a video workspace. Use parent_id to list only folders inside a specific parent folder.
| Direction | Type |
|---|---|
| Request | FolderListParams |
| Response | FolderListResponse |
folder = client.folders.list(
workspace_id="workspaceId",
)Get a single folder by id.
| Direction | Type |
|---|---|
| Response | FolderRetrieveResponse |
folder = client.folders.retrieve(
workspace_id="workspaceId",
folder_id="folderId",
)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 |
folder = client.folders.update(
workspace_id="workspaceId",
folder_id="folderId",
name="Course Assets Updated",
)Delete a folder. Descendant folders and assets inside them are deleted by the backend workflow.
| Direction | Type |
|---|---|
| Response | FolderDeleteResponse |
folder = client.folders.delete(
workspace_id="workspaceId",
folder_id="folderId",
)Remove one or more assets from their current folder assignment inside the workspace.
| Direction | Type |
|---|---|
| Request | FolderDeleteAssetsParams |
| Response | FolderDeleteAssetsResponse |
folder = client.folders.delete_assets(
workspace_id="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 |
channel_viewer = client.channel_viewers.invite(
video_workspace_id="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 |
channel_viewer = client.channel_viewers.delete(
video_workspace_id="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 |
channel_viewer = client.channel_viewers.invite_csv(
video_workspace_id="videoWorkspaceId",
viewers_csv=b"viewers.csv",
)List all channel subscribers.
| Direction | Type |
|---|---|
| Request | ChannelViewerListSubscribersParams |
| Response | ChannelViewerListSubscribersResponse |
channel_viewer = client.channel_viewers.list_subscribers(
workspace_id="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 |
video_analytic = client.video_analytics.chart_data(
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 |
video_analytic = client.video_analytics.breakdown_data(
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 |
video_analytic = client.video_analytics.aggregated_data(
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 |
organization_data = client.organization_data.fetch_org()Endpoints to get user details.
This endpoint gives information about the user account.
| Direction | Type |
|---|---|
| Response | UserDataFetchResponse |
user_data = client.user_data.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 |
audit_log = client.audit_logs.fetch(
date_range={"start_at": "2026-08-25", "end_at": "2026-08-29"},
page_number=1,
page_size=100,
)Get / change all details about billing and invoices.
Liost all invoices that are generated so far.
| Direction | Type |
|---|---|
| Response | BillingListInvoicesResponse |
billing = client.billing.list_invoices()Get billing details for this organization.
| Direction | Type |
|---|---|
| Response | BillingFetchDetailsResponse |
billing = client.billing.fetch_details()Update billing details
| Direction | Type |
|---|---|
| Request | BillingUpdateDetailsParams |
| Response | BillingUpdateDetailsResponse |
billing = client.billing.update_details(
address_line="",
city="",
company_name="",
country_code="",
gst_number="",
postal="",
state_code="",
)Get details about upcoming invoice.
| Direction | Type |
|---|---|
| Response | BillingFetchUpcomingInvoiceResponse |
billing = client.billing.fetch_upcoming_invoice()Create and manage live stream workspaces.
List all live stream workspaces.
| Direction | Type |
|---|---|
| Response | LiveStreamWorkspaceListResponse |
live_stream_workspace = client.live_stream_workspaces.list()Create live stream workspace.
| Direction | Type |
|---|---|
| Request | LiveStreamWorkspaceCreateParams |
| Response | LiveStreamWorkspaceCreateResponse |
live_stream_workspace = client.live_stream_workspaces.create(
name="",
)Update live stream workspace.
| Direction | Type |
|---|---|
| Request | LiveStreamWorkspaceUpdateParams |
| Response | LiveStreamWorkspaceUpdateResponse |
live_stream_workspace = client.live_stream_workspaces.update(
live_workspace_id="liveWorkspaceId",
name="live-stream-collections",
video_source_id="67bea1d66ca0059a95bf7de9",
)Delete the live stream workspace.
| Direction | Type |
|---|---|
| Response | LiveStreamWorkspaceDeleteResponse |
live_stream_workspace = client.live_stream_workspaces.delete(
live_workspace_id="liveWorkspaceId",
)Get usage analytics for live streams.
Get usage analytics for your live streams.
| Direction | Type |
|---|---|
| Request | LiveStreamAnalyticUsageParams |
| Response | LiveStreamAnalyticUsageResponse |
live_stream_analytic = client.live_stream_analytics.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 |
global_search = client.global_search.search(
search_query="search_query",
size=20,
assets_offset=0,
folders_offset=0,
playlists_offset=0,
channels_offset=0,
)