Gumlet MCP
An MCP server for Gumlet that allows AI agents to retrieve video analytics data. It supports reading viewer metrics grouped by breakdown fields or aggregated over time ranges, enabling insights into views, unique views, and engagement without modifying assets.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.gumlet.com/mcp/v1What its tools do
95 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (42)
insights_breakdown_datainsights_aggregated_datalist_sdksget_sdkimport_from_vimeoget_asset_detailsretrieve_analyticstop_assetsretrieve_part_urllist_profilesget_profileget_all_playlistsget_playlist_assetslist_webhookslist_sourcesget_image_sources_source_idretrieve_image_analyticsget_live_asset_statusfilter_live_assetslist_workspacesget_workspacelist_foldersget_folderlist_assetsasset_status_historyviewer_analytics_dataanalytics_breakdown_dataanalytics_aggregated_datafetch_orgfetch_userfetch_audit_logslist_recycle_binasset_analyticslist_channel_subscriberswebhook_historylist_invoicesfetch_billing_detailsfetch_upcoming_invoicelist_live_workspaceslive_usage_analyticsglobal_searchmultipart_upload_list
Can change data (53)
create_assetcreate_asset_direct_uploaddelete_assetupdate_assetthumbnail_selectthumbnail_uploadupload_subtitlescomplete_subtitle_uploadasset_audio_uploadcomplete_audio_uploadcreate_update_chaptercomplete_multipart_uploadcreate_profileupdate_profiledelete_profilecreate_playlistadd_asset_playlistremove_asset_playlistupdate_playlistdelete_playlistreorder_asset_playlistcreate_webhookupdate_webhookdelete_webhookcreate_image_sourceupdate_image_sourcedelete_sourcepurge_image_cachecreate_live_assetupdate_live_assetdelete_live_assetcomplete_live_streamrecoverstart_livethumbnail_upload_livecreate_workspaceupdate_workspacedelete_workspacecreate_folderupdate_folderdelete_folderremove_assets_folderinvite_channel_viewersremove_channel_viewersinvite_channel_viewers_csvimage_purgeassets_delete_manyassets_tag_manyupdate_billing_detailslive_workspace_createlive_workspace_updatelive_workspace_deletemultipart_upload_abort
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Read viewer metrics for a workspace grouped by a breakdown field
- Retrieve aggregated data of given metrics like views and playing time
- Filter analytics data by specific attributes like browser or country
Source and maintenance
Protocol and capabilities
- Server
- Gumlet 3.4.10
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 95 advertised
- Resources
- 2 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": true
},
"logging": {},
"prompts": {
"listChanged": true
},
"resources": {
"subscribe": false,
"listChanged": true
},
"extensions": {
"io.modelcontextprotocol/ui": {}
},
"experimental": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
95 advertised
insights_breakdown_data
Read viewer metrics for one workspace, grouped by a breakdown field, for a date range of at most 60 days. This does not change assets or delivery.
{
"type": "object",
"required": [],
"properties": {
"filters": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"value"
],
"properties": {
"name": {
"enum": [
"meta_browser",
"meta_operating_system",
"meta_operating_system_version",
"meta_device_category",
"meta_device_manufacturer",
"meta_device_name",
"meta_device_display_width",
"meta_device_display_height",
"meta_country",
"meta_city",
"meta_region",
"player_software",
"player_software_version",
"player_language_code",
"player_name",
"meta_page_url",
"meta_asn",
"custom_user_id",
"custom_user_email",
"custom_video_id",
"custom_video_title",
"video_source_url",
"custom_video_variant_name",
"custom_video_language",
"custom_video_variant",
"custom_data_1",
"custom_data_2",
"custom_data_3",
"custom_data_4",
"custom_data_5"
],
"type": "string",
"description": "Name of the breakdown to filter data on."
},
"value": {
"type": "string",
"description": "Value to be matched for the given filter name. Currently we support exact matches."
},
"operator": {
"enum": [
"equals",
"does not equal",
"contains",
"does not contain",
"is set",
"is not set"
],
"type": "string",
"default": "equals",
"description": "Operator to be used while filtering the data"
}
}
},
"description": "Build *segments* of users using multiple filters on the data, `value` should be an *exact match*"
},
"breakdowns": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"metric"
],
"properties": {
"name": {
"enum": [
"meta_browser",
"meta_operating_system",
"meta_operating_system_version",
"meta_device_category",
"meta_device_manufacturer",
"meta_device_name",
"meta_device_display_width",
"meta_device_display_height",
"meta_country",
"meta_city",
"meta_region",
"player_software",
"player_software_version",
"player_language_code",
"player_name",
"meta_page_url",
"meta_asn",
"custom_user_id",
"custom_user_email",
"custom_video_id",
"custom_video_title",
"video_source_url",
"custom_video_variant_name",
"custom_video_language",
"custom_video_variant",
"custom_data_1",
"custom_data_2",
"custom_data_3",
"custom_data_4",
"custom_data_5"
],
"type": "string",
"description": "Name of the field to break down the data by."
},
"page": {
"type": "integer",
"default": 1,
"description": "Page number for paginated results."
},
"metric": {
"enum": [
"views",
"unique_views",
"impressions",
"completion_percent_by_views",
"playing_time",
"concurrent_users",
"widget_form_submitted",
"cta_clicks"
],
"type": "string",
"description": "The metric to retrieve breakdown data for."
},
"page_size": {
"type": "integer",
"default": 100,
"description": "Number of results per page."
}
}
},
"maxItems": 3,
"minItems": 1,
"description": "Breakdown fields and metrics to retrieve data for. Supports 1 to 3 breakdowns per request."
},
"date_range": {
"type": "object",
"required": [
"start_at",
"end_at"
],
"properties": {
"end_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
},
"start_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
}
},
"description": "The timeframe to get the data for. The maximum range between start_at and end_at is 60 days."
},
"workspace_id": {
"type": "string",
"description": "The five to ten character unique identifier of the Gumlet workspace ID available on the Video Workspaces."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}insights_aggregated_data
This endpoint retrieves aggregated data of the given metrics.
{
"type": "object",
"required": [],
"properties": {
"filters": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"value"
],
"properties": {
"name": {
"enum": [
"meta_browser",
"meta_operating_system",
"meta_operating_system_version",
"meta_device_category",
"meta_device_manufacturer",
"meta_device_name",
"meta_device_display_width",
"meta_device_display_height",
"meta_country",
"meta_city",
"meta_region",
"player_software",
"player_software_version",
"player_height_pixels",
"player_width_pixels",
"player_language_code",
"meta_page_url",
"meta_asn",
"custom_user_id",
"user_name",
"user_email",
"custom_video_id",
"custom_video_title",
"video_source_url",
"video_source_hostname",
"video_source_format",
"custom_video_language",
"custom_video_variant",
"custom_data_1",
"custom_data_2",
"custom_data_3",
"custom_data_4",
"custom_data_5"
],
"type": "string",
"description": "Name of the breakdown to filter data on."
},
"value": {
"type": "string",
"description": "Value to be matched for the given filter name. Currently we support exact matches."
},
"operator": {
"enum": [
"equals",
"does not equal",
"contains",
"does not contain",
"is set",
"is not set"
],
"type": "string",
"default": "equals",
"description": "Operator to be used while filtering the data"
}
}
},
"description": "Get aggregations for metrics with multiple filters, `value` should be an exact match"
},
"aggregate": {
"type": "array",
"items": {
"type": "object",
"required": [
"metric",
"function"
],
"properties": {
"metric": {
"enum": [
"views",
"unique_views",
"completion_percent_by_views",
"playing_time",
"concurrent_users",
"impressions",
"widget_form_submitted",
"cta_clicks"
],
"type": "string",
"description": "The metric to be aggregated for this request."
},
"function": {
"enum": [
"sum",
"average"
],
"type": "string",
"description": "Aggregation function which is to be used."
}
}
},
"description": "Aggregate multiple metrics at the same time"
},
"timeframe": {
"type": "object",
"required": [
"start_at",
"end_at"
],
"properties": {
"end_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
},
"start_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
}
},
"description": "The timeframe to get the data for. The maximum range between start_at and end_at is 60 days."
},
"workspace_id": {
"type": "string",
"description": "The unique identifier of the Gumlet workspace ID available on the Video Workspaces."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_sdks
List official Gumlet client SDKs so agents can discover them. Python: pip install gumlet (https://pypi.org/project/gumlet/). Node.js: npm install @gumlet/nodejs-sdk (https://www.npmjs.com/package/@gumlet/nodejs-sdk). Use this when the user wants to integrate Gumlet in application code. Do not use this to call the live Gumlet API; use the API tools instead.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"type": "object",
"required": [
"result"
],
"properties": {
"result": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
}
},
"x-fastmcp-wrap-result": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_sdk
Get install commands and a usage snippet for an official Gumlet SDK. language=python returns pip install gumlet (https://pypi.org/project/gumlet/). language=nodejs returns npm install @gumlet/nodejs-sdk (https://www.npmjs.com/package/@gumlet/nodejs-sdk). Aliases: py, node, js, ts, javascript, typescript, npm, pypi.
{
"type": "object",
"required": [
"language"
],
"properties": {
"language": {
"type": "string"
}
},
"additionalProperties": false
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}import_from_vimeo
Tell the user how to migrate videos from Vimeo to Gumlet. Vimeo import exists only in the Gumlet dashboard: Dashboard → Video → Import videos (https://dash.gumlet.com/video/import-videos/). Use this when the user asks to import, migrate, or move videos from Vimeo. This tool does not import videos and does not call the Gumlet API. Do not use create_asset as a substitute for the Vimeo importer.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [],
"properties": {
"pad": {
"type": "object",
"properties": {
"top": {
"type": "string",
"description": "Width of padding on the top side. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `%5`**"
},
"left": {
"type": "string",
"description": "Width of padding on the left side. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
},
"color": {
"type": "string",
"description": "Color of padding area. **Default: `black`**"
},
"right": {
"type": "string",
"description": "Width of padding on the right side. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
},
"bottom": {
"type": "string",
"description": "Width of padding on the bottom side. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `%5`**"
}
},
"description": "This transformation can be used to add padding to the video.",
"x-apidog-orders": [
"top",
"left",
"bottom",
"right",
"color"
]
},
"tag": {
"type": "array",
"items": {
"type": "string",
"x-stoplight": {
"id": "ukzi2mra8hepj"
}
},
"description": "Specify a text string or identifier which can identify an asset or bunch of assets later."
},
"crop": {
"type": "object",
"required": [
"width",
"height"
],
"properties": {
"width": {
"type": "string",
"description": "Width of the cropping area in pixels."
},
"height": {
"type": "string",
"description": "Height of the cropping area in pixels."
},
"vertical_margin": {
"type": "string",
"description": "This parameter defines the vertical coordinate value of the upper-left corner of the cropping area. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `0`**"
},
"horizontal_margin": {
"type": "string",
"description": "This parameter defines the horizontal coordinate value of the upper-left corner of the cropping area. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
}
},
"description": "This transformation can be used to crop the video by defining a rectangular area within the dimensions of the output video.",
"x-apidog-orders": [
"horizontal_margin",
"vertical_margin",
"width",
"height"
]
},
"trim": {
"type": "object",
"required": [
"start_offset",
"end_offset"
],
"properties": {
"duration": {
"type": "number",
"format": "float",
"description": "Duration can be used in conjunction with `start_offset` parameter, can be specified in number of seconds."
},
"end_offset": {
"type": "number",
"format": "float",
"description": "End offset in number of seconds or in `HH:MM:SS` format."
},
"start_offset": {
"type": "number",
"format": "float",
"description": "Start offset in number of seconds or in `HH:MM:SS` format."
}
},
"description": "Trim transformation can be used to trim videos based on time duration.",
"x-apidog-orders": [
"start_offset",
"end_offset",
"duration"
]
},
"input": {
"type": "string",
"description": "URL or web address of a file that Gumlet should download to create a new asset."
},
"title": {
"type": "string",
"description": "Specify a text string or identifier which can be used for filtering or searching the asset."
},
"width": {
"type": "string",
"description": "Resize video with the given width. Can be an absolute value in pixels or a percentage value with the `%` suffix. Specified values greater than the original asset width will be ignored. Applicable only when specified format is `MP4`."
},
"folder": {
"type": "string",
"description": "Add this asset to an existing folder by `folder_id`."
},
"format": {
"enum": [
"ABR",
"MP4"
],
"type": "string",
"description": "Transcode and deliver the asset in the requested format. The options can be one of `ABR` (HLS + DASH) and `MP4`."
},
"height": {
"type": "string",
"description": "Resize video with the given height. Can be an absolute value in pixels or a percentage value with the `%` suffix. Specified values greater than the original asset height will be ignored. Applicable only when specified format is `MP4`."
},
"metadata": {
"type": "object",
"properties": {},
"description": "Add your metadata you want to associate with this asset.<br/> Example: <br/> <code> { \"internal_video_id\" : \"123Abc\" } </code>",
"x-apidog-orders": [],
"additionalProperties": {}
},
"audio_only": {
"type": "boolean",
"description": "This flag allows Gumlet to transcode and deliver audio-only in the specified format. In this case, video transformation and thumbnails/animated GIFs would not be created. **Default: `false`**"
},
"enable_drm": {
"type": "boolean",
"description": "Enable DRM encryption for transcoded videos. Gumlet supports Widevine and FairPlay DRMs."
},
"mp4_access": {
"type": "boolean",
"description": "Creates `MP4` version for download purpose in case of `MPEG-DASH` or `HLS` delivery format. **Default: `false`**"
},
"profile_id": {
"type": "string",
"description": "Provide `profile_id` of the previously created video profile. This parameter will override all the parameters (except `input` and `collection_id`) from the video profile."
},
"resolution": {
"type": "string",
"description": "Required resolutions of the transformed asset in case of HLS or MPEG-DASH delivery format. Can be a comma-separated string out of the following values: `240p`, `360p`, `480p`, `540p`, `720p`, and `1080p`. Resized rendition will retain the input aspect ratio."
},
"description": {
"type": "string",
"description": "Attach some textual data with the asset. This field is neither searchable nor filterable."
},
"playlist_id": {
"type": "string",
"description": "Add this asset to a playlist."
},
"animated_gif": {
"type": "object",
"properties": {
"fps": {
"type": "string",
"description": "The frame rate of the generated GIF. Defaults to `15` fps. Max `30` fps."
},
"width": {
"type": "string",
"description": "The width in pixels (or in percentage value of asset width) of the animated GIF. Max width is `640px`."
},
"height": {
"type": "string",
"description": "The height in pixels (or in percentage value of asset height) of the animated GIF. Max height is `640px`."
},
"end_offset": {
"type": "string",
"description": "The time (in seconds or `HH:MM:SS` format) of the video timeline where the GIF ends. Defaults to `10` seconds after the start_offset. Maximum duration of GIF is limited to `10` seconds."
},
"start_offset": {
"type": "string",
"description": "The time (in seconds or `HH:MM:SS` format) of the video timeline where the animated gif should begin. **Default: `0`**"
}
},
"description": "Create an animated GIF from the video.",
"x-apidog-orders": [
"start_offset",
"end_offset",
"width",
"height",
"fps"
]
},
"text_overlay": {
"type": "object",
"required": [
"text"
],
"properties": {
"box": {
"type": "boolean",
"description": "This parameter allows drawing a rectangular box over the overlaid text. **Default: `false`**"
},
"font": {
"type": "string",
"description": "Font family type for text. **Default: `sans`**"
},
"text": {
"type": "string",
"description": "Text to be overlaid on video."
},
"color": {
"type": "string",
"description": "Font color for text. **Default: `black`**"
},
"opacity": {
"type": "string",
"description": "Overlay text opacity can be specified with opacity parameter where value can be between `0` and `100` where `0` is considered completely transparent and `100` is considered completely opaque. **Default: `100`**"
},
"box_color": {
"type": "string",
"description": "Box color can be specified with this parameter. **Default: `white`**"
},
"font_size": {
"type": "string",
"description": "Font size in pixels. **Default: `16`**"
},
"box_border": {
"type": "string",
"description": "Padding between the box border and the text can be specified with this parameter in pixels. **Default: `0`**"
},
"box_opacity": {
"type": "string",
"description": "Box opacity can be specified with this parameter. **Default: `100`**"
},
"vertical_align": {
"type": "string",
"description": "This parameter specifies the vertical alignment of the overlaid text and can be either `top` or `bottom`. **Default: `bottom`**"
},
"vertical_margin": {
"type": "string",
"description": "This parameter defines the vertical coordinate value of the corner (determined by vertical_align) of the overlay area. Values can be an absolute number of pixels relative to the video height. **Default: `0`**"
},
"horizontal_align": {
"type": "string",
"description": "This parameter specifies the horizontal alignment of the overlaid text and can be either `left` or `right`. **Default: `right`**"
},
"horizontal_margin": {
"type": "string",
"description": "This parameter defines the horizontal coordinate value of the corner (determined by `horizontal_align`) of the overlay area. Values can be an absolute number of pixels relative to the video width. **Default: `0`**"
}
},
"description": "Text overlay can be used to brand a video or add a label in the form of text.",
"x-apidog-orders": [
"text",
"horizontal_align",
"vertical_align",
"horizontal_margin",
"vertical_margin",
"color",
"font",
"font_size",
"opacity",
"box",
"box_color",
"box_opacity",
"box_border"
]
},
"workspace_id": {
"type": "string",
"description": "Gumlet video workspace id."
},
"image_overlay": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "This is the required parameter for image overlay; it can be a URL to an image that needs to be overlaid."
},
"width": {
"type": "string",
"description": "Width of the overlaid image. **Default: `image width`**"
},
"height": {
"type": "string",
"description": "Height of the overlaid image. **Default: `image height`**"
},
"vertical_align": {
"type": "string",
"description": "This parameter specifies the vertical alignment of the overlaid image and can be either `top` or `bottom`. **Default: `bottom`**"
},
"vertical_margin": {
"type": "string",
"description": "This parameter defines the vertical coordinate value of the corner (determined by `vertical_align`) of the overlay area. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `0`**"
},
"horizontal_align": {
"type": "string",
"description": "This parameter specifies the horizontal alignment of the overlaid image and can be either `left` or `right`. **Default: `right`**"
},
"horizontal_margin": {
"type": "string",
"description": "This parameter defines the horizontal coordinate value of the corner (determined by `horizontal_align`) of the overlay area. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
}
},
"description": "Image overlay can be used to brand a video or add a visual label in the form of an image.",
"x-apidog-orders": [
"url",
"horizontal_margin",
"vertical_margin",
"horizontal_align",
"vertical_align",
"width",
"height"
]
},
"call_to_actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"text": {
"type": "string"
},
"end_time": {
"type": "integer",
"format": "int32"
},
"font_color": {
"type": "string",
"description": "hex value of color"
},
"start_time": {
"type": "integer",
"format": "int32"
},
"background_color": {
"type": "string",
"description": "hex code of color"
},
"position_from_top": {
"type": "integer",
"format": "int32",
"description": "number of pixels from top"
},
"position_from_right": {
"type": "integer",
"format": "int32",
"description": "number of pixels from right"
}
},
"x-apidog-orders": [
"text",
"url",
"start_time",
"end_time",
"font_color",
"background_color",
"position_from_top",
"position_from_right"
]
},
"description": "A CTA is an explicit prompt within the video content encouraging viewers to take a particular action."
},
"additional_tracks": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"type",
"language_code"
],
"properties": {
"url": {
"type": "string",
"description": "URL or web address of a file that Gumlet should download to add a stream."
},
"name": {
"type": "string",
"description": "The name of the track containing a human-readable description."
},
"type": {
"type": "string",
"description": "Type of additional track. Value can be either audio or subtitle."
},
"language_code": {
"type": "string",
"description": "The language code value represents BCP 47 specification compliant value. For example, en for English."
}
},
"x-apidog-orders": [
"url",
"type",
"language_code",
"name"
]
},
"description": "Add additional Audio / Subtitle tracks to Gumlet for transcoding and delivery along with video asset track."
},
"generate_subtitles": {
"type": "object",
"properties": {
"audio_language": {
"type": "string",
"description": "Language code for native language of the audio."
},
"subtitle_languages": {
"type": "string",
"description": "Comma separated string of language codes for which subtitle needs to be generated. Maximum four language codes are allowed."
}
},
"description": "Gumlet allows you to generate subtitles from the audio stream (use <a href='https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes'> ISO 639-1 </a> Language Codes)",
"x-apidog-orders": [
"audio_language",
"subtitle_languages"
]
},
"per_title_encoding": {
"type": "boolean",
"description": "Gumlet analyzes each input video on a wide range of visual aspects. Based on the analysis, it chooses a unique set of transcoding options for processing the video. This ensures that the output video is of optimal size and best quality. **Default: `true`**"
},
"process_low_resolution_input": {
"type": "boolean",
"description": "Currently, the minimum supported frame size is `57600` (`240x240`) pixels for `HLS/DASH` and `21025` (`145x145`) pixels for `MP4` format. However, enabling this flag will allow Gumlet to simply put your video asset into the specified delivery format without transcoding and optimization. Enabling this flag will cause any kind of specified video transformation to be ignored if you input video asset frame size is lower than the minimum supported frame size for the specified format. **Default: `false`**"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}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](https://docs.gumlet.com/docs/direct-upload#2-use-the-url-to-upload-a-file).
{
"type": "object",
"required": [],
"properties": {
"pad": {
"type": "object",
"properties": {
"top": {
"type": "string",
"description": "Width of padding on the top side. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `%5`**"
},
"left": {
"type": "string",
"description": "Width of padding on the left side. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
},
"color": {
"type": "string",
"description": "Color of padding area. **Default: `black`**"
},
"right": {
"type": "string",
"description": "Width of padding on the right side. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
},
"bottom": {
"type": "string",
"description": "Width of padding on the bottom side. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `%5`**"
}
},
"description": "This transformation can be used to add padding to the video."
},
"tag": {
"type": "array",
"items": {
"type": "string",
"x-stoplight": {
"id": "ukzi2mra8hepj"
}
},
"description": "Specify a text string or identifier which can identify an asset or bunch of assets later."
},
"crop": {
"type": "object",
"required": [
"width",
"height"
],
"properties": {
"width": {
"type": "string",
"description": "Width of the cropping area in pixels."
},
"height": {
"type": "string",
"description": "Height of the cropping area in pixels."
},
"vertical_margin": {
"type": "string",
"description": "This parameter defines the vertical coordinate value of the upper-left corner of the cropping area. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `0`**"
},
"horizontal_margin": {
"type": "string",
"description": "This parameter defines the horizontal coordinate value of the upper-left corner of the cropping area. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
}
},
"description": "This transformation can be used to crop the video by defining a rectangular area within the dimensions of the output video."
},
"trim": {
"type": "object",
"required": [
"start_offset",
"end_offset"
],
"properties": {
"duration": {
"type": "number",
"format": "float",
"description": "Duration can be used in conjunction with `start_offset` parameter, can be specified in number of seconds."
},
"end_offset": {
"type": "number",
"format": "float",
"description": "End offset in number of seconds or in `HH:MM:SS` format."
},
"start_offset": {
"type": "number",
"format": "float",
"description": "Start offset in number of seconds or in `HH:MM:SS` format."
}
},
"description": "Trim transformation can be used to trim videos based on time duration."
},
"title": {
"type": "string",
"description": "Specify a text string or identifier which can be used for filtering or searching the asset."
},
"width": {
"type": "string",
"description": "Resize video with the given width. Can be an absolute value in pixels or a percentage value with the `%` suffix. Specified values greater than the original asset width will be ignored. Applicable only when specified format is `MP4`."
},
"folder": {
"type": "string",
"description": "Add this asset to an existing folder by `folder_id`."
},
"format": {
"enum": [
"ABR",
"MP4"
],
"type": "string",
"description": "Transcode and deliver the asset in the requested format. The options can be one of `ABR` (HLS + DASH) and `MP4`."
},
"height": {
"type": "string",
"description": "Resize video with the given height. Can be an absolute value in pixels or a percentage value with the `%` suffix. Specified values greater than the original asset height will be ignored. Applicable only when specified format is `MP4`."
},
"metadata": {
"type": "object",
"properties": {},
"description": "Add your metadata you want to associate with this asset.<br/> Example: <br/> <code> { \"internal_video_id\" : \"123Abc\" } </code>",
"additionalProperties": {}
},
"audio_only": {
"type": "boolean",
"description": "This flag allows Gumlet to transcode and deliver audio-only in the specified format. In this case, video transformation and thumbnails/animated GIFs would not be created. **Default: `false`**"
},
"enable_drm": {
"type": "boolean",
"description": "Enable DRM encryption for transcoded videos. Gumlet supports Widevine and FairPlay DRMs."
},
"mp4_access": {
"type": "boolean",
"description": "Creates `MP4` version for download purpose in case of `MPEG-DASH` or `HLS` delivery format. **Default: `false`**"
},
"profile_id": {
"type": "string",
"description": "Provide `profile_id` of the previously created video profile. This parameter will override all the parameters (except `input` and `collection_id`) from the video profile."
},
"resolution": {
"type": "string",
"description": "Required resolutions of the transformed asset in case of HLS or MPEG-DASH delivery format. Can be a comma-separated string out of the following values: `240p`, `360p`, `480p`, `540p`, `720p`, and `1080p`. Resized rendition will retain the input aspect ratio."
},
"description": {
"type": "string",
"description": "Attach some textual data with the asset. This field is neither searchable nor filterable."
},
"playlist_id": {
"type": "string",
"description": "Add this asset to a playlist."
},
"animated_gif": {
"type": "object",
"properties": {
"fps": {
"type": "string",
"description": "The frame rate of the generated GIF. Defaults to `15` fps. Max `30` fps."
},
"width": {
"type": "string",
"description": "The width in pixels (or in percentage value of asset width) of the animated GIF. Max width is `640px`."
},
"height": {
"type": "string",
"description": "The height in pixels (or in percentage value of asset height) of the animated GIF. Max height is `640px`."
},
"end_offset": {
"type": "string",
"description": "The time (in seconds or `HH:MM:SS` format) of the video timeline where the GIF ends. Defaults to `10` seconds after the start_offset. Maximum duration of GIF is limited to `10` seconds."
},
"start_offset": {
"type": "string",
"description": "The time (in seconds or `HH:MM:SS` format) of the video timeline where the animated gif should begin. **Default: `0`**"
}
},
"description": "Create an animated GIF from the video."
},
"text_overlay": {
"type": "object",
"required": [
"text"
],
"properties": {
"box": {
"type": "boolean",
"description": "This parameter allows drawing a rectangular box over the overlaid text. **Default: `false`**"
},
"font": {
"type": "string",
"description": "Font family type for text. **Default: `sans`**"
},
"text": {
"type": "string",
"description": "Text to be overlaid on video."
},
"color": {
"type": "string",
"description": "Font color for text. **Default: `black`**"
},
"opacity": {
"type": "string",
"description": "Overlay text opacity can be specified with opacity parameter where value can be between `0` and `100` where `0` is considered completely transparent and `100` is considered completely opaque. **Default: `100`**"
},
"box_color": {
"type": "string",
"description": "Box color can be specified with this parameter. **Default: `white`**"
},
"font_size": {
"type": "string",
"description": "Font size in pixels. **Default: `16`**"
},
"box_border": {
"type": "string",
"description": "Padding between the box border and the text can be specified with this parameter in pixels. **Default: `0`**"
},
"box_opacity": {
"type": "string",
"description": "Box opacity can be specified with this parameter. **Default: `100`**"
},
"vertical_align": {
"type": "string",
"description": "This parameter specifies the vertical alignment of the overlaid text and can be either `top` or `bottom`. **Default: `bottom`**"
},
"vertical_margin": {
"type": "string",
"description": "This parameter defines the vertical coordinate value of the corner (determined by vertical_align) of the overlay area. Values can be an absolute number of pixels relative to the video height. **Default: `0`**"
},
"horizontal_align": {
"type": "string",
"description": "This parameter specifies the horizontal alignment of the overlaid text and can be either `left` or `right`. **Default: `right`**"
},
"horizontal_margin": {
"type": "string",
"description": "This parameter defines the horizontal coordinate value of the corner (determined by `horizontal_align`) of the overlay area. Values can be an absolute number of pixels relative to the video width. **Default: `0`**"
}
},
"description": "Text overlay can be used to brand a video or add a label in the form of text."
},
"collection_id": {
"type": "string",
"description": "Gumlet video workspace id."
},
"image_overlay": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "This is the required parameter for image overlay; it can be a URL to an image that needs to be overlaid."
},
"width": {
"type": "string",
"description": "Width of the overlaid image. **Default: `image width`**"
},
"height": {
"type": "string",
"description": "Height of the overlaid image. **Default: `image height`**"
},
"vertical_align": {
"type": "string",
"description": "This parameter specifies the vertical alignment of the overlaid image and can be either `top` or `bottom`. **Default: `bottom`**"
},
"vertical_margin": {
"type": "string",
"description": "This parameter defines the vertical coordinate value of the corner (determined by `vertical_align`) of the overlay area. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `0`**"
},
"horizontal_align": {
"type": "string",
"description": "This parameter specifies the horizontal alignment of the overlaid image and can be either `left` or `right`. **Default: `right`**"
},
"horizontal_margin": {
"type": "string",
"description": "This parameter defines the horizontal coordinate value of the corner (determined by `horizontal_align`) of the overlay area. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
}
},
"description": "Image overlay can be used to brand a video or add a visual label in the form of an image."
},
"call_to_actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"text": {
"type": "string"
},
"end_time": {
"type": "integer",
"format": "int32"
},
"font_color": {
"type": "string",
"description": "hex value of color"
},
"start_time": {
"type": "integer",
"format": "int32"
},
"background_color": {
"type": "string",
"description": "hex code of color"
},
"position_from_top": {
"type": "integer",
"format": "int32",
"description": "number of pixels from top"
},
"position_from_right": {
"type": "integer",
"format": "int32",
"description": "number of pixels from right"
}
}
},
"description": "A CTA is an explicit prompt within the video content encouraging viewers to take a particular action."
},
"additional_tracks": {
"type": "array",
"items": {
"type": "object",
"required": [
"url",
"type",
"language_code"
],
"properties": {
"url": {
"type": "string",
"description": "URL or web address of a file that Gumlet should download to add a stream."
},
"name": {
"type": "string",
"description": "The name of the track containing a human-readable description."
},
"type": {
"type": "string",
"description": "Type of additional track. Value can be either audio or subtitle."
},
"language_code": {
"type": "string",
"description": "The language code value represents BCP 47 specification compliant value. For example, en for English."
}
}
},
"description": "Add additional Audio / Subtitle tracks to Gumlet for transcoding and delivery along with video asset track."
},
"generate_subtitles": {
"type": "object",
"properties": {
"audio_language": {
"type": "string",
"description": "Language code for native language of the audio."
},
"subtitle_languages": {
"type": "string",
"description": "Comma separated string of language codes for which subtitle needs to be generated. Maximum four language codes are allowed."
}
},
"description": "Gumlet allows you to generate subtitles from the audio stream (use <a href='https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes'> ISO 639-1 </a> Language Codes)"
},
"per_title_encoding": {
"type": "boolean",
"description": "Gumlet analyzes each input video on a wide range of visual aspects. Based on the analysis, it chooses a unique set of transcoding options for processing the video. This ensures that the output video is of optimal size and best quality. **Default: `true`**"
},
"process_low_resolution_input": {
"type": "boolean",
"description": "Currently, the minimum supported frame size is `57600` (`240x240`) pixels for `HLS/DASH` and `21025` (`145x145`) pixels for `MP4` format. However, enabling this flag will allow Gumlet to simply put your video asset into the specified delivery format without transcoding and optimization. Enabling this flag will cause any kind of specified video transformation to be ignored if you input video asset frame size is lower than the minimum supported frame size for the specified format. **Default: `false`**"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}get_asset_details
This endpoint retrieves the details of an asset that has previously been created.
{
"type": "object",
"required": [
"asset_id"
],
"properties": {
"asset_id": {
"type": "string",
"description": "An asset id for the previously created asset."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"asset_id"
],
"properties": {
"asset_id": {
"type": "string",
"description": "Asset id of the video asset which needs to be deleted."
}
}
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}update_asset
This endpoint allows users to update video asset that has previously been created.
{
"type": "object",
"required": [],
"properties": {
"tag": {
"type": "string",
"description": "Specify a text string or identifier which can identify an asset or bunch of assets later. You can pass multiple comma-separated values."
},
"input": {
"type": "string",
"description": "For replacing videos, pass this along with `asset_id`\n\n`{workspace_id}/{asset_id}/origin-{asset_id}`"
},
"title": {
"type": "string",
"description": "Specify a text string or identifier which can be used for filtering or searching the asset."
},
"asset_id": {
"type": "string",
"description": "Asset ID to update. This is a required parameter."
},
"metadata": {
"type": "string",
"format": "json",
"description": "Set of key-value pairs that you can attach to this Asset. This can be useful for storing additional information.<br/> Example: <br/> <code> { \"internal_video_id\" : \"123Abc\" } </code>"
},
"reprocess": {
"type": "boolean",
"description": "To reprocess same video, pass this as true."
},
"description": {
"type": "string",
"description": "Attach some textual data with the asset. This field is neither searchable nor filterable."
},
"call_to_actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"text": {
"type": "string"
},
"end_time": {
"type": "integer",
"format": "int32"
},
"font_color": {
"type": "string",
"description": "hex value of color"
},
"start_time": {
"type": "integer",
"format": "int32"
},
"background_color": {
"type": "string",
"description": "hex code of color"
},
"position_from_top": {
"type": "integer",
"format": "int32",
"description": "number of pixels from top"
},
"position_from_right": {
"type": "string",
"description": "number of pixels from right"
}
},
"x-apidog-orders": [
"text",
"url",
"start_time",
"end_time",
"font_color",
"background_color",
"position_from_top",
"position_from_right"
]
},
"description": "A CTA is an explicit prompt within the video content encouraging viewers to take a particular action."
},
"remove_subtitles": {
"type": "array",
"items": {
"type": "string"
},
"description": "Comma separated string of language codes."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}thumbnail_select
Select frame from video to use as thumbnail.
{
"type": "object",
"required": [
"asset_id"
],
"properties": {
"asset_id": {
"type": "string",
"description": "Asset id of the video asset which needs to be deleted."
},
"frame_at_second": {
"type": "number",
"description": "Actual time in second at which thumbnail extraction needs to be done. It can be a fraction of a second as well"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}thumbnail_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. ```bash curl --location --request PUT '<upload_url>' \ --data '<YOUR_FILE_PATH>' ```
{
"type": "object",
"required": [
"asset_ID"
],
"properties": {
"asset_ID": {
"type": "string",
"description": "An asset id for the previously created asset."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"asset_ID"
],
"properties": {
"asset_ID": {
"type": "string",
"description": "An asset id for the previously created asset."
},
"language_codes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of language codes to upload subtitle file (use <a href='https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes'> ISO 639-1 </a> Language Codes)"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"asset_ID"
],
"properties": {
"asset_ID": {
"type": "string",
"description": "An asset id for the previously created asset."
},
"upload_responses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"uploaded": {
"type": "boolean",
"description": "Status of language uploaded .srt or .vtt file. (If status code was 200, You can mark true else false)"
},
"language_code": {
"type": "string",
"description": "Language code for uploaded .srt or .vtt file."
}
},
"x-apidog-orders": [
"language_code",
"uploaded"
]
},
"description": "Array of objects of uploaded languages"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}asset_audio_upload
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.
{
"type": "object",
"required": [
"asset_ID"
],
"properties": {
"asset_ID": {
"type": "string",
"description": "An asset id for the previously created asset."
},
"language_codes": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of language codes to upload audio file (use <a href='https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes'> ISO 639-1 </a> Language Codes)"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}complete_audio_upload
Finish adding audio tracks to an existing video asset. Call this only after the audio files have been PUT to the upload URLs from the add-audio call. This attaches those tracks to the asset.
{
"type": "object",
"required": [
"asset_ID"
],
"properties": {
"asset_ID": {
"type": "string",
"description": "An asset id for the previously created asset."
},
"upload_responses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"uploaded": {
"type": "boolean",
"description": "Status of language uploaded audio file. (If status code was 200, You can mark true else false)"
},
"language_code": {
"type": "string",
"description": "Language code for uploaded audio file."
}
}
}
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}create_update_chapter
This endpoint will create/update video asset chapters.
{
"type": "object",
"required": [
"asset_id"
],
"properties": {
"asset_id": {
"type": "string",
"description": "Gumlet asset ID"
},
"chapters": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"startTime"
],
"properties": {
"label": {
"type": "string",
"description": "Label for the chapter"
},
"startTime": {
"type": "integer",
"format": "int32",
"description": "Start time of chapter in seconds. 0 means chapter is put as the video starts."
}
},
"x-apidog-orders": [
"label",
"startTime"
]
},
"description": "List of chapters"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}retrieve_analytics
This endpoint gives usage analytics data of your videos. Ex - top assets, bandwidth consumption
{
"type": "object",
"required": [],
"properties": {
"filters": {
"type": "object",
"properties": {
"source_id": {
"type": "string",
"description": "The ID of the `workspace` you want to filter the data for. Deprecated."
},
"collection_id": {
"type": "string",
"description": "The ID of the `workspace` you want to filter the data for."
}
},
"x-apidog-orders": [
"collection_id",
"source_id"
]
},
"metrics": {
"type": "array",
"items": {
"enum": [
"bandwidth_consumption",
"asset_duration",
"storage_unit",
"top_assets",
"drm_requests",
"ai_credit_usage",
"errored_videos"
],
"type": "string",
"x-apidog-enum": [
{
"name": "",
"value": "bandwidth_consumption",
"description": ""
},
{
"name": "",
"value": "asset_duration",
"description": ""
},
{
"name": "",
"value": "storage_unit",
"description": ""
},
{
"name": "",
"value": "top_assets",
"description": ""
},
{
"name": "",
"value": "drm_requests",
"description": ""
},
{
"name": "",
"value": "ai_credit_usage",
"description": ""
},
{
"name": "",
"value": "errored_videos",
"description": ""
}
]
},
"description": "Define the metric you need the data for. Supported values: `bandwidth_consumption`, `asset_duration`, `storage_unit`, `top_assets`, `drm_requests`, `ai_credit_usage`, and `errored_videos`."
},
"group_by": {
"enum": [
"hourly",
"daily",
"monthly"
],
"type": "string",
"default": "hourly",
"description": "Group by hourly, daily or monthly. If you don't specify anything it's `hourly` by default.",
"x-apidog-enum": [
{
"name": "",
"value": "hourly",
"description": ""
},
{
"name": "",
"value": "daily",
"description": ""
},
{
"name": "",
"value": "monthly",
"description": ""
}
]
},
"date_range": {
"type": "object",
"required": [
"start_at",
"end_at"
],
"properties": {
"end_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
},
"start_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
}
},
"description": "The timeframe to get the data for. Currently we only support a maximum of 60 days between `start_at` and `end_at`.",
"x-apidog-orders": [
"start_at",
"end_at"
]
},
"top_assets_page": {
"type": "string",
"default": "0",
"description": "top_assets metric may get paginated response. Iterate this parameter to get more data."
},
"top_assets_count": {
"type": "string",
"default": "5",
"description": "Count of video assets that should be returned. Max assets count is 1000 per page."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}top_assets
This endpoint lists top streamed assets in a video collection
{
"type": "object",
"required": [
"start_at",
"end_at"
],
"properties": {
"page": {
"type": "string",
"default": "1",
"description": "Page number of the response."
},
"end_at": {
"type": "string",
"format": "date",
"examples": [
"2026-06-30"
],
"description": "Date in yyyy-MM-dd format"
},
"start_at": {
"type": "string",
"format": "date",
"examples": [
"2026-06-21"
],
"description": "Date in yyyy-MM-dd format"
},
"page_size": {
"type": "string",
"default": "1000",
"description": "Assets to list per page."
},
"collection_id": {
"type": "string",
"description": "Gumlet workspace ID"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}retrieve_part_url
Use this endpoint to retrieve a pre-signed upload URL for the given part number.
{
"type": "object",
"required": [
"asset_id",
"part_number"
],
"properties": {
"asset_id": {
"type": "string",
"description": "An asset id of the created asset for which you are uploading parts"
},
"part_number": {
"type": "string",
"description": "Part number of multiple parts of the original video which you you are uploading"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}complete_multipart_upload
Once you upload all parts to S3 bucket via pre-signed URL, use this endpoint to complete the multipart upload.
{
"type": "object",
"required": [
"asset_id"
],
"properties": {
"parts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ETag": {
"type": "string",
"description": "ETag received while uploading the part using PUT"
},
"PartNumber": {
"type": "integer",
"format": "int32",
"description": "Part number"
}
},
"x-apidog-orders": [
"PartNumber",
"ETag"
]
},
"description": "List of object containing part number with ETag received as a response header while uploading each part"
},
"asset_id": {
"type": "string",
"description": "An asset id for which you are uploading original video via multipart"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}list_profiles
This endpoint retrieves the details of all profiles that have previously been created.
{
"type": "object",
"required": [],
"properties": {
"size": {
"type": "integer",
"format": "int32",
"description": "Page size for the paginated list. **Default: `10`**"
},
"offset": {
"type": "integer",
"format": "int32",
"description": "Offset value for a paginated list of profiles. Can be zero for the first time and `current_offset` value received from the last request afterwards."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [],
"properties": {
"pad": {
"type": "object",
"properties": {
"top": {
"type": "string",
"description": "Width of padding on the top side. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `%5`**"
},
"left": {
"type": "string",
"description": "Width of padding on the left side. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
},
"color": {
"type": "string",
"description": "Color of padding area. **Default: `black`**"
},
"right": {
"type": "string",
"description": "Width of padding on the right side. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
},
"bottom": {
"type": "string",
"description": "Width of padding on the bottom side. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `%5`**"
}
},
"description": "This transformation can be used to add padding to the video."
},
"crop": {
"type": "object",
"required": [
"width",
"height"
],
"properties": {
"width": {
"type": "string",
"description": "Width of the cropping area in pixels."
},
"height": {
"type": "string",
"description": "Height of the cropping area in pixels."
},
"vertical_margin": {
"type": "string",
"description": "This parameter defines the vertical coordinate value of the upper-left corner of the cropping area. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `0`**"
},
"horizontal_margin": {
"type": "string",
"description": "This parameter defines the horizontal coordinate value of the upper-left corner of the cropping area. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
}
},
"description": "This transformation can be used to crop the video by defining a rectangular area within the dimensions of the output video."
},
"name": {
"type": "string",
"default": "Gumlet-Profile-1",
"description": "Profile name or identifier."
},
"trim": {
"type": "object",
"required": [
"start_offset",
"end_offset"
],
"properties": {
"duration": {
"type": "number",
"format": "float",
"description": "Duration can be used in conjunction with `start_offset` parameter, can be specified in number of seconds."
},
"end_offset": {
"type": "number",
"format": "float",
"description": "End offset in number of seconds or in `HH:MM:SS` format."
},
"start_offset": {
"type": "number",
"format": "float",
"description": "Start offset in number of seconds or in `HH:MM:SS` format."
}
},
"description": "Trim transformation can be used to trim videos based on time duration."
},
"width": {
"type": "string",
"description": "Resize video with the given width. Can be an absolute value in pixels or a percentage value with the `%` suffix. Specified values greater than the original asset width will be ignored. Only applicable when specified `format` is `MP4`."
},
"format": {
"enum": [
"ABR",
"MP4"
],
"type": "string",
"default": "ABR",
"description": "Transcode and deliver the asset in the requested format. The options can be one of `ABR` (HLS + DASH) and `MP4`."
},
"height": {
"type": "string",
"description": "Resize video with the given height. Can be an absolute value in pixels or a percentage value with the `%` suffix. Specified values greater than the original asset height will be ignored. Only applicable when specified `format` is `MP4`."
},
"audio_only": {
"type": "boolean",
"description": "This flag allows Gumlet to transcode and deliver audio-only in the specified format. In this case,This flag allows Gumlet to transcode and deliver audio-only in the specified format. In this case, video transformation and thumbnails/animated GIFs would not be created. **Default: `false`**"
},
"enable_drm": {
"type": "boolean",
"description": "Enable DRM encryption for transcoded videos. Gumlet supports Widevine and FairPlay DRMs."
},
"mp4_access": {
"type": "boolean",
"description": "Creates `mp4` version for download purpose in case of `MPEG-DASH` or `HLS` delivery format. **Default: `false`**"
},
"resolution": {
"type": "string",
"description": "Required resolutions of the transformed asset in case of HLS or MPEG-DASH delivery format. Can be a comma-separated string out of the following values: `240p`, `360p`, `480p`, `540p`, `720p`, and `1080p `. Resized rendition will retain the input aspect ratio."
},
"transcribe": {
"type": "boolean",
"default": false,
"description": "This will generate the subtitles in the native audio."
},
"animated_gif": {
"type": "object",
"properties": {
"fps": {
"type": "string",
"description": "The frame rate of the generated GIF. Defaults to `15` fps. Max `30` fps."
},
"width": {
"type": "string",
"description": "The width in pixels (or in percentage value of asset width) of the animated GIF. Max width is `640px`."
},
"height": {
"type": "string",
"description": "The height in pixels (or in percentage value of asset height) of the animated GIF. Max height is `640px`."
},
"end_offset": {
"type": "string",
"description": "The time (in seconds or `HH:MM:SS` format) of the video timeline where the GIF ends. Defaults to `10` seconds after the start_offset. Maximum duration of GIF is limited to `10` seconds."
},
"start_offset": {
"type": "string",
"description": "The time (in seconds or `HH:MM:SS` format) of the video timeline where the animated gif should begin. **Default: `0`**"
}
},
"description": "Create an animated GIF from a video."
},
"text_overlay": {
"type": "object",
"required": [
"text"
],
"properties": {
"box": {
"type": "boolean",
"description": "This parameter allows drawing a rectangular box over the overlaid text. **Default: `false`**"
},
"font": {
"type": "string",
"description": "Font family type for text. **Default: `sans`**"
},
"text": {
"type": "string",
"description": "Text to be overlaid on video."
},
"color": {
"type": "string",
"description": "Font color for text. **Default: `black`**"
},
"opacity": {
"type": "string",
"description": "Overlay text opacity can be specified with opacity parameter where value can be between `0` and `100` where `0` is considered completely transparent and `100` is considered completely opaque. **Default: `100`**"
},
"box_color": {
"type": "string",
"description": "Box color can be specified with this parameter. **Default: `white`**"
},
"font_size": {
"type": "string",
"description": "Font size in pixels. **Default: `16`**"
},
"box_border": {
"type": "string",
"description": "Padding between the box border and the text can be specified with this parameter in pixels. **Default: `0`**"
},
"box_opacity": {
"type": "string",
"description": "Box opacity can be specified with this parameter. **Default: `100`**"
},
"vertical_align": {
"type": "string",
"description": "This parameter specifies the vertical alignment of the overlaid text and can be either `top` or `bottom`. **Default: `bottom`**"
},
"vertical_margin": {
"type": "string",
"description": "This parameter defines the vertical coordinate value of the corner (determined by vertical_align) of the overlay area. Values can be an absolute number of pixels relative to the video height. **Default: `0`**"
},
"horizontal_align": {
"type": "string",
"description": "This parameter specifies the horizontal alignment of the overlaid text and can be either `left` or `right`. **Default: `right`**"
},
"horizontal_margin": {
"type": "string",
"description": "This parameter defines the horizontal coordinate value of the corner (determined by `horizontal_align`) of the overlay area. Values can be an absolute number of pixels relative to the video width. **Default: `0`**"
}
},
"description": "Text overlay can be used to brand a video or add a label in the form of text."
},
"image_overlay": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "This is the required parameter for image overlay; it can be a URL to an image that needs to be overlaid."
},
"width": {
"type": "string",
"description": "Width of the overlaid image. **Default: `image width`**"
},
"height": {
"type": "string",
"description": "Height of the overlaid image. **Default: `image height`**"
},
"vertical_align": {
"type": "string",
"description": "This parameter specifies the vertical alignment of the overlaid image and can be either `top` or `bottom`. **Default: `bottom`**"
},
"vertical_margin": {
"type": "string",
"description": "This parameter defines the vertical coordinate value of the corner (determined by `vertical_align`) of the overlay area. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `0`**"
},
"horizontal_align": {
"type": "string",
"description": "This parameter specifies the horizontal alignment of the overlaid image and can be either `left` or `right`. **Default: `right`**"
},
"horizontal_margin": {
"type": "string",
"description": "This parameter defines the horizontal coordinate value of the corner (determined by `horizontal_align`) of the overlay area. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
}
},
"description": "Image overlay can be used to brand a video or add a visual label in the form of an image."
},
"generate_subtitles": {
"type": "object",
"properties": {
"subtitle_languages": {
"type": "string",
"description": "Array of string of language codes for which subtitle needs to be generated. Maximum four language codes are allowed."
}
},
"description": "Gumlet allows you to generate subtitles from the audio stream (use <a href='https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes'> ISO 639-1 </a> Language Codes). Remove this object if you do not want to generate AI subtitles."
},
"per_title_encoding": {
"type": "boolean",
"description": "Gumlet analyzes each input video on a wide range of visual aspects. Based on the analysis, it chooses a unique set of transcoding options for processing the video. This ensures that the output video is of optimal size and best quality. **Default: `true`**"
},
"process_low_resolution_input": {
"type": "boolean",
"description": "Currently, the minimum supported frame size is `57600` (`240x240`) pixels for `HLS/DASH` and `21025` (`145x145`) pixels for `MP4` format. However, enabling this flag will allow Gumlet to simply put your video asset into the specified delivery format without transcoding and optimization. Enabling this flag will cause any kind of specified video transformation to be ignored if you input video asset frame size is lower than the minimum supported frame size for the specified format. **Default: `false`**"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}get_profile
This endpoint retrieves the details of a video profile that has previously been created.
{
"type": "object",
"required": [
"profile_id"
],
"properties": {
"profile_id": {
"type": "string",
"description": "Profile id of the profile which needs to be retrieved."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}update_profile
Update an existing profile. Settings provided in body parameters will only be updated in the existing profile.
{
"type": "object",
"required": [
"profile_id__path"
],
"properties": {
"vc": {
"type": "array",
"items": {
"enum": [
"libx264",
"libsvtav1"
],
"type": "string"
},
"default": [
"libx264"
],
"description": "Video Codecs"
},
"pad": {
"type": "object",
"properties": {
"top": {
"type": "string",
"description": "Width of padding on the top side. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `%5`**"
},
"left": {
"type": "string",
"description": "Width of padding on the left side. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
},
"color": {
"type": "string",
"description": "Color of padding area. **Default: `black`**"
},
"right": {
"type": "string",
"description": "Width of padding on the right side. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
},
"bottom": {
"type": "string",
"description": "Width of padding on the bottom side. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `%5`**"
}
},
"description": "This transformation can be used to add padding to the video.",
"x-apidog-orders": [
"top",
"left",
"bottom",
"right",
"color"
]
},
"crop": {
"type": "object",
"required": [
"width",
"height"
],
"properties": {
"width": {
"type": "string",
"description": "Width of the cropping area in pixels."
},
"height": {
"type": "string",
"description": "Height of the cropping area in pixels."
},
"vertical_margin": {
"type": "string",
"description": "This parameter defines the vertical coordinate value of the upper-left corner of the cropping area. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `0`**"
},
"horizontal_margin": {
"type": "string",
"description": "This parameter defines the horizontal coordinate value of the upper-left corner of the cropping area. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
}
},
"description": "This transformation can be used to crop the video by defining a rectangular area within the dimensions of the output video.",
"x-apidog-orders": [
"horizontal_margin",
"vertical_margin",
"width",
"height"
]
},
"name": {
"type": "string",
"description": "Profile name or identifier."
},
"trim": {
"type": "object",
"required": [
"start_offset",
"end_offset"
],
"properties": {
"duration": {
"type": "number",
"format": "float",
"description": "Duration can be used in conjunction with `start_offset` parameter, can be specified in number of seconds."
},
"end_offset": {
"type": "number",
"format": "float",
"description": "End offset in number of seconds or in `HH:MM:SS` format."
},
"start_offset": {
"type": "number",
"format": "float",
"description": "Start offset in number of seconds or in `HH:MM:SS` format."
}
},
"description": "Trim transformation can be used to trim videos based on time duration.",
"x-apidog-orders": [
"start_offset",
"end_offset",
"duration"
]
},
"width": {
"type": "string",
"description": "Resize video with the given width. Can be an absolute value in pixels or a percentage value with the `%` suffix. Specified values greater than the original asset width will be ignored. Only applicable when specified `format` is `MP4`."
},
"format": {
"enum": [
"ABR",
"MP4"
],
"type": "string",
"default": "ABR",
"description": "Transcode and deliver the asset in the requested format. The options can be one of `ABR` (HLS + DASH) and `MP4`."
},
"height": {
"type": "string",
"description": "Resize video with the given height. Can be an absolute value in pixels or a percentage value with the `%` suffix. Specified values greater than the original asset height will be ignored. Only applicable when specified `format` is `MP4`."
},
"audio_only": {
"type": "boolean",
"description": "This flag allows Gumlet to transcode and deliver audio-only in the specified format. In this case,This flag allows Gumlet to transcode and deliver audio-only in the specified format. In this case, video transformation and thumbnails/animated GIFs would not be created. **Default: `false`**"
},
"enable_drm": {
"type": "boolean",
"description": "Enable DRM encryption for transcoded videos. Gumlet supports Widevine and FairPlay DRMs."
},
"mp4_access": {
"type": "boolean",
"description": "Creates `mp4` version for download purpose in case of `MPEG-DASH` or `HLS` delivery format. **Default: `false`**"
},
"profile_id": {
"type": "string",
"description": "Profile id of the profile which needs to be deleted."
},
"resolution": {
"type": "string",
"description": "Resize video with the given height. Can be an absolute value in pixels or a percentage value with the `%` suffix. Specified values greater than the original asset height will be ignored. Only applicable when specified `format` is `MP4`."
},
"transcribe": {
"type": "boolean",
"default": false,
"description": "To generate the subtitles in the native audio."
},
"animated_gif": {
"type": "object",
"properties": {
"fps": {
"type": "string",
"description": "The frame rate of the generated GIF. Defaults to `15` fps. Max `30` fps."
},
"width": {
"type": "string",
"description": "The width in pixels (or in percentage value of asset width) of the animated GIF. Max width is `640px`."
},
"height": {
"type": "string",
"description": "The height in pixels (or in percentage value of asset height) of the animated GIF. Max height is `640px`."
},
"end_offset": {
"type": "string",
"description": "The time (in seconds or `HH:MM:SS` format) of the video timeline where the GIF ends. Defaults to `10` seconds after the start_offset. Maximum duration of GIF is limited to `10` seconds."
},
"start_offset": {
"type": "string",
"description": "The time (in seconds or `HH:MM:SS` format) of the video timeline where the animated gif should begin. **Default: `0`**"
}
},
"description": "Create an animated GIF from a video.",
"x-apidog-orders": [
"start_offset",
"end_offset",
"width",
"height",
"fps"
]
},
"text_overlay": {
"type": "object",
"required": [
"text"
],
"properties": {
"box": {
"type": "boolean",
"description": "This parameter allows drawing a rectangular box over the overlaid text. **Default: `false`**"
},
"font": {
"type": "string",
"description": "Font family type for text. **Default: `sans`**"
},
"text": {
"type": "string",
"description": "Text to be overlaid on video."
},
"color": {
"type": "string",
"description": "Font color for text. **Default: `black`**"
},
"opacity": {
"type": "string",
"description": "Overlay text opacity can be specified with opacity parameter where value can be between `0` and `100` where `0` is considered completely transparent and `100` is considered completely opaque. **Default: `100`**"
},
"box_color": {
"type": "string",
"description": "Box color can be specified with this parameter. **Default: `white`**"
},
"font_size": {
"type": "string",
"description": "Font size in pixels. **Default: `16`**"
},
"box_border": {
"type": "string",
"description": "Padding between the box border and the text can be specified with this parameter in pixels. **Default: `0`**"
},
"box_opacity": {
"type": "string",
"description": "Box opacity can be specified with this parameter. **Default: `100`**"
},
"vertical_align": {
"type": "string",
"description": "This parameter specifies the vertical alignment of the overlaid text and can be either `top` or `bottom`. **Default: `bottom`**"
},
"vertical_margin": {
"type": "string",
"description": "This parameter defines the vertical coordinate value of the corner (determined by vertical_align) of the overlay area. Values can be an absolute number of pixels relative to the video height. **Default: `0`**"
},
"horizontal_align": {
"type": "string",
"description": "This parameter specifies the horizontal alignment of the overlaid text and can be either `left` or `right`. **Default: `right`**"
},
"horizontal_margin": {
"type": "string",
"description": "This parameter defines the horizontal coordinate value of the corner (determined by `horizontal_align`) of the overlay area. Values can be an absolute number of pixels relative to the video width. **Default: `0`**"
}
},
"description": "Text overlay can be used to brand a video or add a label in the form of text.",
"x-apidog-orders": [
"text",
"horizontal_align",
"vertical_align",
"horizontal_margin",
"vertical_margin",
"color",
"font",
"font_size",
"opacity",
"box",
"box_color",
"box_opacity",
"box_border"
]
},
"image_overlay": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "This is the required parameter for image overlay; it can be a URL to an image that needs to be overlaid."
},
"width": {
"type": "string",
"description": "Width of the overlaid image. **Default: `image width`**"
},
"height": {
"type": "string",
"description": "Height of the overlaid image. **Default: `image height`**"
},
"vertical_align": {
"type": "string",
"description": "This parameter specifies the vertical alignment of the overlaid image and can be either `top` or `bottom`. **Default: `bottom`**"
},
"vertical_margin": {
"type": "string",
"description": "This parameter defines the vertical coordinate value of the corner (determined by `vertical_align`) of the overlay area. Values can be an absolute number of pixels or a percentage value relative to the video height. **Default: `0`**"
},
"horizontal_align": {
"type": "string",
"description": "This parameter specifies the horizontal alignment of the overlaid image and can be either `left` or `right`. **Default: `right`**"
},
"horizontal_margin": {
"type": "string",
"description": "This parameter defines the horizontal coordinate value of the corner (determined by `horizontal_align`) of the overlay area. Values can be an absolute number of pixels or a percentage value relative to the video width. **Default: `0`**"
}
},
"description": "Image overlay can be used to brand a video or add a visual label in the form of an image.",
"x-apidog-orders": [
"url",
"horizontal_margin",
"vertical_margin",
"horizontal_align",
"vertical_align",
"width",
"height"
]
},
"profile_id__path": {
"type": "string",
"description": "Profile id of the profile which need to be updated. (Path parameter)"
},
"generate_chapters": {
"type": "boolean",
"description": "Whether Gumlet should generate chapters."
},
"generate_subtitles": {
"type": "object",
"properties": {
"subtitle_languages": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of string of language codes for which subtitle needs to be generated. Maximum four language codes are allowed."
}
},
"description": "Gumlet allows you to generate subtitles from the audio stream (use <a href='https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes'> ISO 639-1 </a> Language Codes). You can remove this object if you don't want to generate AI subtitles.",
"x-apidog-orders": [
"subtitle_languages",
"transcribe"
]
},
"per_title_encoding": {
"type": "boolean",
"description": "Gumlet analyzes each input video on a wide range of visual aspects. Based on the analysis, it chooses a unique set of transcoding options for processing the video. This ensures that the output video is of optimal size and best quality. **Default: `true`**"
},
"generate_description": {
"type": "boolean",
"description": "Whether Gumlet should generate descriptions."
},
"process_low_resolution_input": {
"type": "boolean",
"description": "Currently, the minimum supported frame size is `57600` (`240x240`) pixels for `HLS/DASH` and `21025` (`145x145`) pixels for `MP4` format. However, enabling this flag will allow Gumlet to simply put your video asset into the specified delivery format without transcoding and optimization. Enabling this flag will cause any kind of specified video transformation to be ignored if you input video asset frame size is lower than the minimum supported frame size for the specified format. **Default: `false`**"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"profile_id"
],
"properties": {
"profile_id": {
"type": "string",
"description": "Profile id of the profile which needs to be deleted."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}get_all_playlists
Get all playlists for given workspace
{
"type": "object",
"required": [
"collection_id"
],
"properties": {
"collection_id": {
"type": "string",
"description": "Workspace ID"
}
}
}{
"type": "object",
"additionalProperties": true,
"x-fastmcp-wrap-result": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_playlist
Create new playlist inside video wprkspace
{
"type": "object",
"required": [],
"properties": {
"title": {
"type": "string",
"description": "Playlist title"
},
"description": {
"type": "string",
"description": "Playlist description"
},
"collection_id": {
"type": "string",
"description": "Workspace ID in which the playlist should be created"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}add_asset_playlist
This operation adds a single asset or a list of assets to a playlist.
{
"type": "object",
"required": [
"playlist_id"
],
"properties": {
"asset_list": {
"type": "array",
"items": {
"type": "object",
"properties": {
"asset_id": {
"type": "string",
"description": "Asset ID"
},
"position": {
"type": "integer",
"format": "int32",
"description": "Optional, if not provided asset will added at the back/last of playlist"
}
},
"x-apidog-orders": [
"asset_id",
"position"
]
}
},
"playlist_id": {
"type": "string",
"description": "Playlist ID in which the asset needs to be added."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}remove_asset_playlist
Removed an asset or list of assets from a given playlist.
{
"type": "object",
"required": [
"playlist_id"
],
"properties": {
"delete_list": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of video asset ids to delete"
},
"playlist_id": {
"type": "string",
"description": "Playlist ID that is to be deleted."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}update_playlist
This endpoint allows you to update playlist name, channel visibility, or playlist order on a channel page.
{
"type": "object",
"required": [
"playlist_id"
],
"properties": {
"title": {
"type": "string",
"description": "Playlist title"
},
"position": {
"type": "integer",
"format": "int32",
"description": "Playlists have order in which they will be shown on the channel page."
},
"description": {
"type": "string",
"description": "Playlist description"
},
"playlist_id": {
"type": "string",
"description": "ID for the playlist to update."
},
"player_config": {
"type": "object",
"properties": {
"loop": {
"type": "boolean"
},
"preload": {
"type": "boolean"
},
"autoplay": {
"type": "boolean"
},
"logo_width": {
"type": "integer",
"format": "int32"
},
"pixel_tags": {
"type": "object",
"properties": {},
"x-apidog-orders": []
},
"include_seo": {
"type": "boolean"
},
"logo_height": {
"type": "integer",
"format": "int32"
},
"disable_seek": {
"type": "boolean"
},
"player_color": {
"type": "string"
},
"subtitle_enabled": {
"type": "boolean"
},
"dynamic_watermark": {
"type": "boolean"
},
"watermark_bg_color": {
"type": "string"
},
"watermark_interval": {
"type": "integer",
"format": "int32"
},
"watermark_font_size": {
"type": "integer",
"format": "int32"
},
"watermark_font_color": {
"type": "string"
},
"disable_player_controls": {
"type": "boolean"
},
"powered_by_gumlet_overlay": {
"type": "boolean"
},
"allow_drm_protected_videos": {
"type": "boolean"
}
},
"description": "Configure player settings for this playlist, it overrides the setting set on collection.",
"x-apidog-orders": [
"preload",
"autoplay",
"disable_seek",
"disable_player_controls",
"powered_by_gumlet_overlay",
"allow_drm_protected_videos",
"loop",
"player_color",
"include_seo",
"subtitle_enabled",
"pixel_tags",
"logo_width",
"logo_height",
"dynamic_watermark",
"watermark_font_size",
"watermark_font_color",
"watermark_bg_color",
"watermark_interval"
]
},
"channel_visibility": {
"type": "boolean",
"default": false,
"description": "If true then playlist will be visible on channel page."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}delete_playlist
Deletes a playlist by plalist ID.
{
"type": "object",
"required": [
"playlist_id"
],
"properties": {
"playlist_id": {
"type": "string",
"description": "Playlist ID that is to be deleted."
}
}
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}get_playlist_assets
Get a list of all assets inside playlist. You can choose in which order are assets returned.
{
"type": "object",
"required": [
"playlist_id"
],
"properties": {
"sort_by": {
"type": "string",
"description": "Optional, if sort_by is set to asset_title it will sorted by title name. Otherwise order in which user added the assets in playlist."
},
"page_size": {
"type": "string",
"default": "10",
"description": "Optional. Minimum: 10"
},
"sort_order": {
"type": "integer",
"format": "int32",
"default": 1,
"description": "-1 or 1"
},
"page_number": {
"type": "integer",
"format": "int32",
"default": 1,
"description": "Optional. Minimum: 1"
},
"playlist_id": {
"type": "string",
"description": "ID of playlist in which you need to list assets."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}reorder_asset_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.
{
"type": "object",
"required": [
"playlist_id"
],
"properties": {
"body": {
"anyOf": [
{
"type": "object",
"required": [
"asset_id",
"page_number",
"page_size",
"asset_position"
],
"properties": {
"asset_id": {
"type": "string",
"description": "Asset id to move."
},
"page_size": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Playlist page size used by the caller."
},
"page_number": {
"type": "integer",
"minimum": 1,
"description": "Current playlist page number."
},
"asset_position": {
"type": "integer",
"minimum": 0,
"description": "Zero-based position inside the provided page."
}
}
},
{
"type": "object",
"required": [
"sort_by",
"sort_order"
],
"properties": {
"sort_by": {
"enum": [
"title",
"created_at"
],
"type": "string"
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string"
}
}
}
]
},
"playlist_id": {
"type": "string",
"description": "Playlist id."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}list_webhooks
List all webhooks.
{
"type": "object",
"required": [],
"properties": {}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_webhook
Creates a new webhook listener. Gumlet POSTs JSON to `url` for each matching event and sends `secret_token` in the `x-gumlet-token` header. Payload schemas are documented in the webhooks section.
{
"type": "object",
"required": [],
"properties": {
"url": {
"type": "string",
"description": "URL from the application you want to send data to."
},
"sources": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of video collection identifiers for which webhooks are needed to be invoked."
},
"triggers": {
"type": "array",
"items": {
"enum": [
"status",
"live-video-status",
"video.status.created",
"video.status.downloaded",
"video.status.optimized",
"video.status.ready",
"video.status.errored",
"video.status.deleted",
"video.status.repackaged",
"video.status.stream_ready",
"live.video.status.created",
"live.video.status.ready",
"live.video.status.preparing",
"live.video.status.connected",
"live.video.status.active",
"live.video.status.complete",
"live.video.status.disconnected",
"event.embed.viewed",
"event.embed.cta_clicked",
"event.video.updated",
"event.video.uploaded",
"event.playlist.created",
"event.playlist.asset",
"event.playlist.deleted",
"event.video.analytics",
"event.image.analytics",
"event.embed.form_submitted",
"event.comment.all",
"event.channel.member_joined"
],
"type": "string"
},
"description": "Events that invoke this webhook. `status` subscribes to every video asset status event. `live-video-status` subscribes to every live video status event. Any other value subscribes to that event only."
},
"secret_token": {
"type": "string",
"description": "Secret sent back in the `x-gumlet-token` header of each webhook POST so you can confirm the request came from Gumlet."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}update_webhook
Update a webhook listener.
{
"type": "object",
"required": [
"webhook_id"
],
"properties": {
"url": {
"type": "string",
"description": "URL from the application you want to send data to."
},
"sources": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of video collection identifiers for which webhooks are needed to be invoked."
},
"triggers": {
"type": "array",
"items": {
"enum": [
"status",
"live-video-status",
"video.status.created",
"video.status.downloaded",
"video.status.optimized",
"video.status.ready",
"video.status.errored",
"video.status.deleted",
"video.status.repackaged",
"video.status.stream_ready",
"live.video.status.created",
"live.video.status.ready",
"live.video.status.preparing",
"live.video.status.connected",
"live.video.status.active",
"live.video.status.complete",
"live.video.status.disconnected",
"event.embed.viewed",
"event.embed.cta_clicked",
"event.video.updated",
"event.video.uploaded",
"event.playlist.created",
"event.playlist.asset",
"event.playlist.deleted",
"event.video.analytics",
"event.image.analytics",
"event.embed.form_submitted",
"event.comment.all",
"event.channel.member_joined"
],
"type": "string"
},
"description": "Events that invoke this webhook. `status` subscribes to every video asset status event. `live-video-status` subscribes to every live video status event. Any other value subscribes to that event only."
},
"webhook_id": {
"type": "string",
"description": "Unique identifier for the Gumlet Webhook which needs to be updated."
},
"secret_token": {
"type": "string",
"description": "Secret sent back in the `x-gumlet-token` header of each webhook POST so you can confirm the request came from Gumlet."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}delete_webhook
Delete webhook listener endpoint.
{
"type": "object",
"required": [
"webhook_id"
],
"properties": {
"webhook_id": {
"type": "string",
"description": "Unique identifier for the Gumlet Webhook which needs to be deleted."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}list_sources
This endpoint list image sources which are assigned to the user or token.
{
"type": "object",
"required": [],
"properties": {
"size": {
"type": "integer",
"default": 20,
"description": "Results per page."
},
"offset": {
"type": "integer",
"default": 0,
"description": "Skip number of items. Helpful for pagination."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_image_source
This endpoint allows users to create image source.
{
"type": "object",
"required": [],
"properties": {
"aws": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if source type is aws."
},
"gcs": {
"type": "object",
"required": [
"bucket_name",
"service_account_key"
],
"properties": {
"bucket_name": {
"type": "string"
},
"service_account_key": {
"type": "string"
}
},
"description": "This is a required field if source type is gcs."
},
"type": {
"enum": [
"proxy",
"webfolder",
"aws",
"gcs",
"dostorage",
"wasabi",
"cloudinary",
"azure",
"linode",
"backblaze",
"cloudflare",
"zoom"
],
"type": "string"
},
"azure": {
"type": "object",
"required": [
"azure_account_name",
"azure_container_name",
"azure_shared_token",
"azure_path"
],
"properties": {
"azure_path": {
"type": "string"
},
"azure_account_name": {
"type": "string"
},
"azure_shared_token": {
"type": "string"
},
"azure_container_name": {
"type": "string"
}
},
"description": "This is a required field if source type is azure."
},
"proxy": {
"type": "object",
"required": [
"whitelisted_domains"
],
"properties": {
"whitelisted_domains": {
"type": "string"
}
},
"description": "This is a required field if source type is proxy."
},
"linode": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if source type is linode."
},
"wasabi": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if source type is wasabi."
},
"backblaze": {
"type": "object",
"required": [
"bucket_name",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"endpoint": {
"type": "string",
"description": "bucket_region or endpoint"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string",
"description": "bucket_region or endpoint"
}
},
"description": "This is a required field if source type is backblaze."
},
"dostorage": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if source type is dostorage."
},
"namespace": {
"type": "string",
"description": "unique subdomain associated with the image source"
},
"webfolder": {
"type": "object",
"properties": {
"base_url": {
"type": "string",
"x-stoplight": {
"id": "8nxga6djly0mz"
}
}
},
"x-stoplight": {
"id": "kt4iq0r4ofkar"
}
},
"cloudflare": {
"type": "object",
"required": [
"bucket_name",
"access_key",
"account_id",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"account_id": {
"type": "string"
},
"bucket_name": {
"type": "string"
}
},
"description": "This is a required field if source type is cloudflare."
},
"cloudinary": {
"type": "object",
"required": [
"host_name",
"cloud_name"
],
"properties": {
"host_name": {
"type": "string"
},
"cloud_name": {
"type": "string"
}
},
"description": "This is a required field if source type is cloudinary."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}get_image_sources_source_id
Get all details about image source.
{
"type": "object",
"required": [
"image_source_id"
],
"properties": {
"image_source_id": {
"type": "string",
"description": "Image source id. You can get it on Gumlet dashboard or using list sources API endpoint."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}update_image_source
Update settings on an image source that already exists. This does not create a source or purge cached images.
{
"type": "object",
"required": [
"image_source_id"
],
"properties": {
"aws": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if source type is aws.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret",
"base_path",
"endpoint"
]
},
"gcs": {
"type": "object",
"required": [
"bucket_name",
"service_account_key"
],
"properties": {
"bucket_name": {
"type": "string"
},
"service_account_key": {
"type": "string"
}
},
"description": "This is a required field if source type is gcs.",
"x-apidog-orders": [
"bucket_name",
"service_account_key"
]
},
"type": {
"enum": [
"proxy",
"direct-upload",
"webfolder",
"aws",
"gcs",
"dostorage",
"wasabi",
"cloudinary",
"azure",
"linode",
"backblaze",
"cloudflare",
"imgix",
"wordpress",
"hetzner"
],
"type": "string",
"x-apidog-enum": [
{
"name": "",
"value": "proxy",
"description": ""
},
{
"name": "",
"value": "direct-upload",
"description": ""
},
{
"name": "",
"value": "webfolder",
"description": ""
},
{
"name": "",
"value": "aws",
"description": ""
},
{
"name": "",
"value": "gcs",
"description": ""
},
{
"name": "",
"value": "dostorage",
"description": ""
},
{
"name": "",
"value": "wasabi",
"description": ""
},
{
"name": "",
"value": "cloudinary",
"description": ""
},
{
"name": "",
"value": "azure",
"description": ""
},
{
"name": "",
"value": "linode",
"description": ""
},
{
"name": "",
"value": "backblaze",
"description": ""
},
{
"name": "",
"value": "cloudflare",
"description": ""
},
{
"name": "",
"value": "imgix",
"description": ""
},
{
"name": "",
"value": "wordpress",
"description": ""
},
{
"name": "",
"value": "hetzner",
"description": ""
}
]
},
"azure": {
"type": "object",
"required": [
"azure_account_name",
"azure_container_name",
"azure_shared_token",
"azure_path"
],
"properties": {
"azure_path": {
"type": "string"
},
"azure_account_name": {
"type": "string"
},
"azure_shared_token": {
"type": "string"
},
"azure_container_name": {
"type": "string"
}
},
"description": "This is a required field if source type is azure.",
"x-apidog-orders": [
"azure_account_name",
"azure_container_name",
"azure_shared_token",
"azure_path"
]
},
"cname": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of verified CNAMEs"
},
"proxy": {
"type": "object",
"required": [
"whitelisted_domains"
],
"properties": {
"whitelisted_domains": {
"type": "string"
}
},
"description": "This is a required field if source type is proxy.",
"x-apidog-orders": [
"whitelisted_domains"
]
},
"linode": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if source type is linode.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
]
},
"wasabi": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if source type is wasabi.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret",
"base_path"
]
},
"backblaze": {
"type": "object",
"required": [
"bucket_name",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"endpoint": {
"type": "string",
"description": "bucket_region or endpoint"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string",
"description": "bucket_region or endpoint"
}
},
"description": "This is a required field if source type is backblaze.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"endpoint",
"access_key",
"secret",
"base_path"
]
},
"dostorage": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if source type is dostorage.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret",
"base_path"
]
},
"is_active": {
"type": "boolean",
"description": "Enable / disable source.",
"x-stoplight": {
"id": "l0wilhnm9rcwn"
}
},
"webfolder": {
"type": "object",
"properties": {
"base_url": {
"type": "string"
}
},
"description": "This is a required field if source type is webfolder.",
"x-apidog-orders": [
"base_url"
]
},
"cloudflare": {
"type": "object",
"required": [
"bucket_name",
"access_key",
"account_id",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"account_id": {
"type": "string"
},
"bucket_name": {
"type": "string"
}
},
"description": "This is a required field if source type is cloudflare.",
"x-apidog-orders": [
"bucket_name",
"access_key",
"account_id",
"secret",
"base_path"
]
},
"cloudinary": {
"type": "object",
"required": [
"host_name",
"cloud_name"
],
"properties": {
"host_name": {
"type": "string"
},
"cloud_name": {
"type": "string"
}
},
"description": "This is a required field if source type is cloudinary.",
"x-apidog-orders": [
"host_name",
"cloud_name"
]
},
"temp_cname": {
"type": "array",
"items": {
"type": "string",
"x-stoplight": {
"id": "uiq0l25kmsvrr"
}
},
"x-stoplight": {
"id": "nycpttbt3ubkv"
}
},
"error_image": {
"type": "string",
"description": "URL for error image to display when we get broken image from your origin.",
"x-stoplight": {
"id": "vsfn5j2zepna2"
}
},
"secure_urls": {
"type": "boolean",
"description": "Whether the URL signing is enabled"
},
"cdn_cache_time": {
"type": "integer",
"format": "int32",
"description": "CDN cache time in seconds.",
"x-stoplight": {
"id": "9g2k0iyj9vq86"
}
},
"default_params": {
"type": "object",
"properties": {},
"x-stoplight": {
"id": "uevurxwukxwph"
},
"x-apidog-orders": []
},
"image_source_id": {
"type": "string",
"description": "image source id which you want to update"
},
"request_headers": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"x-stoplight": {
"id": "b4zme1scx0vau"
},
"x-apidog-orders": []
},
"x-stoplight": {
"id": "jfv8jngxfn44y"
}
},
"fallback_origins": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"type"
],
"properties": {
"aws": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if source type is aws.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret",
"base_path",
"endpoint"
]
},
"gcs": {
"type": "object",
"required": [
"bucket_name",
"service_account_key"
],
"properties": {
"bucket_name": {
"type": "string"
},
"service_account_key": {
"type": "string"
}
},
"description": "This is a required field if source type is gcs.",
"x-apidog-orders": [
"bucket_name",
"service_account_key"
]
},
"name": {
"type": "string",
"description": "Name of fallback"
},
"type": {
"enum": [
"dostorage",
"aws",
"wasabi",
"hetzner",
"backblaze",
"webfolder",
"gcs",
"azure",
"cloudflare",
"imgix",
"cloudinary",
"proxy",
"wordpress",
"linode"
],
"type": "string",
"description": "Type of fallback origin",
"x-apidog-enum": [
{
"name": "",
"value": "proxy",
"description": ""
}
]
},
"azure": {
"type": "object",
"required": [
"azure_account_name",
"azure_container_name",
"azure_shared_token",
"azure_path"
],
"properties": {
"azure_path": {
"type": "string"
},
"azure_account_name": {
"type": "string"
},
"azure_shared_token": {
"type": "string"
},
"azure_container_name": {
"type": "string"
}
},
"description": "This is a required field if source type is azure.",
"x-apidog-orders": [
"azure_account_name",
"azure_container_name",
"azure_shared_token",
"azure_path"
]
},
"proxy": {
"type": "object",
"required": [
"whitelisted_domains"
],
"properties": {
"whitelisted_domains": {
"type": "string"
}
},
"description": "This is a required field if source type is proxy.",
"x-apidog-orders": [
"whitelisted_domains"
]
},
"linode": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if source type is linode.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
]
},
"wasabi": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if source type is wasabi.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret",
"base_path"
]
},
"backblaze": {
"type": "object",
"required": [
"bucket_name",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"endpoint": {
"type": "string",
"description": "bucket_region or endpoint"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string",
"description": "bucket_region or endpoint"
}
},
"description": "This is a required field if source type is backblaze.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"endpoint",
"access_key",
"secret",
"base_path"
]
},
"dostorage": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if source type is dostorage.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret",
"base_path"
]
},
"webfolder": {
"type": "object",
"properties": {
"base_url": {
"type": "string"
}
},
"description": "This is a required field if source type is webfolder.",
"x-apidog-orders": [
"base_url"
]
},
"cloudflare": {
"type": "object",
"required": [
"bucket_name",
"access_key",
"account_id",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"account_id": {
"type": "string"
},
"bucket_name": {
"type": "string"
}
},
"description": "This is a required field if source type is cloudflare.",
"x-apidog-orders": [
"bucket_name",
"access_key",
"account_id",
"secret",
"base_path"
]
},
"cloudinary": {
"type": "object",
"required": [
"host_name",
"cloud_name"
],
"properties": {
"host_name": {
"type": "string"
},
"cloud_name": {
"type": "string"
}
},
"description": "This is a required field if source type is cloudinary.",
"x-apidog-orders": [
"host_name",
"cloud_name"
]
},
"conditions": {
"type": "array",
"items": {
"type": "object",
"required": [
"function",
"value"
],
"properties": {
"value": {
"type": "string"
},
"function": {
"type": "string"
}
},
"x-apidog-orders": [
"function",
"value"
]
}
},
"replace_operation": {
"type": "object",
"properties": {
"to": {
"type": "string"
},
"from": {
"type": "string"
}
},
"x-apidog-orders": [
"from",
"to"
]
}
},
"x-apidog-orders": [
"conditions",
"name",
"replace_operation",
"type",
"webfolder",
"aws",
"proxy",
"gcs",
"dostorage",
"wasabi",
"linode",
"backblaze",
"cloudflare",
"cloudinary",
"azure"
]
},
"description": "List of fallback origins"
},
"response_headers": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"x-stoplight": {
"id": "h991rmiuuck50"
},
"x-apidog-orders": []
},
"x-stoplight": {
"id": "3c37705m1vqtv"
}
},
"browser_cache_time": {
"type": "integer",
"format": "int32",
"description": "Browser cache time in seconds. For example setting this to 3600 caches the image in browser for 3600 seconds (1 hour)",
"x-stoplight": {
"id": "xfsu66pc7m5ok"
}
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}delete_source
This endpoint removes a image source. All image delivery using this subdomain will be stopped.
{
"type": "object",
"required": [
"image_source_id"
],
"properties": {
"image_source_id": {
"type": "string",
"description": "Image source ID to delete. You can get this on Gumlet dashboard or in list source API."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}purge_image_cache
You can purge cache for any image by using our cache purge API.
{
"type": "object",
"required": [
"subdomain"
],
"properties": {
"paths": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of path of images to purge. It should be provided without any query parameters."
},
"subdomain": {
"type": "string",
"description": "Subdomain is same subdomain you created while creating source. If you serve image from example.gumlet.com, please enter only 'example' for this parameter."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}retrieve_image_analytics
This endpoint helps you get image analytics data like bandwidth consumption, request count, CDN hit ratio, etc.
{
"type": "object",
"required": [],
"properties": {
"filters": {
"type": "object",
"properties": {
"source_id": {
"type": "string",
"description": "Source ID"
}
},
"x-apidog-orders": [
"source_id"
]
},
"metrics": {
"type": "array",
"items": {
"enum": [
"bandwidth_consumption",
"requests_count",
"transformations_count",
"bandwidth_savings",
"origin_hit_rate",
"avg_transformation_response_time",
"status_4xx",
"status_5xx",
"cdn_hit_rate",
"content_type",
"status_2xx",
"avg_response_time",
"top_assets",
"bandwidth_consumption_by_source",
"ai_credit_usage"
],
"type": "string",
"x-apidog-enum": [
{
"name": "",
"value": "bandwidth_consumption",
"description": ""
},
{
"name": "",
"value": "requests_count",
"description": ""
},
{
"name": "",
"value": "transformations_count",
"description": ""
},
{
"name": "",
"value": "bandwidth_savings",
"description": ""
},
{
"name": "",
"value": "origin_hit_rate",
"description": ""
},
{
"name": "",
"value": "avg_transformation_response_time",
"description": ""
},
{
"name": "",
"value": "status_4xx",
"description": ""
},
{
"name": "",
"value": "status_5xx",
"description": ""
},
{
"name": "",
"value": "cdn_hit_rate",
"description": ""
},
{
"name": "",
"value": "content_type",
"description": ""
},
{
"name": "",
"value": "status_2xx",
"description": ""
},
{
"name": "",
"value": "avg_response_time",
"description": ""
},
{
"name": "",
"value": "top_assets",
"description": ""
},
{
"name": "",
"value": "bandwidth_consumption_by_source",
"description": ""
},
{
"name": "",
"value": "ai_credit_usage",
"description": ""
}
]
},
"description": "Define the metric you need the data for. Supported values: `bandwidth_consumption`, `requests_count`, `transformations_count`, `bandwidth_savings`, `origin_hit_rate`, `avg_transformation_response_time`, `status_4xx`, `status_5xx`, `cdn_hit_rate`, `content_type`, `status_2xx`, `avg_response_time`, `top_assets`, `bandwidth_consumption_by_source`, and `ai_credit_usage`."
},
"group_by": {
"enum": [
"daily",
"weekly",
"monthly",
"hourly"
],
"type": "string",
"default": "daily",
"x-apidog-enum": [
{
"name": "",
"value": "daily",
"description": ""
},
{
"name": "",
"value": "weekly",
"description": ""
},
{
"name": "",
"value": "monthly",
"description": ""
},
{
"name": "",
"value": "hourly",
"description": ""
}
]
},
"date_range": {
"type": "object",
"required": [
"start_at",
"end_at"
],
"properties": {
"end_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
},
"start_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
}
},
"description": "The timeframe to get the data for. Currently we only support a maximum of 30 days between `start_at` and `end_at`.",
"x-apidog-orders": [
"start_at",
"end_at"
]
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [],
"properties": {
"title": {
"type": "string",
"description": "Your live stream asset title"
},
"start_at": {
"type": "string",
"format": "date-time"
},
"mp4_access": {
"type": "boolean",
"description": "Creates <code>MP4</code> version for download purpose."
},
"resolution": {
"type": "string",
"description": "Required resolutions in HLS delivery format for live stream. Can be an array of string out of the following values: `240p`, `360p`, `480p`, `540p`, `720p`, and `1080p`. Resized rendition will retain the input aspect ratio."
},
"orientation": {
"enum": [
"landscape",
"potrait"
],
"type": "string"
},
"live_source_id": {
"type": "string",
"description": "Gumlet live video source/collection id."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}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.
{
"type": "object",
"required": [],
"properties": {
"title": {
"type": "string",
"description": "Your live stream asset title"
},
"start_at": {
"type": "string",
"format": "date-time",
"description": ""
},
"live_asset_id": {
"type": "string",
"description": "Gumlet live video asset id."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}get_live_asset_status
This endpoint retrieves the details of a live video asset that has previously been created.
{
"type": "object",
"required": [
"live_asset_id"
],
"properties": {
"live_asset_id": {
"type": "string",
"description": "A live asset id for the previously created asset."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"live_asset_id"
],
"properties": {
"live_asset_id": {
"type": "string",
"description": "Live asset id of the live asset which needs to be deleted."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}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.
{
"type": "object",
"required": [
"live_asset_id"
],
"properties": {
"live_asset_id": {
"type": "string",
"description": "Live asset id of the live stream which needs to be completed."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}filter_live_assets
This endpoint lists live assets on the basis of `status` for the given `live_source_id`.
{
"type": "object",
"required": [
"live_source_id"
],
"properties": {
"size": {
"type": "integer",
"format": "int32",
"description": "Page size for the paginated list."
},
"offset": {
"type": "integer",
"format": "int32",
"description": "Offset value for a paginated list of assets."
},
"status": {
"type": "string",
"description": "To filter live assets on the basis of their current status. Can be specified as a single status value string or comma-separated status values. The status value can be one of `created`, `active`, `complete`, `disconnected`, `errored`, and `deleted`."
},
"live_source_id": {
"type": "string",
"description": "Gumlet live source/collection id."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}recover
Recovers a deleted asset from the recycle bin.
{
"type": "object",
"required": [],
"properties": {
"asset_id": {
"type": "string",
"description": "Gumlet Video Asset Id which needs to be recovered."
}
}
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}start_live
Start a live stream.
{
"type": "object",
"required": [
"live_asset_id"
],
"properties": {
"live_asset_id": {
"type": "string",
"description": "List asset id for which the stream needs to start."
}
}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}thumbnail_upload_live
Generate presigned upload URLs for live stream thumbnails. Supported thumbnail states are `preparing`, `disconnected`, and `end`.
{
"type": "object",
"required": [],
"properties": {
"statuses": {
"anyOf": [
{
"type": "array",
"items": {
"enum": [
"preparing",
"disconnected",
"end"
],
"type": "string"
}
},
{
"type": "string",
"example": "preparing,disconnected"
}
],
"description": "Thumbnail states to upload. You can send an array or a comma-separated string."
},
"live_asset_id": {
"type": "string",
"description": "Gumlet live video asset id."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}list_workspaces
This endpoint list video workspace which are assigned to the user or token.
{
"type": "object",
"required": [],
"properties": {
"size": {
"type": "string",
"default": "10",
"description": "Number of workspace to return in single response."
},
"offset": {
"type": "string",
"default": "0",
"description": "Number of workspaces to skip. For example if you need to list 11 to 20th workspaces, pass offset as 10 and size as 10."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_workspace
Video workspaces are top-level entities in Gumlet. You can use them to organize videos for different teams/departments or use cases.
{
"type": "object",
"required": [],
"properties": {
"aws": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if workspace type is aws.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret",
"base_path",
"endpoint"
]
},
"gcs": {
"type": "object",
"required": [
"bucket_name",
"service_account_key"
],
"properties": {
"bucket_name": {
"type": "string"
},
"service_account_key": {
"type": "string"
}
},
"description": "This is a required field if workspace type is gcs.",
"x-apidog-orders": [
"bucket_name",
"service_account_key"
]
},
"name": {
"type": "string",
"description": "Specify a text string or identifier for the workspace."
},
"type": {
"enum": [
"proxy",
"direct-upload",
"webfolder",
"aws",
"gcs",
"dostorage",
"wasabi",
"cloudinary",
"azure",
"linode",
"backblaze",
"cloudflare",
"zoom"
],
"type": "string",
"default": "direct-upload",
"description": "Video workspaces are top-level entities in Gumlet. You can use them to organize videos for different teams/departments or use cases."
},
"zoom": {
"type": "object",
"required": [
"secret"
],
"properties": {
"secret": {
"type": "string"
}
},
"description": "This is a required field if workspace type is zoom.",
"x-apidog-orders": [
"secret"
]
},
"azure": {
"type": "object",
"required": [
"azure_account_name",
"azure_container_name",
"azure_shared_token",
"azure_path"
],
"properties": {
"azure_path": {
"type": "string"
},
"azure_account_name": {
"type": "string"
},
"azure_shared_token": {
"type": "string"
},
"azure_container_name": {
"type": "string"
}
},
"description": "This is a required field if workspace type is azure.",
"x-apidog-orders": [
"azure_account_name",
"azure_container_name",
"azure_shared_token",
"azure_path"
]
},
"proxy": {
"type": "object",
"required": [
"whitelisted_domains"
],
"properties": {
"whitelisted_domains": {
"type": "string"
}
},
"description": "This is a required field if workspace type is proxy.",
"x-apidog-orders": [
"whitelisted_domains"
]
},
"linode": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if workspace type is linode.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
]
},
"wasabi": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if workspace type is wasabi.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret",
"base_path"
]
},
"backblaze": {
"type": "object",
"required": [
"bucket_name",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"endpoint": {
"type": "string",
"description": "bucket_region or endpoint"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string",
"description": "bucket_region or endpoint"
}
},
"description": "This is a required field if workspace type is backblaze.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"endpoint",
"access_key",
"secret",
"base_path"
]
},
"dostorage": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if workspace type is dostorage.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret",
"base_path"
]
},
"cloudflare": {
"type": "object",
"required": [
"bucket_name",
"access_key",
"account_id",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"account_id": {
"type": "string"
},
"bucket_name": {
"type": "string"
}
},
"description": "This is a required field if workspace type is cloudflare.",
"x-apidog-orders": [
"bucket_name",
"access_key",
"account_id",
"secret",
"base_path"
]
},
"cloudinary": {
"type": "object",
"required": [
"host_name",
"cloud_name"
],
"properties": {
"host_name": {
"type": "string"
},
"cloud_name": {
"type": "string"
}
},
"description": "This is a required field if workspace type is cloudinary.",
"x-apidog-orders": [
"host_name",
"cloud_name"
]
},
"video_protection": {
"type": "object",
"properties": {
"signed_url": {
"type": "boolean",
"default": false
},
"signed_url_secret": {
"type": "string"
},
"blacklisted_countries": {
"type": "array",
"items": {
"type": "string"
},
"description": "Example: [\"IN\",\"USA\"]"
},
"whitelisted_referrers": {
"type": "string"
}
},
"description": "Gumlet provides multiple options for securing your video playback.",
"x-apidog-orders": [
"signed_url",
"signed_url_secret",
"blacklisted_countries",
"whitelisted_referrers"
]
},
"data_localization": {
"enum": [
"us",
"in",
"eu"
],
"type": "string",
"default": "us",
"description": "Data localization region",
"x-apidog-enum": [
{
"name": "USA",
"value": "us",
"description": ""
},
{
"name": "India",
"value": "in",
"description": ""
},
{
"name": "Europe",
"value": "eu",
"description": ""
}
]
},
"default_profile_id": {
"type": "string",
"description": "Gumlet provides the functionality of creating multiple video assets using the same set of parameters."
},
"insight_property_id": {
"type": "string",
"description": "The five to ten character unique identifier of the Gumlet Insight Property available on the dashboard."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}get_workspace
This endpoint get all the data of video workspace that has previously been created.
{
"type": "object",
"required": [
"workspace_id"
],
"properties": {
"workspace_id": {
"type": "string",
"description": "Gumlet workspace ID. You can get it on Gumlet dashboard or retrieve it using list workspace API."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}update_workspace
This endpoint allows users to update video workspace that has previously been created.
{
"type": "object",
"required": [
"workspace_id"
],
"properties": {
"aws": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if workspace type is aws.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret",
"base_path",
"endpoint"
]
},
"gcs": {
"type": "object",
"required": [
"bucket_name",
"service_account_key"
],
"properties": {
"bucket_name": {
"type": "string"
},
"service_account_key": {
"type": "string"
}
},
"description": "This is a required field if workspace type is gcs.",
"x-apidog-orders": [
"bucket_name",
"service_account_key"
]
},
"name": {
"type": "string",
"description": "video workspace name"
},
"type": {
"enum": [
"proxy",
"direct-upload",
"webfolder",
"aws",
"gcs",
"dostorage",
"wasabi",
"cloudinary",
"azure",
"linode",
"backblaze",
"cloudflare",
"zoom"
],
"type": "string",
"description": "Video workspaces are top-level entities in Gumlet. You can use them to organize videos for different teams/departments or use cases."
},
"zoom": {
"type": "object",
"required": [
"secret"
],
"properties": {
"secret": {
"type": "string"
}
},
"description": "This is a required field if workspace type is zoom.",
"x-apidog-orders": [
"secret"
]
},
"azure": {
"type": "object",
"required": [
"azure_account_name",
"azure_container_name",
"azure_shared_token",
"azure_path"
],
"properties": {
"azure_path": {
"type": "string"
},
"azure_account_name": {
"type": "string"
},
"azure_shared_token": {
"type": "string"
},
"azure_container_name": {
"type": "string"
}
},
"description": "This is a required field if workspace type is azure.",
"x-apidog-orders": [
"azure_account_name",
"azure_container_name",
"azure_shared_token",
"azure_path"
]
},
"proxy": {
"type": "object",
"required": [
"whitelisted_domains"
],
"properties": {
"whitelisted_domains": {
"type": "string"
}
},
"description": "This is a required field if workspace type is proxy.",
"x-apidog-orders": [
"whitelisted_domains"
]
},
"linode": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if workspace type is linode.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
]
},
"wasabi": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if workspace type is wasabi.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret",
"base_path"
]
},
"backblaze": {
"type": "object",
"required": [
"bucket_name",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"endpoint": {
"type": "string",
"description": "bucket_region or endpoint"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string",
"description": "bucket_region or endpoint"
}
},
"description": "This is a required field if workspace type is backblaze.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"endpoint",
"access_key",
"secret",
"base_path"
]
},
"dostorage": {
"type": "object",
"required": [
"bucket_name",
"bucket_region",
"access_key",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"bucket_region": {
"type": "string"
}
},
"description": "This is a required field if workspace type is dostorage.",
"x-apidog-orders": [
"bucket_name",
"bucket_region",
"access_key",
"secret",
"base_path"
]
},
"webfolder": {
"type": "object",
"properties": {
"base_url": {
"type": "string"
}
},
"description": "This is a required field if workspace type is webfolder.",
"x-apidog-orders": [
"base_url"
]
},
"cloudflare": {
"type": "object",
"required": [
"bucket_name",
"access_key",
"account_id",
"secret"
],
"properties": {
"secret": {
"type": "string"
},
"base_path": {
"type": "string"
},
"access_key": {
"type": "string"
},
"account_id": {
"type": "string"
},
"bucket_name": {
"type": "string"
}
},
"description": "This is a required field if workspace type is cloudflare.",
"x-apidog-orders": [
"bucket_name",
"access_key",
"account_id",
"secret",
"base_path"
]
},
"cloudinary": {
"type": "object",
"required": [
"host_name",
"cloud_name"
],
"properties": {
"host_name": {
"type": "string"
},
"cloud_name": {
"type": "string"
}
},
"description": "This is a required field if workspace type is cloudinary.",
"x-apidog-orders": [
"host_name",
"cloud_name"
]
},
"temp_cname": {
"type": "array",
"items": {
"type": "string"
},
"description": "cname for channel"
},
"workspace_id": {
"type": "string",
"description": "Gumlet workspace ID. You can get it on Gumlet dashboard or retrieve it using list workspace API."
},
"player_config": {
"type": "object",
"properties": {
"cast": {
"type": "boolean"
},
"loop": {
"type": "boolean"
},
"preload": {
"type": "boolean"
},
"autoplay": {
"type": "boolean"
},
"logo_width": {
"type": "integer",
"format": "int32"
},
"pixel_tags": {
"type": "object",
"properties": {},
"x-apidog-orders": []
},
"include_seo": {
"type": "boolean"
},
"logo_height": {
"type": "integer",
"format": "int32"
},
"disable_seek": {
"type": "boolean"
},
"player_color": {
"type": "string"
},
"show_video_title": {
"type": "boolean"
},
"subtitle_enabled": {
"type": "boolean"
},
"dynamic_watermark": {
"type": "boolean"
},
"watermark_bg_color": {
"type": "string"
},
"watermark_interval": {
"type": "integer",
"format": "int32"
},
"watermark_font_size": {
"type": "integer",
"format": "int32"
},
"watermark_font_color": {
"type": "string"
},
"disable_player_controls": {
"type": "boolean"
},
"powered_by_gumlet_overlay": {
"type": "boolean"
},
"allow_drm_protected_videos": {
"type": "boolean"
}
},
"description": "Configure player settings for this playlist, it overrides the setting set on workspace.",
"x-apidog-orders": [
"preload",
"autoplay",
"disable_seek",
"disable_player_controls",
"powered_by_gumlet_overlay",
"allow_drm_protected_videos",
"loop",
"player_color",
"include_seo",
"subtitle_enabled",
"pixel_tags",
"logo_width",
"logo_height",
"dynamic_watermark",
"watermark_font_size",
"watermark_font_color",
"watermark_bg_color",
"watermark_interval",
"cast",
"show_video_title"
]
},
"channel_settings": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"active": {
"type": "boolean",
"default": false
},
"password": {
"type": "string",
"description": "under channel_settings privacy_type must be \"password-protected\". Password length should be greater than 5 and lesser than 100 characters."
},
"description": {
"type": "string"
},
"privacy_type": {
"enum": [
"\"public\"",
"\"private\"",
"\"password-protected\""
],
"type": "string"
},
"featured_video": {
"type": "string",
"description": "Video asset id, the asset should be in the same workspace as channel"
}
},
"description": "Configurations to set various channel settings.",
"x-apidog-orders": [
"active",
"description",
"title",
"privacy_type",
"featured_video",
"password"
]
},
"video_protection": {
"type": "object",
"properties": {
"signed_url": {
"type": "boolean",
"default": false
},
"signed_url_secret": {
"type": "string"
},
"blacklisted_countries": {
"type": "array",
"items": {
"type": "string"
},
"description": "Example: [\"IN\",\"USA\"]"
},
"whitelisted_referrers": {
"type": "array",
"items": {
"type": "string"
}
}
},
"description": "Gumlet provides multiple options for securing your video playback.",
"x-apidog-orders": [
"signed_url",
"signed_url_secret",
"blacklisted_countries",
"whitelisted_referrers"
]
},
"default_profile_id": {
"type": "string",
"description": "Gumlet provides the functionality of creating multiple video assets using the same set of parameters."
},
"insight_property_id": {
"type": "string",
"description": "The five to ten character unique identifier of the Gumlet Insight Property available on the dashboard."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"workspace_id"
],
"properties": {
"workspace_id": {
"type": "string",
"description": "Gumlet workspace ID. You can get it on Gumlet dashboard or retrieve it using list workspace API."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}list_folders
List folders for a video workspace. Use `parent_id` to list only folders inside a specific parent folder.
{
"type": "object",
"required": [
"workspace_id"
],
"properties": {
"parent_id": {
"type": "string",
"description": "Parent folder id. Send `null` to list root folders."
},
"workspace_id": {
"type": "string",
"description": "Video workspace id."
}
}
}{
"type": "object",
"additionalProperties": true,
"x-fastmcp-wrap-result": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}create_folder
Create a folder inside a video workspace. Optionally provide `parent_id` to create a nested folder.
{
"type": "object",
"required": [
"workspace_id"
],
"properties": {
"name": {
"type": "string",
"description": "Folder name."
},
"parent_id": {
"type": [
"string",
"null"
],
"description": "Parent folder id. Send `null` or omit it to create a root-level folder."
},
"workspace_id": {
"type": "string",
"description": "Video workspace id."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}get_folder
Get a single folder by id.
{
"type": "object",
"required": [
"workspace_id",
"folder_id"
],
"properties": {
"folder_id": {
"type": "string",
"description": "Folder id."
},
"workspace_id": {
"type": "string",
"description": "Video workspace id."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}update_folder
Rename a folder, move it to another parent folder, or move assets into the folder by sending `asset_ids`.
{
"type": "object",
"required": [
"workspace_id",
"folder_id"
],
"properties": {
"name": {
"type": "string",
"description": "New folder name."
},
"asset_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Asset ids to move into this folder."
},
"folder_id": {
"type": "string",
"description": "Folder id."
},
"parent_id": {
"type": [
"string",
"null"
],
"description": "New parent folder id. Send `null` to move the folder to the root level."
},
"workspace_id": {
"type": "string",
"description": "Video workspace id."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}delete_folder
Delete a folder. Descendant folders and assets inside them are deleted by the backend workflow.
{
"type": "object",
"required": [
"workspace_id",
"folder_id"
],
"properties": {
"folder_id": {
"type": "string",
"description": "Folder id."
},
"workspace_id": {
"type": "string",
"description": "Video workspace id."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}remove_assets_folder
Remove one or more assets from their current folder assignment inside the workspace.
{
"type": "object",
"required": [
"workspace_id"
],
"properties": {
"asset_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"workspace_id": {
"type": "string",
"description": "Video workspace id."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}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.
{
"type": "object",
"required": [
"workspace_id"
],
"properties": {
"tag": {
"type": "string",
"description": "Comma-separated asset tags."
},
"size": {
"type": "integer",
"default": 20,
"maximum": 100,
"description": "Page size. Maximum 100."
},
"type": {
"enum": [
"folders",
"videos",
"all"
],
"type": "string",
"default": "all",
"description": "Return `folders`, `videos`, or `all`. Default is `all`."
},
"title": {
"type": "string",
"description": "Search folders or assets by title or description."
},
"offset": {
"type": "integer",
"default": 0,
"description": "Offset for paginated results."
},
"sortBy": {
"enum": [
"title",
"duration",
"uploaded_at",
"created_at"
],
"type": "string",
"description": "Sort assets by a supported field."
},
"status": {
"type": "string",
"description": "Comma-separated asset status values."
},
"orderBy": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Asset sort order."
},
"end_date": {
"type": "string",
"format": "date",
"description": "Asset created_at upper bound. Date in yyyy-MM-dd format."
},
"parent_id": {
"type": "string",
"description": "Parent folder id. Send `null` to browse the root level."
},
"start_date": {
"type": "string",
"format": "date",
"description": "Asset created_at lower bound. Date in yyyy-MM-dd format."
},
"playlist_id": {
"type": "string",
"description": "Filter assets to a playlist."
},
"searchIndex": {
"enum": [
"search_index_for_asset_list",
"cms-search",
"cms-search-v2"
],
"type": "string",
"description": "Search index used for asset title search."
},
"max_duration": {
"type": "number",
"description": "Maximum asset duration in seconds."
},
"min_duration": {
"type": "number",
"description": "Minimum asset duration in seconds."
},
"signed_token": {
"enum": [
"true",
"false"
],
"type": "string",
"default": "false",
"description": "Whether URLs should be pre-signed in the API response. Possible values: `true` and `false`. Default is `false`.",
"x-apidog-enum": [
{
"name": "",
"value": "true",
"description": ""
},
{
"name": "",
"value": "false",
"description": ""
}
]
},
"workspace_id": {
"type": "string",
"description": "Video workspace id."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}invite_channel_viewers
Invite one or more viewers to a members-only channel.
{
"type": "object",
"required": [
"video_workspace_id",
"users"
],
"properties": {
"users": {
"type": "array",
"items": {
"type": "object",
"required": [
"email",
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Viewer display name."
},
"email": {
"type": "string",
"format": "email",
"description": "Viewer email address."
}
}
},
"maxItems": 200,
"minItems": 1,
"description": "List of viewers to invite. A maximum of 200 viewers can be invited in one request."
},
"video_workspace_id": {
"type": "string",
"description": "Gumlet workspace ID. You can get it on Gumlet dashboard or retrieve it using list workspace API."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}remove_channel_viewers
Remove one or more viewers from a channel by email address.
{
"type": "object",
"required": [
"video_workspace_id",
"emails"
],
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string",
"format": "email"
},
"maxItems": 200,
"description": "Email addresses of viewers to remove. A maximum of 200 viewers can be removed in one request."
},
"video_workspace_id": {
"type": "string",
"description": "Gumlet workspace ID. You can get it on Gumlet dashboard or retrieve it using list workspace API."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}invite_channel_viewers_csv
Invite viewers to a channel by uploading a CSV file.
{
"type": "object",
"required": [
"video_workspace_id",
"viewers_csv"
],
"properties": {
"viewers_csv": {
"type": "string",
"format": "binary",
"description": "CSV file containing viewer rows. Required columns: email, name. Maximum 500 viewers."
},
"video_workspace_id": {
"type": "string",
"description": "Gumlet workspace ID. You can get it on Gumlet dashboard or retrieve it using list workspace API."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}asset_status_history
This endpoint retrieves the history of a live video asset that has previously been created.
{
"type": "object",
"required": [
"live_asset_id"
],
"properties": {
"live_asset_id": {
"type": "string",
"description": "A live asset id for the previously created asset."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}viewer_analytics_data
This endpoint retrieves viewer analytics data. This endpoint is use for deep insights on the analytics data.
{
"type": "object",
"required": [],
"properties": {
"filters": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"value"
],
"properties": {
"name": {
"enum": [
"meta_browser",
"meta_operating_system",
"meta_operating_system_version",
"meta_device_category",
"meta_device_manufacturer",
"meta_device_name",
"meta_device_display_width",
"meta_device_display_height",
"meta_country",
"meta_city",
"meta_region",
"player_software",
"player_software_version",
"player_language_code",
"player_name",
"meta_page_url",
"meta_asn",
"custom_user_id",
"custom_user_email",
"custom_video_id",
"custom_video_title",
"video_source_url",
"custom_video_variant_name",
"custom_video_language",
"custom_video_variant",
"custom_data_1",
"custom_data_2",
"custom_data_3",
"custom_data_4",
"custom_data_5"
],
"type": "string",
"description": "Name of the breakdown to filter data on."
},
"value": {
"type": "string",
"description": "Value to be matched for the given filter name. Currently we support exact matches."
},
"operator": {
"enum": [
"equals",
"does not equal",
"contains",
"does not contain",
"is set",
"is not set"
],
"type": "string",
"default": "equals",
"description": "Operator to be used while filtering the data"
}
},
"x-apidog-orders": [
"name",
"value",
"operator"
]
},
"description": "Build *segments* of users using multiple filters on the data, `value` should be an *exact match*"
},
"metrics": {
"type": "array",
"items": {
"enum": [
"views",
"unique_views",
"impressions",
"completion_percent_by_views",
"playing_time",
"concurrent_users",
"widget_form_submitted",
"cta_clicks"
],
"type": "string"
},
"description": "Get data for one or more metrics in the same request. Supported values: `views`, `unique_views`, `impressions`, `completion_percent_by_views`, `playing_time`, `concurrent_users`, `widget_form_submitted`, and `cta_clicks`."
},
"download": {
"type": "boolean",
"description": "Whether the request is to download the chart data"
},
"group_by": {
"enum": [
"daily",
"weekly",
"monthly"
],
"type": "string",
"default": "daily",
"description": "Data can be grouped by `daily`, `weekly` or `monthly`."
},
"date_range": {
"type": "object",
"required": [
"start_at",
"end_at"
],
"properties": {
"end_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
},
"start_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
}
},
"description": "The timeframe to get the data for. The maximum range between start_at and end_at is 60 days.",
"x-apidog-orders": [
"start_at",
"end_at"
]
},
"workspace_id": {
"type": "string",
"description": "Gumlet workspace ID"
},
"chart_dimension": {
"type": "object",
"properties": {
"group_by": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"enum": [
"custom_video_title",
"custom_video_id",
"custom_workspace_id",
"video_source_url",
"video_source_format",
"player_software_version",
"player_software",
"meta_page_url",
"audio_language",
"subtitle_language",
"video_width_pixels",
"video_height_pixels",
"meta_country",
"meta_city",
"meta_device_category",
"meta_device_manufacturer",
"meta_browser",
"meta_browser_version",
"meta_browser_language",
"meta_operating_system",
"meta_operating_system_version",
"meta_device_name",
"meta_asn"
],
"type": "string"
}
},
"x-apidog-orders": [
"name"
]
}
}
},
"description": "Group metrics by the selected dimension. You can select up to 3 dimensions for nested category results; results follow the selection order.",
"x-apidog-orders": [
"group_by"
]
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}analytics_breakdown_data
Read viewer metrics for one workspace, grouped by a breakdown field, for a date range of at most 60 days. This does not change assets or delivery.
{
"type": "object",
"required": [],
"properties": {
"filters": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"value"
],
"properties": {
"name": {
"enum": [
"meta_browser",
"meta_operating_system",
"meta_operating_system_version",
"meta_device_category",
"meta_device_manufacturer",
"meta_device_name",
"meta_device_display_width",
"meta_device_display_height",
"meta_country",
"meta_city",
"meta_region",
"player_software",
"player_software_version",
"player_language_code",
"player_name",
"meta_page_url",
"meta_asn",
"custom_user_id",
"custom_user_email",
"custom_video_id",
"custom_video_title",
"video_source_url",
"custom_video_variant_name",
"custom_video_language",
"custom_video_variant",
"custom_data_1",
"custom_data_2",
"custom_data_3",
"custom_data_4",
"custom_data_5"
],
"type": "string",
"description": "Name of the breakdown to filter data on."
},
"value": {
"type": "string",
"description": "Value to be matched for the given filter name. Currently we support exact matches."
},
"operator": {
"enum": [
"equals",
"does not equal",
"contains",
"does not contain",
"is set",
"is not set"
],
"type": "string",
"default": "equals",
"description": "Operator to be used while filtering the data"
}
}
},
"description": "Build *segments* of users using multiple filters on the data, `value` should be an *exact match*"
},
"breakdowns": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"metric"
],
"properties": {
"name": {
"enum": [
"meta_browser",
"meta_operating_system",
"meta_operating_system_version",
"meta_device_category",
"meta_device_manufacturer",
"meta_device_name",
"meta_device_display_width",
"meta_device_display_height",
"meta_country",
"meta_city",
"meta_region",
"player_software",
"player_software_version",
"player_language_code",
"player_name",
"meta_page_url",
"meta_asn",
"custom_user_id",
"custom_user_email",
"custom_video_id",
"custom_video_title",
"video_source_url",
"custom_video_variant_name",
"custom_video_language",
"custom_video_variant",
"custom_data_1",
"custom_data_2",
"custom_data_3",
"custom_data_4",
"custom_data_5"
],
"type": "string",
"description": "Name of the field to break down the data by."
},
"page": {
"type": "integer",
"default": 1,
"description": "Page number for paginated results."
},
"metric": {
"enum": [
"views",
"unique_views",
"impressions",
"completion_percent_by_views",
"playing_time",
"concurrent_users",
"widget_form_submitted",
"cta_clicks"
],
"type": "string",
"description": "The metric to retrieve breakdown data for."
},
"page_size": {
"type": "integer",
"default": 100,
"description": "Number of results per page."
}
}
},
"maxItems": 3,
"minItems": 1,
"description": "Breakdown fields and metrics to retrieve data for. Supports 1 to 3 breakdowns per request."
},
"date_range": {
"type": "object",
"required": [
"start_at",
"end_at"
],
"properties": {
"end_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
},
"start_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
}
},
"description": "The timeframe to get the data for. The maximum range between start_at and end_at is 60 days."
},
"workspace_id": {
"type": "string",
"description": "The five to ten character unique identifier of the Gumlet workspace ID available on the Video Workspaces."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}analytics_aggregated_data
This endpoint retrieves aggregated data of the given metrics.
{
"type": "object",
"required": [],
"properties": {
"filters": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"value"
],
"properties": {
"name": {
"enum": [
"meta_browser",
"meta_operating_system",
"meta_operating_system_version",
"meta_device_category",
"meta_device_manufacturer",
"meta_device_name",
"meta_device_display_width",
"meta_device_display_height",
"meta_country",
"meta_city",
"meta_region",
"player_software",
"player_software_version",
"player_height_pixels",
"player_width_pixels",
"player_language_code",
"meta_page_url",
"meta_asn",
"custom_user_id",
"user_name",
"user_email",
"custom_video_id",
"custom_video_title",
"video_source_url",
"video_source_hostname",
"video_source_format",
"custom_video_language",
"custom_video_variant",
"custom_data_1",
"custom_data_2",
"custom_data_3",
"custom_data_4",
"custom_data_5"
],
"type": "string",
"description": "Name of the breakdown to filter data on."
},
"value": {
"type": "string",
"description": "Value to be matched for the given filter name. Currently we support exact matches."
},
"operator": {
"enum": [
"equals",
"does not equal",
"contains",
"does not contain",
"is set",
"is not set"
],
"type": "string",
"default": "equals",
"description": "Operator to be used while filtering the data"
}
}
},
"description": "Get aggregations for metrics with multiple filters, `value` should be an exact match"
},
"aggregate": {
"type": "array",
"items": {
"type": "object",
"required": [
"metric",
"function"
],
"properties": {
"metric": {
"enum": [
"views",
"unique_views",
"completion_percent_by_views",
"playing_time",
"concurrent_users",
"impressions",
"widget_form_submitted",
"cta_clicks"
],
"type": "string",
"description": "The metric to be aggregated for this request."
},
"function": {
"enum": [
"sum",
"average"
],
"type": "string",
"description": "Aggregation function which is to be used."
}
}
},
"description": "Aggregate multiple metrics at the same time"
},
"timeframe": {
"type": "object",
"required": [
"start_at",
"end_at"
],
"properties": {
"end_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
},
"start_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
}
},
"description": "The timeframe to get the data for. The maximum range between start_at and end_at is 60 days."
},
"workspace_id": {
"type": "string",
"description": "The unique identifier of the Gumlet workspace ID available on the Video Workspaces."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}image_purge
You can purge the cache for any image path by using this cache purge API.
{
"type": "object",
"required": [
"source_id"
],
"properties": {
"paths": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of path of images to purge. It should be provided without any query parameters."
},
"source_id": {
"type": "string",
"description": "Image Source ID"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}fetch_org
You can get organization data using this API.
{
"type": "object",
"required": [],
"properties": {}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}fetch_user
This endpoint gives information about the user account.
{
"type": "object",
"required": [],
"properties": {}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [],
"properties": {
"page_size": {
"type": "integer",
"default": 100,
"maximum": 500,
"minimum": 10
},
"date_range": {
"type": "object",
"required": [
"start_at",
"end_at"
],
"properties": {
"end_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
},
"start_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
}
},
"x-apidog-orders": [
"start_at",
"end_at"
]
},
"user_email": {
"type": "array",
"items": {
"type": "string",
"format": "email"
},
"description": "Array of user emails to filter the activity logs."
},
"page_number": {
"type": "integer",
"default": 1,
"minimum": 1,
"multipleOf": 1,
"description": "Page number of results."
},
"activity_type": {
"type": "array",
"items": {
"enum": [
"workspace_created",
"video_uploaded",
"video_details_updated",
"video_deleted",
"thumbnail_updated",
"subtitles_updated",
"audio_updated",
"processing_settings_updated",
"player_settings_updated",
"workspace_updated",
"team_member_invited",
"team_member_removed",
"import_started",
"playlist_created",
"playlist_updated",
"playlist_asset_changed",
"security_settings_updated",
"channel_updated",
"video_alert_changed",
"video_report_changed",
"live_stream_created",
"live_stream_started",
"live_stream_thumbnail_updated",
"live_stream_completed",
"live_stream_collection_created",
"live_stream_collection_updated",
"live_stream_deleted",
"image_source_created",
"image_source_updated",
"image_report_changed",
"image_alert_changed",
"user_profile_updated",
"api_key_changed",
"webhook_created",
"webhook_updated",
"webhook_deleted",
"drm_credentials_changed",
"plan_changed",
"billing_details_updated",
"playlist_deleted",
"payment_method_added",
"billing_alert_changed"
],
"type": "string",
"x-apidog-enum": [
{
"name": "",
"value": "workspace_created",
"description": ""
},
{
"name": "",
"value": "video_uploaded",
"description": ""
}
]
},
"description": "Array of activity types to filter the audit logs"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"required": [
"workspace_id"
],
"properties": {
"size": {
"type": "integer",
"default": 20,
"minimum": 10,
"description": "Number of items to return for a single page."
},
"offset": {
"type": "integer",
"minimum": 0,
"description": "Number of items to skip from start of page response."
},
"workspace_id": {
"type": "string",
"description": "ID of workspace for which you want to list the recycle bin items."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}assets_delete_many
Delete multiple VOD assets at once.
{
"type": "object",
"required": [],
"properties": {
"source_id": {
"type": "string",
"description": "Workspace ID from which assets needs to be deleted."
},
"asset_list": {
"type": "array",
"items": {
"type": "string"
},
"description": "LIst of asset ids to delete"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}assets_tag_many
Add / remove tags from multiple assets at once.
{
"type": "object",
"required": [],
"properties": {
"add_tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags to add to given assets."
},
"source_id": {
"type": "string",
"description": "Workspace ID in which the videos needs the operation"
},
"asset_list": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of asset ids to update the tags for."
},
"remove_tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of tags to remove from given assets. Pass empty array if nothing is to be removed."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}asset_analytics
Get video analytics for a single asset.
{
"type": "object",
"required": [
"asset_id"
],
"properties": {
"metrics": {
"type": "array",
"items": {
"enum": [
"impressions",
"views",
"playing_time",
"top_countries",
"top_pages",
"top_cities",
"top_device_types",
"top_browsers",
"heatmap",
"widget_data"
],
"type": "string",
"x-apidog-enum": [
{
"name": "",
"value": "impressions",
"description": ""
},
{
"name": "",
"value": "views",
"description": ""
},
{
"name": "",
"value": "playing_time",
"description": ""
},
{
"name": "",
"value": "top_countries",
"description": ""
},
{
"name": "",
"value": "top_pages",
"description": ""
},
{
"name": "",
"value": "top_cities",
"description": ""
},
{
"name": "",
"value": "top_device_types",
"description": ""
},
{
"name": "",
"value": "top_browsers",
"description": ""
},
{
"name": "",
"value": "heatmap",
"description": ""
},
{
"name": "",
"value": "widget_data",
"description": ""
}
]
},
"description": "List of metrics to return in response."
},
"asset_id": {
"type": "string",
"description": "Gumlet asset ID"
},
"group_by": {
"enum": [
"daily",
"monthly",
"weekly"
],
"type": "string",
"description": "Group the data by this period.",
"x-apidog-enum": [
{
"name": "",
"value": "daily",
"description": ""
},
{
"name": "",
"value": "monthly",
"description": ""
},
{
"name": "",
"value": "weekly",
"description": ""
}
]
},
"page_size": {
"type": "integer",
"description": "Number of items to return per page"
},
"date_range": {
"type": "object",
"required": [
"start_at",
"end_at"
],
"properties": {
"end_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
},
"start_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
}
},
"x-apidog-orders": [
"start_at",
"end_at"
]
},
"page_number": {
"type": "integer",
"description": "Page number to fetch. Starting at 1"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_channel_subscribers
List all channel subscribers.
{
"type": "object",
"required": [
"workspace_id"
],
"properties": {
"page_size": {
"type": "integer",
"default": 10,
"minimum": 1,
"multipleOf": 1,
"description": "Number of items to return per page"
},
"page_number": {
"type": "integer",
"default": 1,
"minimum": 1,
"multipleOf": 1,
"description": "Page number to retrieve. Starts at 1."
},
"workspace_id": {
"type": "string",
"description": "Gumlet workspace ID. You can get it on Gumlet dashboard or retrieve it using list workspace API."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}webhook_history
Get logs history for a given webhook.
{
"type": "object",
"required": [
"webhook_id"
],
"properties": {
"webhook_id": {
"type": "string",
"description": "Webhook ID. You can get it using list webhook endpoint."
}
}
}{
"type": "object",
"additionalProperties": true,
"x-fastmcp-wrap-result": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_invoices
Liost all invoices that are generated so far.
{
"type": "object",
"required": [],
"properties": {}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}fetch_billing_details
Get billing details for this organization.
{
"type": "object",
"required": [],
"properties": {}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}update_billing_details
Update billing details
{
"type": "object",
"required": [],
"properties": {
"city": {
"type": "string",
"description": "Name of the city"
},
"postal": {
"type": "string",
"description": "Postal code of the company"
},
"gst_number": {
"type": "string",
"description": "GST / VAT details of the company"
},
"state_code": {
"type": "string",
"description": "ISO code of the state / region"
},
"address_line": {
"type": "string",
"description": "Address line 1"
},
"company_name": {
"type": "string",
"description": "Company name"
},
"country_code": {
"type": "string",
"description": "ISO country code"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}fetch_upcoming_invoice
Get details about upcoming invoice.
{
"type": "object",
"required": [],
"properties": {}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_live_workspaces
List all live stream workspaces.
{
"type": "object",
"required": [],
"properties": {}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}live_workspace_create
Create live stream workspace.
{
"type": "object",
"required": [],
"properties": {
"name": {
"type": "string",
"description": "Collection name"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}live_workspace_update
Update live stream workspace.
{
"type": "object",
"required": [
"live_workspace_id"
],
"properties": {
"name": {
"type": "string",
"description": "Live stream collection name"
},
"video_source_id": {
"type": "string",
"description": "Video on demand workspace ID"
},
"live_workspace_id": {
"type": "string",
"description": "Live stream workspace ID."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}live_workspace_delete
Delete the live stream workspace.
{
"type": "object",
"required": [
"live_workspace_id"
],
"properties": {
"live_workspace_id": {
"type": "string",
"description": "Live stream workspace ID."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}live_usage_analytics
Get usage analytics for your live streams.
{
"type": "object",
"required": [],
"properties": {
"metrics": {
"type": "array",
"items": {
"enum": [
"bandwidth_consumption",
"asset_duration",
"storage_unit"
],
"type": "string",
"x-apidog-enum": [
{
"name": "",
"value": "bandwidth_consumption",
"description": ""
},
{
"name": "",
"value": "asset_duration",
"description": ""
},
{
"name": "",
"value": "storage_unit",
"description": ""
}
]
},
"description": "List of metrics required in response"
},
"group_by": {
"enum": [
"daily",
"weekly",
"monthly"
],
"type": "string",
"description": "Group the data either weekly, daily or monthly",
"x-apidog-enum": [
{
"name": "",
"value": "daily",
"description": ""
},
{
"name": "",
"value": "weekly",
"description": ""
},
{
"name": "",
"value": "monthly",
"description": ""
}
]
},
"date_range": {
"type": "object",
"required": [
"start_at",
"end_at"
],
"properties": {
"end_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
},
"start_at": {
"type": "string",
"format": "date",
"description": "Date in yyyy-MM-dd format"
}
},
"x-apidog-orders": [
"start_at",
"end_at"
]
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}global_search
Search all video assets / playlists / folders etc across workspaces.
{
"type": "object",
"required": [
"search_query"
],
"properties": {
"size": {
"type": "integer",
"default": 20,
"description": "Number of results to return"
},
"search_query": {
"type": "string",
"description": "Search query term"
},
"assets_offset": {
"type": "integer",
"default": 0,
"description": "Offset for assets"
},
"collection_id": {
"type": "string",
"description": "Workspace ID if you want to limit search to a specific workspace"
},
"folders_offset": {
"type": "integer",
"default": 0,
"description": "Offset for folders"
},
"channels_offset": {
"type": "integer",
"default": 0,
"description": "Offset for channels"
},
"playlists_offset": {
"type": "integer",
"default": 0,
"description": "Offset for playlists"
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}multipart_upload_abort
This call aborts multi-part upload and deletes the already uploaded parts from the storage.
{
"type": "object",
"required": [
"asset_id"
],
"properties": {
"body": {
"type": "object",
"properties": {}
},
"asset_id": {
"type": "string",
"description": "An asset id for the asset."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}multipart_upload_list
Lists all parts uploaded so far.
{
"type": "object",
"required": [
"asset_id"
],
"properties": {
"body": {
"type": "object",
"properties": {}
},
"asset_id": {
"type": "string",
"description": "An asset id for the asset."
}
}
}{
"type": "object",
"additionalProperties": true
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
0 advertised
Resources
2 advertised
python_sdk
Official Gumlet Python SDK on PyPI: pip install gumlet
gumlet://sdk/pythonnodejs_sdk
Official Gumlet Node.js SDK on npm: npm install @gumlet/nodejs-sdk
gumlet://sdk/nodejs30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1190 ms
- 95th percentile latency
- 1190 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1190 ms · metadata changed · 95 tool(s), 2 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http gumlet-mcp https://mcp.gumlet.com/mcp/v1Codex
codex mcp add gumlet-mcp --url https://mcp.gumlet.com/mcp/v1Cursor
{
"mcpServers": {
"gumlet-mcp": {
"url": "https://mcp.gumlet.com/mcp/v1"
}
}
}Cline
{
"mcpServers": {
"gumlet-mcp": {
"type": "streamableHttp",
"url": "https://mcp.gumlet.com/mcp/v1",
"disabled": false
}
}
}VS Code
{
"servers": {
"gumlet-mcp": {
"type": "http",
"url": "https://mcp.gumlet.com/mcp/v1"
}
}
}Gemini CLI
gemini mcp add --transport http gumlet-mcp https://mcp.gumlet.com/mcp/v1Claude Desktop
https://mcp.gumlet.com/mcp/v1Windsurf
{
"mcpServers": {
"gumlet-mcp": {
"serverUrl": "https://mcp.gumlet.com/mcp/v1"
}
}
}Let your agent find its tools
Find servers like Gumlet MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.