openapi: 3.2.0 info: title: Gumlet Webhooks API description: Gumlet helps developers deliver online video and images. This API encompasses Gumlet Video, Image and Video Analytics functionality to help you build your products better and faster than ever before. version: '1.4' contact: name: Gumlet Support Team url: https://www.gumlet.com/contact/ email: support@gumlet.com termsOfService: https://www.gumlet.com/terms/ license: name: Apache 2.0 url: https://opensource.org/license/apache-2.0 x-scalar-sdk-installation: - lang: TypeScript description: '```sh npm install @gumlet/nodejs-sdk ```' - lang: Python description: '```sh pip install gumlet ```' servers: - url: https://api.gumlet.com/v1 security: - API_KEY: [] tags: - name: Webhooks description: Configure webhooks for account and asset events. paths: /org/webhooks: post: summary: Create Webhook description: Creates a new webhook listener. operationId: create-webhook requestBody: content: application/json: schema: type: object required: - url - secret_token - triggers - sources properties: url: type: string description: URL from the application you want to send data to. secret_token: type: string description: Authentication token to ensure legitimacy of Gumlet Webhook request on your application. triggers: type: array description: Triggers for the invocation of webhookos, supported option is `status`. items: type: string sources: type: array description: List of video collection identifiers for which webhooks are needed to be invoked. items: type: string responses: '200': description: '200' content: application/json: examples: Result: value: id: 65eed75eadeea8478f14ebd4 url: https://webhook.site/16df065a-b398-48bc-b825-b0804979c5f1 triggers: - status created_at: '2024-03-11T10:05:18.316Z' updated_at: '2024-03-11T10:05:18.316Z' sources: - 5f462c1561cf8a766464ffc4 secret_token: rnVNfIKgnH schema: type: object properties: id: type: string example: 65eed75eadeea8478f14ebd4 url: type: string example: https://webhook.site/16df065a-b398-48bc-b825-b0804979c5f1 triggers: type: array items: type: string example: status created_at: type: string example: '2024-03-11T10:05:18.316Z' updated_at: type: string example: '2024-03-11T10:05:18.316Z' sources: type: array items: type: string example: 5f462c1561cf8a766464ffc4 secret_token: type: string example: rnVNfIKgnH '400': description: Bad Request content: application/json: examples: Result: value: error: code: invalid_parameter_value message: The parameter value you have provided is not valid. schema: type: object properties: error: type: object properties: code: type: string example: invalid_parameter_value message: type: string example: The parameter value you have provided is not valid. required: - code - message required: - error '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' deprecated: false tags: - Webhooks x-stoplight: id: 73fyyktivlvzj x-codeSamples: - label: TypeScript lang: TypeScript source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'], // defaults to the API_KEY env var\n});\n\nconst webhook = await client.webhooksResource.create({\n url: '',\n secret_token: '',\n triggers: [''],\n sources: [''],\n});\n\nconsole.log(webhook);" - label: Python lang: Python source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"API_KEY\"),\n)\n\nwebhook = client.webhooks.create(\n url=\"\",\n secret_token=\"\",\n triggers=[\"\"],\n sources=[\"\"],\n)\n\nprint(webhook)" get: summary: List Webhooks responses: '200': description: Successful response content: application/json: schema: type: object properties: id: type: string description: Webhook ID url: type: string description: Webhook URL triggers: type: array items: type: string description: List of triggers configured for this webhook created_at: type: string description: Creation timestamp in ISO 8601 format updated_at: type: string description: Update timestamp in ISO 8601 format sources: type: array items: type: string description: List of workspace IDs for which the webhook is enabled. secret_token: type: string description: The token which you must validate when you receive the webhook. It's given by you when you create the webhook. x-apidog-orders: - id - url - triggers - created_at - updated_at - sources - secret_token required: - id - url - triggers - created_at - updated_at - sources '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' operationId: list-webhooks tags: - Webhooks description: List all webhooks. x-codeSamples: - label: TypeScript lang: TypeScript source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'], // defaults to the API_KEY env var\n});\n\nconst webhook = await client.webhooksResource.list();\n\nconsole.log(webhook);" - label: Python lang: Python source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"API_KEY\"),\n)\n\nwebhook = client.webhooks.list()\n\nprint(webhook)" /org/webhooks/{webhook_id}: post: summary: Update Webhook description: Update a webhook listener. operationId: update-webhook parameters: - name: webhook_id in: path description: Unique identifier for the Gumlet Webhook which needs to be updated. schema: type: string required: true requestBody: content: application/json: schema: type: object properties: url: type: string description: URL from the application you want to send data to. secret_token: type: string description: Authentication token to ensure legitimacy of Gumlet Webhook request on your application. triggers: type: string description: Triggers for the invocation of webhookos, supported option is `status`. sources: type: string description: List of video collection identifiers for which webhooks are needed to be invoked. responses: '200': description: '200' content: application/json: examples: Result: value: id: 65eed75eadeea8478f14ebd4 url: https://webhook.site/16df065a-b398-48bc-b825-b0804979c5f2 triggers: - status created_at: '2024-03-11T10:05:18.316Z' updated_at: '2024-03-11T10:10:37.461Z' sources: - 5f462c1561cf8a766464ffc4 secret_token: rnVNfIKgnH schema: type: object properties: id: type: string example: 65eed75eadeea8478f14ebd4 url: type: string example: https://webhook.site/16df065a-b398-48bc-b825-b0804979c5f2 triggers: type: array items: type: string example: status created_at: type: string example: '2024-03-11T10:05:18.316Z' updated_at: type: string example: '2024-03-11T10:10:37.461Z' sources: type: array items: type: string example: 5f462c1561cf8a766464ffc4 secret_token: type: string example: rnVNfIKgnH '400': description: Bad Request content: application/json: examples: Result: value: error: code: webhook_not_found message: Could not find any webhook with the specified webhook_id. schema: type: object properties: error: type: object properties: code: type: string example: webhook_not_found message: type: string example: Could not find any webhook with the specified webhook_id. required: - code - message required: - error '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' deprecated: false tags: - Webhooks x-stoplight: id: cj3d5p1p3xcxm x-codeSamples: - label: TypeScript lang: TypeScript source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'], // defaults to the API_KEY env var\n});\n\nconst webhook = await client.webhooksResource.update('webhookId');\n\nconsole.log(webhook);" - label: Python lang: Python source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"API_KEY\"),\n)\n\nwebhook = client.webhooks.update(\n webhook_id=\"webhookId\",\n)\n\nprint(webhook)" delete: summary: Delete Webhook description: Delete webhook listener endpoint. operationId: delete-webhook parameters: - name: webhook_id in: path description: Unique identifier for the Gumlet Webhook which needs to be deleted. schema: type: string required: true responses: '204': description: '204' content: application/json: examples: Result: value: {} schema: type: object properties: {} '400': description: Bad Request content: application/json: examples: Result: value: error: code: webhook_id_not_valid message: The webhook is not valid. schema: type: object properties: error: type: object properties: code: type: string example: webhook_id_not_valid message: type: string example: The webhook is not valid. required: - code - message required: - error '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': description: Not Found content: application/json: examples: Result: value: error: code: webhook_not_found message: Could not find any webhook with the specified webhook_id. schema: type: object properties: error: type: object properties: code: type: string example: webhook_not_found message: type: string example: Could not find any webhook with the specified webhook_id. required: - code - message required: - error deprecated: false tags: - Webhooks x-stoplight: id: 62i31r1exgnzy x-codeSamples: - label: TypeScript lang: TypeScript source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'], // defaults to the API_KEY env var\n});\n\nconst webhook = await client.webhooksResource.delete('webhookId');\n\nconsole.log(webhook);" - label: Python lang: Python source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"API_KEY\"),\n)\n\nwebhook = client.webhooks.delete(\n webhook_id=\"webhookId\",\n)\n\nprint(webhook)" /org/webhook/{webhook_id}/history: get: parameters: - in: path name: webhook_id description: Webhook ID. You can get it using list webhook endpoint. schema: type: string required: true responses: '200': description: Successful response content: application/json: schema: type: array items: type: object properties: id: type: string description: Webhook event ID status: type: string description: Status of webhook event retry_count: type: integer description: Number of retries it needed to deliver webhook. event: type: string description: Name of the webhook event asset_id: type: string description: Asset ID for which the event was fired created_at: type: string description: Event timestamp in ISO 8601 format x-apidog-orders: - id - status - retry_count - event - asset_id - created_at required: - id - status - retry_count - event - asset_id - created_at examples: Example 1: value: - id: 6aabc4d9b44b963242be835e status: success retry_count: 1 event: video.status.stream_ready asset_id: 6aabc4144b9588fb8c4bd235 created_at: '2026-09-17T10:45:50.470Z' '400': description: Bad Request content: application/json: examples: Result: value: error: code: webhook_id_not_valid message: The webhook is not valid. schema: type: object properties: error: type: object properties: code: type: string example: webhook_id_not_valid message: type: string example: The webhook is not valid. required: - code - message required: - error '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': description: Not Found content: application/json: examples: Result: value: error: code: webhook_not_found message: Could not find any webhook with the specified webhook_id. schema: type: object properties: error: type: object properties: code: type: string example: webhook_not_found message: type: string example: Could not find any webhook with the specified webhook_id. required: - code - message required: - error summary: Get History tags: - Webhooks operationId: webhook-history description: Get logs history for a given webhook. x-codeSamples: - label: TypeScript lang: TypeScript source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'], // defaults to the API_KEY env var\n});\n\nconst webhook = await client.webhooksResource.history('webhookId');\n\nconsole.log(webhook);" - label: Python lang: Python source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"API_KEY\"),\n)\n\nwebhook = client.webhooks.history(\n webhook_id=\"webhookId\",\n)\n\nprint(webhook)" components: schemas: Error: type: object required: - error properties: error: type: object required: - code - message properties: code: type: string description: Machine-readable error code message: type: string description: Human-readable error message param: type: string description: Optional parameter name related to the error responses: Unauthorized: description: Unauthorized — missing or invalid API key / bearer token content: application/json: examples: Result: value: error: code: invalid_api_key message: API key supplied with request is invalid schema: $ref: '#/components/schemas/Error' Forbidden: description: Forbidden — unpaid account or insufficient role permissions content: application/json: examples: Result: value: error: code: unauthorized message: You don't have access to this feature. Please contact your organization owner. schema: $ref: '#/components/schemas/Error' ValidationError: description: Unprocessable Entity — request validation failed content: application/json: examples: Result: value: error: code: invalid_parameter message: body must have required property '' schema: $ref: '#/components/schemas/Error' securitySchemes: API_KEY: type: http scheme: bearer x-tagGroups: - name: Video on Demand tags: - Video Assets - Global Search - Multipart Upload - Audio Upload - Subtitle Upload - Recycle Bin - Video Workspaces - Folders - Video Playlists - Channel Viewers - Video Usage Analytics - Video Profiles - Webhooks - name: Live Streams tags: - Live Stream Workspaces - Live Stream Assets - Live Stream Analytics - name: Image APIs tags: - Image Sources - Image Usage Analytics - name: Video Analytics tags: - Video Analytics - name: Webhooks tags: - Webhooks - name: Account Endpoints tags: - User Data - Billing - Organization Data - Audit Logs x-ext-urls: {}