Koskamo

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.

Gumlet MCP logo, by GumletCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by Gumlet
MCP endpoint (Streamable HTTP)
https://mcp.gumlet.com/mcp/v1
Vendor documentation

What its tools do

95 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

95 of 95 have a description · 95 of 95 declare behavior hints · 70 of 86 with parameters document them all

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

Community listingRegistry 2.3.7

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
Server-advertised capabilities
{
  "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.

Operate only the authenticated Gumlet account. A workspace id is the same value as collection_id or source_id. When the user does not provide a workspace, call list_workspaces before other workspace-scoped tools. API calls need the caller's GUMLET_API_KEY header or an Authorization Bearer token. Do not send data outside that account, publish content, or contact external recipients. Billing tools only list this organization's invoices and read or update its billing details. list_sdks and get_sdk only return public install instructions: pip install gumlet, and npm install @gumlet/nodejs-sdk. They do not change the account. Vimeo import is dashboard-only. When the user wants to import or migrate videos from Vimeo, call import_from_vimeo and send them to Dashboard → Video → Import videos (https://dash.gumlet.com/video/import-videos/). Do not import Vimeo videos with create_asset.

Tools

95 advertised

insights_breakdown_data
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

insights_breakdown_data input schema
{
  "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."
    }
  }
}
insights_breakdown_data output schema
{
  "type": "object",
  "additionalProperties": true
}
insights_breakdown_data annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
insights_aggregated_data
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint retrieves aggregated data of the given metrics.

insights_aggregated_data input schema
{
  "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."
    }
  }
}
insights_aggregated_data output schema
{
  "type": "object",
  "additionalProperties": true
}
insights_aggregated_data annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_sdks
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_sdks input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
list_sdks output schema
{
  "type": "object",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      }
    }
  },
  "x-fastmcp-wrap-result": true
}
list_sdks annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_sdk
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_sdk input schema
{
  "type": "object",
  "required": [
    "language"
  ],
  "properties": {
    "language": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_sdk output schema
{
  "type": "object",
  "additionalProperties": true
}
get_sdk annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
import_from_vimeo
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

import_from_vimeo input schema
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
import_from_vimeo output schema
{
  "type": "object",
  "additionalProperties": true
}
import_from_vimeo annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_asset
Advertised by the server during the last successful anonymous check.
Open-world

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.

create_asset input schema
{
  "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`**"
    }
  }
}
create_asset output schema
{
  "type": "object",
  "additionalProperties": true
}
create_asset annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
create_asset_direct_upload
Advertised by the server during the last successful anonymous check.
Open-world

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).

create_asset_direct_upload input schema
{
  "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`**"
    }
  }
}
create_asset_direct_upload output schema
{
  "type": "object",
  "additionalProperties": true
}
create_asset_direct_upload annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
get_asset_details
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

get_asset_details input schema
{
  "type": "object",
  "required": [
    "asset_id"
  ],
  "properties": {
    "asset_id": {
      "type": "string",
      "description": "An asset id for the previously created asset."
    }
  }
}
get_asset_details output schema
{
  "type": "object",
  "additionalProperties": true
}
get_asset_details annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_asset
Advertised by the server during the last successful anonymous check.
Advertised destructive

This endpoint removes an asset given its unique asset id. The asset will be removed from storage as well, associated URLs will be inaccessible.

delete_asset input schema
{
  "type": "object",
  "required": [
    "asset_id"
  ],
  "properties": {
    "asset_id": {
      "type": "string",
      "description": "Asset id of the video asset which needs to be deleted."
    }
  }
}
delete_asset annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
update_asset
Advertised by the server during the last successful anonymous check.
Advertised destructive

This endpoint allows users to update video asset that has previously been created.

update_asset input schema
{
  "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."
    }
  }
}
update_asset output schema
{
  "type": "object",
  "additionalProperties": true
}
update_asset annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
thumbnail_select
Advertised by the server during the last successful anonymous check.

Select frame from video to use as thumbnail.

thumbnail_select input schema
{
  "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"
    }
  }
}
thumbnail_select output schema
{
  "type": "object",
  "additionalProperties": true
}
thumbnail_select annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
thumbnail_upload
Advertised by the server during the last successful anonymous check.

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>' ```

thumbnail_upload input schema
{
  "type": "object",
  "required": [
    "asset_ID"
  ],
  "properties": {
    "asset_ID": {
      "type": "string",
      "description": "An asset id for the previously created asset."
    }
  }
}
thumbnail_upload output schema
{
  "type": "object",
  "additionalProperties": true
}
thumbnail_upload annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
upload_subtitles
Advertised by the server during the last successful anonymous check.

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.

upload_subtitles input schema
{
  "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)"
    }
  }
}
upload_subtitles output schema
{
  "type": "object",
  "additionalProperties": true
}
upload_subtitles annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
complete_subtitle_upload
Advertised by the server during the last successful anonymous check.

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.

complete_subtitle_upload input schema
{
  "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"
    }
  }
}
complete_subtitle_upload output schema
{
  "type": "object",
  "additionalProperties": true
}
complete_subtitle_upload annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
asset_audio_upload
Advertised by the server during the last successful anonymous check.

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.

asset_audio_upload input schema
{
  "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)"
    }
  }
}
asset_audio_upload output schema
{
  "type": "object",
  "additionalProperties": true
}
asset_audio_upload annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
complete_audio_upload
Advertised by the server during the last successful anonymous check.

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.

complete_audio_upload input schema
{
  "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."
          }
        }
      }
    }
  }
}
complete_audio_upload output schema
{
  "type": "object",
  "additionalProperties": true
}
complete_audio_upload annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
create_update_chapter
Advertised by the server during the last successful anonymous check.

This endpoint will create/update video asset chapters.

create_update_chapter input schema
{
  "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"
    }
  }
}
create_update_chapter output schema
{
  "type": "object",
  "additionalProperties": true
}
create_update_chapter annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
retrieve_analytics
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint gives usage analytics data of your videos. Ex - top assets, bandwidth consumption

retrieve_analytics input schema
{
  "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."
    }
  }
}
retrieve_analytics output schema
{
  "type": "object",
  "additionalProperties": true
}
retrieve_analytics annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
top_assets
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint lists top streamed assets in a video collection

top_assets input schema
{
  "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"
    }
  }
}
top_assets output schema
{
  "type": "object",
  "additionalProperties": true
}
top_assets annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
retrieve_part_url
Advertised by the server during the last successful anonymous check.
Advertised read-only

Use this endpoint to retrieve a pre-signed upload URL for the given part number.

retrieve_part_url input schema
{
  "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"
    }
  }
}
retrieve_part_url output schema
{
  "type": "object",
  "additionalProperties": true
}
retrieve_part_url annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
complete_multipart_upload
Advertised by the server during the last successful anonymous check.

Once you upload all parts to S3 bucket via pre-signed URL, use this endpoint to complete the multipart upload.

complete_multipart_upload input schema
{
  "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"
    }
  }
}
complete_multipart_upload output schema
{
  "type": "object",
  "additionalProperties": true
}
complete_multipart_upload annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
list_profiles
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint retrieves the details of all profiles that have previously been created.

list_profiles input schema
{
  "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."
    }
  }
}
list_profiles output schema
{
  "type": "object",
  "additionalProperties": true
}
list_profiles annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_profile
Advertised by the server during the last successful anonymous check.

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.

create_profile input schema
{
  "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`**"
    }
  }
}
create_profile output schema
{
  "type": "object",
  "additionalProperties": true
}
create_profile annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_profile
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint retrieves the details of a video profile that has previously been created.

get_profile input schema
{
  "type": "object",
  "required": [
    "profile_id"
  ],
  "properties": {
    "profile_id": {
      "type": "string",
      "description": "Profile id of the profile which needs to be retrieved."
    }
  }
}
get_profile output schema
{
  "type": "object",
  "additionalProperties": true
}
get_profile annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_profile
Advertised by the server during the last successful anonymous check.

Update an existing profile. Settings provided in body parameters will only be updated in the existing profile.

update_profile input schema
{
  "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`**"
    }
  }
}
update_profile output schema
{
  "type": "object",
  "additionalProperties": true
}
update_profile annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_profile
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

delete_profile input schema
{
  "type": "object",
  "required": [
    "profile_id"
  ],
  "properties": {
    "profile_id": {
      "type": "string",
      "description": "Profile id of the profile which needs to be deleted."
    }
  }
}
delete_profile output schema
{
  "type": "object",
  "additionalProperties": true
}
delete_profile annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_all_playlists
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get all playlists for given workspace

get_all_playlists input schema
{
  "type": "object",
  "required": [
    "collection_id"
  ],
  "properties": {
    "collection_id": {
      "type": "string",
      "description": "Workspace ID"
    }
  }
}
get_all_playlists output schema
{
  "type": "object",
  "additionalProperties": true,
  "x-fastmcp-wrap-result": true
}
get_all_playlists annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_playlist
Advertised by the server during the last successful anonymous check.

Create new playlist inside video wprkspace

create_playlist input schema
{
  "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"
    }
  }
}
create_playlist output schema
{
  "type": "object",
  "additionalProperties": true
}
create_playlist annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
add_asset_playlist
Advertised by the server during the last successful anonymous check.

This operation adds a single asset or a list of assets to a playlist.

add_asset_playlist input schema
{
  "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."
    }
  }
}
add_asset_playlist output schema
{
  "type": "object",
  "additionalProperties": true
}
add_asset_playlist annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
remove_asset_playlist
Advertised by the server during the last successful anonymous check.
Advertised destructive

Removed an asset or list of assets from a given playlist.

remove_asset_playlist input schema
{
  "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."
    }
  }
}
remove_asset_playlist output schema
{
  "type": "object",
  "additionalProperties": true
}
remove_asset_playlist annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
update_playlist
Advertised by the server during the last successful anonymous check.
Open-world

This endpoint allows you to update playlist name, channel visibility, or playlist order on a channel page.

update_playlist input schema
{
  "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."
    }
  }
}
update_playlist output schema
{
  "type": "object",
  "additionalProperties": true
}
update_playlist annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_playlist
Advertised by the server during the last successful anonymous check.
Advertised destructive

Deletes a playlist by plalist ID.

delete_playlist input schema
{
  "type": "object",
  "required": [
    "playlist_id"
  ],
  "properties": {
    "playlist_id": {
      "type": "string",
      "description": "Playlist ID that is to be deleted."
    }
  }
}
delete_playlist annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_playlist_assets
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get a list of all assets inside playlist. You can choose in which order are assets returned.

get_playlist_assets input schema
{
  "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."
    }
  }
}
get_playlist_assets output schema
{
  "type": "object",
  "additionalProperties": true
}
get_playlist_assets annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
reorder_asset_playlist
Advertised by the server during the last successful anonymous check.

Reorder videos inside a playlist either by moving a single asset to a position or by sorting the playlist by title or created date.

reorder_asset_playlist input schema
{
  "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."
    }
  }
}
reorder_asset_playlist output schema
{
  "type": "object",
  "additionalProperties": true
}
reorder_asset_playlist annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
list_webhooks
Advertised by the server during the last successful anonymous check.
Advertised read-only

List all webhooks.

list_webhooks input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
list_webhooks output schema
{
  "type": "object",
  "additionalProperties": true
}
list_webhooks annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_webhook
Advertised by the server during the last successful anonymous check.
Open-world

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.

create_webhook input schema
{
  "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."
    }
  }
}
create_webhook output schema
{
  "type": "object",
  "additionalProperties": true
}
create_webhook annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
update_webhook
Advertised by the server during the last successful anonymous check.
Open-world

Update a webhook listener.

update_webhook input schema
{
  "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."
    }
  }
}
update_webhook output schema
{
  "type": "object",
  "additionalProperties": true
}
update_webhook annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_webhook
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete webhook listener endpoint.

delete_webhook input schema
{
  "type": "object",
  "required": [
    "webhook_id"
  ],
  "properties": {
    "webhook_id": {
      "type": "string",
      "description": "Unique identifier for the Gumlet Webhook which needs to be deleted."
    }
  }
}
delete_webhook output schema
{
  "type": "object",
  "additionalProperties": true
}
delete_webhook annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
list_sources
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint list image sources which are assigned to the user or token.

list_sources input schema
{
  "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."
    }
  }
}
list_sources output schema
{
  "type": "object",
  "additionalProperties": true
}
list_sources annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_image_source
Advertised by the server during the last successful anonymous check.

This endpoint allows users to create image source.

create_image_source input schema
{
  "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."
    }
  }
}
create_image_source output schema
{
  "type": "object",
  "additionalProperties": true
}
create_image_source annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_image_sources_source_id
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get all details about image source.

get_image_sources_source_id input schema
{
  "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."
    }
  }
}
get_image_sources_source_id output schema
{
  "type": "object",
  "additionalProperties": true
}
get_image_sources_source_id annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_image_source
Advertised by the server during the last successful anonymous check.

Update settings on an image source that already exists. This does not create a source or purge cached images.

update_image_source input schema
{
  "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"
      }
    }
  }
}
update_image_source output schema
{
  "type": "object",
  "additionalProperties": true
}
update_image_source annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_source
Advertised by the server during the last successful anonymous check.
Advertised destructive

This endpoint removes a image source. All image delivery using this subdomain will be stopped.

delete_source input schema
{
  "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."
    }
  }
}
delete_source output schema
{
  "type": "object",
  "additionalProperties": true
}
delete_source annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
purge_image_cache
Advertised by the server during the last successful anonymous check.
Advertised destructive

You can purge cache for any image by using our cache purge API.

purge_image_cache input schema
{
  "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."
    }
  }
}
purge_image_cache output schema
{
  "type": "object",
  "additionalProperties": true
}
purge_image_cache annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
retrieve_image_analytics
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint helps you get image analytics data like bandwidth consumption, request count, CDN hit ratio, etc.

retrieve_image_analytics input schema
{
  "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"
      ]
    }
  }
}
retrieve_image_analytics output schema
{
  "type": "object",
  "additionalProperties": true
}
retrieve_image_analytics annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_live_asset
Advertised by the server during the last successful anonymous check.

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.

create_live_asset input schema
{
  "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."
    }
  }
}
create_live_asset output schema
{
  "type": "object",
  "additionalProperties": true
}
create_live_asset annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_live_asset
Advertised by the server during the last successful anonymous check.

A live asset refers to media content/video that is live-streamed through Gumlet. This endpoint allows users to update a live streaming asset.

update_live_asset input schema
{
  "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."
    }
  }
}
update_live_asset output schema
{
  "type": "object",
  "additionalProperties": true
}
update_live_asset annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_live_asset_status
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint retrieves the details of a live video asset that has previously been created.

get_live_asset_status input schema
{
  "type": "object",
  "required": [
    "live_asset_id"
  ],
  "properties": {
    "live_asset_id": {
      "type": "string",
      "description": "A live asset id for the previously created asset."
    }
  }
}
get_live_asset_status output schema
{
  "type": "object",
  "additionalProperties": true
}
get_live_asset_status annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_live_asset
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

delete_live_asset input schema
{
  "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."
    }
  }
}
delete_live_asset output schema
{
  "type": "object",
  "additionalProperties": true
}
delete_live_asset annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
complete_live_stream
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

complete_live_stream input schema
{
  "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."
    }
  }
}
complete_live_stream output schema
{
  "type": "object",
  "additionalProperties": true
}
complete_live_stream annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
filter_live_assets
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint lists live assets on the basis of `status` for the given `live_source_id`.

filter_live_assets input schema
{
  "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."
    }
  }
}
filter_live_assets output schema
{
  "type": "object",
  "additionalProperties": true
}
filter_live_assets annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
recover
Advertised by the server during the last successful anonymous check.

Recovers a deleted asset from the recycle bin.

recover input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "asset_id": {
      "type": "string",
      "description": "Gumlet Video Asset Id which needs to be recovered."
    }
  }
}
recover annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
start_live
Advertised by the server during the last successful anonymous check.
Open-world

Start a live stream.

start_live input schema
{
  "type": "object",
  "required": [
    "live_asset_id"
  ],
  "properties": {
    "live_asset_id": {
      "type": "string",
      "description": "List asset id for which the stream needs to start."
    }
  }
}
start_live annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
thumbnail_upload_live
Advertised by the server during the last successful anonymous check.

Generate presigned upload URLs for live stream thumbnails. Supported thumbnail states are `preparing`, `disconnected`, and `end`.

thumbnail_upload_live input schema
{
  "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."
    }
  }
}
thumbnail_upload_live output schema
{
  "type": "object",
  "additionalProperties": true
}
thumbnail_upload_live annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
list_workspaces
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint list video workspace which are assigned to the user or token.

list_workspaces input schema
{
  "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."
    }
  }
}
list_workspaces output schema
{
  "type": "object",
  "additionalProperties": true
}
list_workspaces annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_workspace
Advertised by the server during the last successful anonymous check.

Video workspaces are top-level entities in Gumlet. You can use them to organize videos for different teams/departments or use cases.

create_workspace input schema
{
  "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."
    }
  }
}
create_workspace output schema
{
  "type": "object",
  "additionalProperties": true
}
create_workspace annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_workspace
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint get all the data of video workspace that has previously been created.

get_workspace input schema
{
  "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."
    }
  }
}
get_workspace output schema
{
  "type": "object",
  "additionalProperties": true
}
get_workspace annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_workspace
Advertised by the server during the last successful anonymous check.

This endpoint allows users to update video workspace that has previously been created.

update_workspace input schema
{
  "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."
    }
  }
}
update_workspace output schema
{
  "type": "object",
  "additionalProperties": true
}
update_workspace annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_workspace
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

delete_workspace input schema
{
  "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."
    }
  }
}
delete_workspace output schema
{
  "type": "object",
  "additionalProperties": true
}
delete_workspace annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
list_folders
Advertised by the server during the last successful anonymous check.
Advertised read-only

List folders for a video workspace. Use `parent_id` to list only folders inside a specific parent folder.

list_folders input schema
{
  "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."
    }
  }
}
list_folders output schema
{
  "type": "object",
  "additionalProperties": true,
  "x-fastmcp-wrap-result": true
}
list_folders annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_folder
Advertised by the server during the last successful anonymous check.

Create a folder inside a video workspace. Optionally provide `parent_id` to create a nested folder.

create_folder input schema
{
  "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."
    }
  }
}
create_folder output schema
{
  "type": "object",
  "additionalProperties": true
}
create_folder annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_folder
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get a single folder by id.

get_folder input schema
{
  "type": "object",
  "required": [
    "workspace_id",
    "folder_id"
  ],
  "properties": {
    "folder_id": {
      "type": "string",
      "description": "Folder id."
    },
    "workspace_id": {
      "type": "string",
      "description": "Video workspace id."
    }
  }
}
get_folder output schema
{
  "type": "object",
  "additionalProperties": true
}
get_folder annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_folder
Advertised by the server during the last successful anonymous check.

Rename a folder, move it to another parent folder, or move assets into the folder by sending `asset_ids`.

update_folder input schema
{
  "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."
    }
  }
}
update_folder output schema
{
  "type": "object",
  "additionalProperties": true
}
update_folder annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_folder
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a folder. Descendant folders and assets inside them are deleted by the backend workflow.

delete_folder input schema
{
  "type": "object",
  "required": [
    "workspace_id",
    "folder_id"
  ],
  "properties": {
    "folder_id": {
      "type": "string",
      "description": "Folder id."
    },
    "workspace_id": {
      "type": "string",
      "description": "Video workspace id."
    }
  }
}
delete_folder output schema
{
  "type": "object",
  "additionalProperties": true
}
delete_folder annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
remove_assets_folder
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove one or more assets from their current folder assignment inside the workspace.

remove_assets_folder input schema
{
  "type": "object",
  "required": [
    "workspace_id"
  ],
  "properties": {
    "asset_ids": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "workspace_id": {
      "type": "string",
      "description": "Video workspace id."
    }
  }
}
remove_assets_folder output schema
{
  "type": "object",
  "additionalProperties": true
}
remove_assets_folder annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
list_assets
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_assets input schema
{
  "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."
    }
  }
}
list_assets output schema
{
  "type": "object",
  "additionalProperties": true
}
list_assets annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
invite_channel_viewers
Advertised by the server during the last successful anonymous check.
Open-world

Invite one or more viewers to a members-only channel.

invite_channel_viewers input schema
{
  "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."
    }
  }
}
invite_channel_viewers output schema
{
  "type": "object",
  "additionalProperties": true
}
invite_channel_viewers annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
remove_channel_viewers
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove one or more viewers from a channel by email address.

remove_channel_viewers input schema
{
  "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."
    }
  }
}
remove_channel_viewers output schema
{
  "type": "object",
  "additionalProperties": true
}
remove_channel_viewers annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
invite_channel_viewers_csv
Advertised by the server during the last successful anonymous check.
Open-world

Invite viewers to a channel by uploading a CSV file.

invite_channel_viewers_csv input schema
{
  "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."
    }
  }
}
invite_channel_viewers_csv output schema
{
  "type": "object",
  "additionalProperties": true
}
invite_channel_viewers_csv annotations
{
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
asset_status_history
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint retrieves the history of a live video asset that has previously been created.

asset_status_history input schema
{
  "type": "object",
  "required": [
    "live_asset_id"
  ],
  "properties": {
    "live_asset_id": {
      "type": "string",
      "description": "A live asset id for the previously created asset."
    }
  }
}
asset_status_history output schema
{
  "type": "object",
  "additionalProperties": true
}
asset_status_history annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
viewer_analytics_data
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint retrieves viewer analytics data. This endpoint is use for deep insights on the analytics data.

viewer_analytics_data input schema
{
  "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"
      ]
    }
  }
}
viewer_analytics_data output schema
{
  "type": "object",
  "additionalProperties": true
}
viewer_analytics_data annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
analytics_breakdown_data
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

analytics_breakdown_data input schema
{
  "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."
    }
  }
}
analytics_breakdown_data output schema
{
  "type": "object",
  "additionalProperties": true
}
analytics_breakdown_data annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
analytics_aggregated_data
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint retrieves aggregated data of the given metrics.

analytics_aggregated_data input schema
{
  "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."
    }
  }
}
analytics_aggregated_data output schema
{
  "type": "object",
  "additionalProperties": true
}
analytics_aggregated_data annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
image_purge
Advertised by the server during the last successful anonymous check.
Advertised destructive

You can purge the cache for any image path by using this cache purge API.

image_purge input schema
{
  "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"
    }
  }
}
image_purge output schema
{
  "type": "object",
  "additionalProperties": true
}
image_purge annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
fetch_org
Advertised by the server during the last successful anonymous check.
Advertised read-only

You can get organization data using this API.

fetch_org input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
fetch_org output schema
{
  "type": "object",
  "additionalProperties": true
}
fetch_org annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
fetch_user
Advertised by the server during the last successful anonymous check.
Advertised read-only

This endpoint gives information about the user account.

fetch_user input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
fetch_user output schema
{
  "type": "object",
  "additionalProperties": true
}
fetch_user annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
fetch_audit_logs
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

fetch_audit_logs input schema
{
  "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"
    }
  }
}
fetch_audit_logs output schema
{
  "type": "object",
  "additionalProperties": true
}
fetch_audit_logs annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_recycle_bin
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_recycle_bin input schema
{
  "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."
    }
  }
}
list_recycle_bin output schema
{
  "type": "object",
  "additionalProperties": true
}
list_recycle_bin annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
assets_delete_many
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete multiple VOD assets at once.

assets_delete_many input schema
{
  "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"
    }
  }
}
assets_delete_many output schema
{
  "type": "object",
  "additionalProperties": true
}
assets_delete_many annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
assets_tag_many
Advertised by the server during the last successful anonymous check.
Advertised destructive

Add / remove tags from multiple assets at once.

assets_tag_many input schema
{
  "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."
    }
  }
}
assets_tag_many output schema
{
  "type": "object",
  "additionalProperties": true
}
assets_tag_many annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
asset_analytics
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get video analytics for a single asset.

asset_analytics input schema
{
  "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"
    }
  }
}
asset_analytics output schema
{
  "type": "object",
  "additionalProperties": true
}
asset_analytics annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_channel_subscribers
Advertised by the server during the last successful anonymous check.
Advertised read-only

List all channel subscribers.

list_channel_subscribers input schema
{
  "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."
    }
  }
}
list_channel_subscribers output schema
{
  "type": "object",
  "additionalProperties": true
}
list_channel_subscribers annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
webhook_history
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get logs history for a given webhook.

webhook_history input schema
{
  "type": "object",
  "required": [
    "webhook_id"
  ],
  "properties": {
    "webhook_id": {
      "type": "string",
      "description": "Webhook ID. You can get it using list webhook endpoint."
    }
  }
}
webhook_history output schema
{
  "type": "object",
  "additionalProperties": true,
  "x-fastmcp-wrap-result": true
}
webhook_history annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_invoices
Advertised by the server during the last successful anonymous check.
Advertised read-only

Liost all invoices that are generated so far.

list_invoices input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
list_invoices output schema
{
  "type": "object",
  "additionalProperties": true
}
list_invoices annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
fetch_billing_details
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get billing details for this organization.

fetch_billing_details input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
fetch_billing_details output schema
{
  "type": "object",
  "additionalProperties": true
}
fetch_billing_details annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
update_billing_details
Advertised by the server during the last successful anonymous check.

Update billing details

update_billing_details input schema
{
  "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"
    }
  }
}
update_billing_details output schema
{
  "type": "object",
  "additionalProperties": true
}
update_billing_details annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
fetch_upcoming_invoice
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get details about upcoming invoice.

fetch_upcoming_invoice input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
fetch_upcoming_invoice output schema
{
  "type": "object",
  "additionalProperties": true
}
fetch_upcoming_invoice annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_live_workspaces
Advertised by the server during the last successful anonymous check.
Advertised read-only

List all live stream workspaces.

list_live_workspaces input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
list_live_workspaces output schema
{
  "type": "object",
  "additionalProperties": true
}
list_live_workspaces annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
live_workspace_create
Advertised by the server during the last successful anonymous check.

Create live stream workspace.

live_workspace_create input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "name": {
      "type": "string",
      "description": "Collection name"
    }
  }
}
live_workspace_create output schema
{
  "type": "object",
  "additionalProperties": true
}
live_workspace_create annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
live_workspace_update
Advertised by the server during the last successful anonymous check.

Update live stream workspace.

live_workspace_update input schema
{
  "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."
    }
  }
}
live_workspace_update output schema
{
  "type": "object",
  "additionalProperties": true
}
live_workspace_update annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
live_workspace_delete
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete the live stream workspace.

live_workspace_delete input schema
{
  "type": "object",
  "required": [
    "live_workspace_id"
  ],
  "properties": {
    "live_workspace_id": {
      "type": "string",
      "description": "Live stream workspace ID."
    }
  }
}
live_workspace_delete output schema
{
  "type": "object",
  "additionalProperties": true
}
live_workspace_delete annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
live_usage_analytics
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get usage analytics for your live streams.

live_usage_analytics input schema
{
  "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"
      ]
    }
  }
}
live_usage_analytics output schema
{
  "type": "object",
  "additionalProperties": true
}
live_usage_analytics annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
global_search
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

global_search input schema
{
  "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"
    }
  }
}
global_search output schema
{
  "type": "object",
  "additionalProperties": true
}
global_search annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
multipart_upload_abort
Advertised by the server during the last successful anonymous check.
Advertised destructive

This call aborts multi-part upload and deletes the already uploaded parts from the storage.

multipart_upload_abort input schema
{
  "type": "object",
  "required": [
    "asset_id"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {}
    },
    "asset_id": {
      "type": "string",
      "description": "An asset id for the asset."
    }
  }
}
multipart_upload_abort output schema
{
  "type": "object",
  "additionalProperties": true
}
multipart_upload_abort annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
multipart_upload_list
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists all parts uploaded so far.

multipart_upload_list input schema
{
  "type": "object",
  "required": [
    "asset_id"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {}
    },
    "asset_id": {
      "type": "string",
      "description": "An asset id for the asset."
    }
  }
}
multipart_upload_list output schema
{
  "type": "object",
  "additionalProperties": true
}
multipart_upload_list annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

0 advertised

No prompt definitions available.

Resources

2 advertised

python_sdk

Advertised by the server during the last successful anonymous check.

Official Gumlet Python SDK on PyPI: pip install gumlet

python_sdk URI
gumlet://sdk/python

MIME type: application/json

nodejs_sdk

Advertised by the server during the last successful anonymous check.

Official Gumlet Node.js SDK on npm: npm install @gumlet/nodejs-sdk

nodejs_sdk URI
gumlet://sdk/nodejs

MIME type: application/json

30-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.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http gumlet-mcp https://mcp.gumlet.com/mcp/v1

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add gumlet-mcp --url https://mcp.gumlet.com/mcp/v1

Cursor

Merge this server into .cursor/mcp.json in your project, then enable gumlet-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "gumlet-mcp": {
      "url": "https://mcp.gumlet.com/mcp/v1"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "gumlet-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.gumlet.com/mcp/v1",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start gumlet-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "gumlet-mcp": {
      "type": "http",
      "url": "https://mcp.gumlet.com/mcp/v1"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http gumlet-mcp https://mcp.gumlet.com/mcp/v1

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.gumlet.com/mcp/v1

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "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.