## 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. ### Parameters - `appID string` The app identifier tag. - `params WebhookNewWebhookParams` - `AccountID param.Field[string]` Path param: The account identifier tag. - `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 - `Enabled param.Field[bool]` Body param: Set whether or not the webhook should be active when created ### Returns - `type WebhookNewWebhookResponse struct{…}` - `Data WebhookNewWebhookResponseData` - `ID string` ID of the webhook - `CreatedAt Time` Timestamp when this webhook was created - `Enabled bool` Set to true if the webhook is active - `Events []WebhookNewWebhookResponseDataEvent` Events this webhook will send updates for - `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 - `URL string` URL the webhook will send events to - `Success bool` ### Example ```go 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) } ``` #### Response ```json { "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 } ```