Skip to content
Start here

Add a webhook

client.RealtimeKit.Webhooks.NewWebhook(ctx, appID, params) (*WebhookNewWebhookResponse, error)
POST/accounts/{account_id}/realtime/kit/{app_id}/webhooks

Adds a new webhook to an App.

Security

API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
Accepted Permissions (at least one required)
Realtime AdminRealtime
ParametersExpand Collapse
appID string

The app identifier tag.

maxLength32
params WebhookNewWebhookParams
AccountID param.Field[string]

Path param: The account identifier tag.

maxLength32
Events param.Field[[]WebhookNewWebhookParamsEvent]

Body param: Events that this webhook will get triggered by

const WebhookNewWebhookParamsEventMeetingStarted WebhookNewWebhookParamsEvent = "meeting.started"
const WebhookNewWebhookParamsEventMeetingEnded WebhookNewWebhookParamsEvent = "meeting.ended"
const WebhookNewWebhookParamsEventMeetingParticipantJoined WebhookNewWebhookParamsEvent = "meeting.participantJoined"
const WebhookNewWebhookParamsEventMeetingParticipantLeft WebhookNewWebhookParamsEvent = "meeting.participantLeft"
const WebhookNewWebhookParamsEventMeetingChatSynced WebhookNewWebhookParamsEvent = "meeting.chatSynced"
const WebhookNewWebhookParamsEventRecordingStatusUpdate WebhookNewWebhookParamsEvent = "recording.statusUpdate"
const WebhookNewWebhookParamsEventLivestreamingStatusUpdate WebhookNewWebhookParamsEvent = "livestreaming.statusUpdate"
const WebhookNewWebhookParamsEventMeetingTranscript WebhookNewWebhookParamsEvent = "meeting.transcript"
const WebhookNewWebhookParamsEventMeetingSummary WebhookNewWebhookParamsEvent = "meeting.summary"
Name param.Field[string]

Body param: Name of the webhook

URL param.Field[string]

Body param: URL this webhook will send events to

formaturi
Enabled param.Field[bool]optional

Body param: Set whether or not the webhook should be active when created

ReturnsExpand Collapse
type WebhookNewWebhookResponse struct{…}
Data WebhookNewWebhookResponseData
ID string

ID of the webhook

formatuuid
CreatedAt Time

Timestamp when this webhook was created

formatdate-time
Enabled bool

Set to true if the webhook is active

Events []WebhookNewWebhookResponseDataEvent

Events this webhook will send updates for

One of the following:
const WebhookNewWebhookResponseDataEventMeetingStarted WebhookNewWebhookResponseDataEvent = "meeting.started"
const WebhookNewWebhookResponseDataEventMeetingEnded WebhookNewWebhookResponseDataEvent = "meeting.ended"
const WebhookNewWebhookResponseDataEventMeetingParticipantJoined WebhookNewWebhookResponseDataEvent = "meeting.participantJoined"
const WebhookNewWebhookResponseDataEventMeetingParticipantLeft WebhookNewWebhookResponseDataEvent = "meeting.participantLeft"
const WebhookNewWebhookResponseDataEventMeetingChatSynced WebhookNewWebhookResponseDataEvent = "meeting.chatSynced"
const WebhookNewWebhookResponseDataEventRecordingStatusUpdate WebhookNewWebhookResponseDataEvent = "recording.statusUpdate"
const WebhookNewWebhookResponseDataEventLivestreamingStatusUpdate WebhookNewWebhookResponseDataEvent = "livestreaming.statusUpdate"
const WebhookNewWebhookResponseDataEventMeetingTranscript WebhookNewWebhookResponseDataEvent = "meeting.transcript"
const WebhookNewWebhookResponseDataEventMeetingSummary WebhookNewWebhookResponseDataEvent = "meeting.summary"
Name string

Name of the webhook

UpdatedAt Time

Timestamp when this webhook was updated

formatdate-time
URL string

URL the webhook will send events to

formaturi
Success bool

Add a webhook

package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/option"
  "github.com/cloudflare/cloudflare-go/realtime_kit"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  response, err := client.RealtimeKit.Webhooks.NewWebhook(
    context.TODO(),
    "app_id",
    realtime_kit.WebhookNewWebhookParams{
      AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
      Events: cloudflare.F([]realtime_kit.WebhookNewWebhookParamsEvent{realtime_kit.WebhookNewWebhookParamsEventMeetingStarted, realtime_kit.WebhookNewWebhookParamsEventMeetingEnded, realtime_kit.WebhookNewWebhookParamsEventMeetingParticipantJoined, realtime_kit.WebhookNewWebhookParamsEventMeetingParticipantLeft, realtime_kit.WebhookNewWebhookParamsEventMeetingChatSynced, realtime_kit.WebhookNewWebhookParamsEventRecordingStatusUpdate, realtime_kit.WebhookNewWebhookParamsEventLivestreamingStatusUpdate, realtime_kit.WebhookNewWebhookParamsEventMeetingTranscript, realtime_kit.WebhookNewWebhookParamsEventMeetingSummary}),
      Name: cloudflare.F("All events webhook"),
      URL: cloudflare.F("https://webhook.site/b23a5bbd-c7b0-4ced-a9e2-78ae7889897e"),
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.Data)
}
{
  "data": {
    "id": "0d1f069d-43bb-489a-ad8c-7eb95592ba8e",
    "created_at": "2022-05-28T07:01:53.075Z",
    "enabled": true,
    "events": [
      "meeting.started",
      "meeting.ended",
      "meeting.participantJoined",
      "meeting.participantLeft",
      "meeting.chatSynced",
      "recording.statusUpdate",
      "livestreaming.statusUpdate",
      "meeting.transcript",
      "meeting.summary"
    ],
    "name": "All events webhook",
    "updated_at": "2022-05-28T07:01:53.075Z",
    "url": "https://webhook.site/b23a5bbd-c7b0-4ced-a9e2-78ae7889897e"
  },
  "success": true
}
"{\n  message: \"Unauthorized\"\n}\n"
Returns Examples
{
  "data": {
    "id": "0d1f069d-43bb-489a-ad8c-7eb95592ba8e",
    "created_at": "2022-05-28T07:01:53.075Z",
    "enabled": true,
    "events": [
      "meeting.started",
      "meeting.ended",
      "meeting.participantJoined",
      "meeting.participantLeft",
      "meeting.chatSynced",
      "recording.statusUpdate",
      "livestreaming.statusUpdate",
      "meeting.transcript",
      "meeting.summary"
    ],
    "name": "All events webhook",
    "updated_at": "2022-05-28T07:01:53.075Z",
    "url": "https://webhook.site/b23a5bbd-c7b0-4ced-a9e2-78ae7889897e"
  },
  "success": true
}
"{\n  message: \"Unauthorized\"\n}\n"