Gumlet · AsyncAPI Specification

Gumlet Webhooks

Version 1.0.0

Asynchronous webhook events Gumlet POSTs to your configured endpoint for video and live-stream lifecycle changes. Configure via the org/webhooks API or the dashboard. An optional secret token is echoed back in the x-gumlet-token header for verification; non-2xx deliveries are retried for 24 hours with ~30 minutes between attempts.

View Spec View on GitHub VideoStreamingImage OptimizationCDNEncodingAnalyticsAsyncAPIEvents

Channels

webhooks

Messages

✉
video_status_created
video.status.created
Video Asset is created on Gumlet.
✉
video_status_stream_ready
video.status.stream_ready
Video available for streaming with single resolution, immediately after upload.
✉
video_status_downloaded
video.status.downloaded
Video file downloaded on Gumlet server for processing.
✉
video_status_processed
video.status.processed
Video is processed.
✉
video_status_deleted
video.status.deleted
Video Asset is deleted by the user.
✉
video_status_errored
video.status.errored
Video errored while processing.
✉
video_status_ready
video.status.ready
Video is ready to embed.
✉
event_video_uploaded
event.video.uploaded
Video is uploaded.
✉
video_status_repackaged
video.status.repackaged
Subtitle or audio stream successfully added to the video asset.
✉
event_embed_viewed
event.embed.viewed
Video viewed for the first time.
✉
event_embed_cta_clicked
event.embed.cta_clicked
Call-to-action clicked on an embed.
✉
event_video_updated
event.video.updated
Video details updated (title, tags, description, privacy).
✉
event_playlist_created
event.playlist.created
New playlist created.
✉
event_playlist_asset
event.playlist.asset
Asset added or removed from a playlist.
✉
event_playlist_deleted
event.playlist.deleted
Playlist deleted.
✉
event_embed_form_submitted
event.embed.form_submitted
New lead captured.
✉
event_comment_all
event.comment.all
A comment is added, replied or resolved.
✉
event_channel_member_joined
event.channel.member_joined
A new channel member joined.
✉
live_video_status_created
live.video.status.created
Live video session created.
✉
live_video_status_preparing
live.video.status.preparing
Live video session preparing to start.
✉
live_video_status_ready
live.video.status.ready
Live video session ready for streaming.
✉
live_video_status_connected
live.video.status.connected
Live video session connected to source.
✉
live_video_status_complete
live.video.status.complete
Live video session completed and ended.
✉
live_video_status_active
live.video.status.active
Live video session actively streaming.
✉
live_video_status_disconnected
live.video.status.disconnected
Live video session disconnected from source.

AsyncAPI Specification

Raw ↑
asyncapi: 3.0.0
info:
  title: Gumlet Webhooks
  version: 1.0.0
  description: Asynchronous webhook events Gumlet POSTs to your configured endpoint for video and live-stream
    lifecycle changes. Configure via the org/webhooks API or the dashboard. An optional secret token is
    echoed back in the x-gumlet-token header for verification; non-2xx deliveries are retried for 24 hours
    with ~30 minutes between attempts.
  contact:
    name: Gumlet Support Team
    url: https://www.gumlet.com/contact/
    email: support@gumlet.com
defaultContentType: application/json
channels:
  webhooks:
    address: '{your_webhook_url}'
    title: Configured webhook endpoint
    parameters:
      your_webhook_url:
        description: The HTTPS endpoint you register with create-webhook (POST /org/webhooks).
    messages:
      video_status_created:
        $ref: '#/components/messages/video_status_created'
      video_status_stream_ready:
        $ref: '#/components/messages/video_status_stream_ready'
      video_status_downloaded:
        $ref: '#/components/messages/video_status_downloaded'
      video_status_processed:
        $ref: '#/components/messages/video_status_processed'
      video_status_deleted:
        $ref: '#/components/messages/video_status_deleted'
      video_status_errored:
        $ref: '#/components/messages/video_status_errored'
      video_status_ready:
        $ref: '#/components/messages/video_status_ready'
      event_video_uploaded:
        $ref: '#/components/messages/event_video_uploaded'
      video_status_repackaged:
        $ref: '#/components/messages/video_status_repackaged'
      event_embed_viewed:
        $ref: '#/components/messages/event_embed_viewed'
      event_embed_cta_clicked:
        $ref: '#/components/messages/event_embed_cta_clicked'
      event_video_updated:
        $ref: '#/components/messages/event_video_updated'
      event_playlist_created:
        $ref: '#/components/messages/event_playlist_created'
      event_playlist_asset:
        $ref: '#/components/messages/event_playlist_asset'
      event_playlist_deleted:
        $ref: '#/components/messages/event_playlist_deleted'
      event_embed_form_submitted:
        $ref: '#/components/messages/event_embed_form_submitted'
      event_comment_all:
        $ref: '#/components/messages/event_comment_all'
      event_channel_member_joined:
        $ref: '#/components/messages/event_channel_member_joined'
      live_video_status_created:
        $ref: '#/components/messages/live_video_status_created'
      live_video_status_preparing:
        $ref: '#/components/messages/live_video_status_preparing'
      live_video_status_ready:
        $ref: '#/components/messages/live_video_status_ready'
      live_video_status_connected:
        $ref: '#/components/messages/live_video_status_connected'
      live_video_status_complete:
        $ref: '#/components/messages/live_video_status_complete'
      live_video_status_active:
        $ref: '#/components/messages/live_video_status_active'
      live_video_status_disconnected:
        $ref: '#/components/messages/live_video_status_disconnected'
operations:
  receiveWebhookEvent:
    action: receive
    channel:
      $ref: '#/channels/webhooks'
    summary: Receive a Gumlet webhook event at your endpoint.
    messages:
    - $ref: '#/channels/webhooks/messages/video_status_created'
    - $ref: '#/channels/webhooks/messages/video_status_stream_ready'
    - $ref: '#/channels/webhooks/messages/video_status_downloaded'
    - $ref: '#/channels/webhooks/messages/video_status_processed'
    - $ref: '#/channels/webhooks/messages/video_status_deleted'
    - $ref: '#/channels/webhooks/messages/video_status_errored'
    - $ref: '#/channels/webhooks/messages/video_status_ready'
    - $ref: '#/channels/webhooks/messages/event_video_uploaded'
    - $ref: '#/channels/webhooks/messages/video_status_repackaged'
    - $ref: '#/channels/webhooks/messages/event_embed_viewed'
    - $ref: '#/channels/webhooks/messages/event_embed_cta_clicked'
    - $ref: '#/channels/webhooks/messages/event_video_updated'
    - $ref: '#/channels/webhooks/messages/event_playlist_created'
    - $ref: '#/channels/webhooks/messages/event_playlist_asset'
    - $ref: '#/channels/webhooks/messages/event_playlist_deleted'
    - $ref: '#/channels/webhooks/messages/event_embed_form_submitted'
    - $ref: '#/channels/webhooks/messages/event_comment_all'
    - $ref: '#/channels/webhooks/messages/event_channel_member_joined'
    - $ref: '#/channels/webhooks/messages/live_video_status_created'
    - $ref: '#/channels/webhooks/messages/live_video_status_preparing'
    - $ref: '#/channels/webhooks/messages/live_video_status_ready'
    - $ref: '#/channels/webhooks/messages/live_video_status_connected'
    - $ref: '#/channels/webhooks/messages/live_video_status_complete'
    - $ref: '#/channels/webhooks/messages/live_video_status_active'
    - $ref: '#/channels/webhooks/messages/live_video_status_disconnected'
components:
  messages:
    video_status_created:
      name: video.status.created
      title: video.status.created
      summary: Video Asset is created on Gumlet.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    video_status_stream_ready:
      name: video.status.stream_ready
      title: video.status.stream_ready
      summary: Video available for streaming with single resolution, immediately after upload.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    video_status_downloaded:
      name: video.status.downloaded
      title: video.status.downloaded
      summary: Video file downloaded on Gumlet server for processing.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    video_status_processed:
      name: video.status.processed
      title: video.status.processed
      summary: Video is processed.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    video_status_deleted:
      name: video.status.deleted
      title: video.status.deleted
      summary: Video Asset is deleted by the user.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    video_status_errored:
      name: video.status.errored
      title: video.status.errored
      summary: Video errored while processing.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    video_status_ready:
      name: video.status.ready
      title: video.status.ready
      summary: Video is ready to embed.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    event_video_uploaded:
      name: event.video.uploaded
      title: event.video.uploaded
      summary: Video is uploaded.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    video_status_repackaged:
      name: video.status.repackaged
      title: video.status.repackaged
      summary: Subtitle or audio stream successfully added to the video asset.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    event_embed_viewed:
      name: event.embed.viewed
      title: event.embed.viewed
      summary: Video viewed for the first time.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    event_embed_cta_clicked:
      name: event.embed.cta_clicked
      title: event.embed.cta_clicked
      summary: Call-to-action clicked on an embed.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    event_video_updated:
      name: event.video.updated
      title: event.video.updated
      summary: Video details updated (title, tags, description, privacy).
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    event_playlist_created:
      name: event.playlist.created
      title: event.playlist.created
      summary: New playlist created.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    event_playlist_asset:
      name: event.playlist.asset
      title: event.playlist.asset
      summary: Asset added or removed from a playlist.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    event_playlist_deleted:
      name: event.playlist.deleted
      title: event.playlist.deleted
      summary: Playlist deleted.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    event_embed_form_submitted:
      name: event.embed.form_submitted
      title: event.embed.form_submitted
      summary: New lead captured.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    event_comment_all:
      name: event.comment.all
      title: event.comment.all
      summary: A comment is added, replied or resolved.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    event_channel_member_joined:
      name: event.channel.member_joined
      title: event.channel.member_joined
      summary: A new channel member joined.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    live_video_status_created:
      name: live.video.status.created
      title: live.video.status.created
      summary: Live video session created.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    live_video_status_preparing:
      name: live.video.status.preparing
      title: live.video.status.preparing
      summary: Live video session preparing to start.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    live_video_status_ready:
      name: live.video.status.ready
      title: live.video.status.ready
      summary: Live video session ready for streaming.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    live_video_status_connected:
      name: live.video.status.connected
      title: live.video.status.connected
      summary: Live video session connected to source.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    live_video_status_complete:
      name: live.video.status.complete
      title: live.video.status.complete
      summary: Live video session completed and ended.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    live_video_status_active:
      name: live.video.status.active
      title: live.video.status.active
      summary: Live video session actively streaming.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object
    live_video_status_disconnected:
      name: live.video.status.disconnected
      title: live.video.status.disconnected
      summary: Live video session disconnected from source.
      contentType: application/json
      payload:
        type: object
        properties:
          input:
            type: object
          output:
            type: object

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/gumlet-webhooks-asyncapi"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.