Skip to content
Start here

Add a webhook

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
Path ParametersExpand Collapse
account_id: string

The account identifier tag.

maxLength32
app_id: string

The app identifier tag.

maxLength32
Body ParametersJSONExpand Collapse
events: array of "meeting.started" or "meeting.ended" or "meeting.participantJoined" or 6 more

Events that this webhook will get triggered by

One of the following:
"meeting.started"
"meeting.ended"
"meeting.participantJoined"
"meeting.participantLeft"
"meeting.chatSynced"
"recording.statusUpdate"
"livestreaming.statusUpdate"
"meeting.transcript"
"meeting.summary"
name: string

Name of the webhook

url: string

URL this webhook will send events to

formaturi
enabled: optional boolean

Set whether or not the webhook should be active when created

ReturnsExpand Collapse
data: { id, created_at, enabled, 4 more }
id: string

ID of the webhook

formatuuid
created_at: string

Timestamp when this webhook was created

formatdate-time
enabled: boolean

Set to true if the webhook is active

events: array of "meeting.started" or "meeting.ended" or "meeting.participantJoined" or 6 more

Events this webhook will send updates for

One of the following:
"meeting.started"
"meeting.ended"
"meeting.participantJoined"
"meeting.participantLeft"
"meeting.chatSynced"
"recording.statusUpdate"
"livestreaming.statusUpdate"
"meeting.transcript"
"meeting.summary"
name: string

Name of the webhook

updated_at: string

Timestamp when this webhook was updated

formatdate-time
url: string

URL the webhook will send events to

formaturi
success: boolean

Add a webhook

curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/realtime/kit/$APP_ID/webhooks \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
    -d '{
          "events": [
            "meeting.started",
            "meeting.ended",
            "meeting.participantJoined",
            "meeting.participantLeft",
            "meeting.chatSynced",
            "recording.statusUpdate",
            "livestreaming.statusUpdate",
            "meeting.transcript",
            "meeting.summary"
          ],
          "name": "All events webhook",
          "url": "https://webhook.site/b23a5bbd-c7b0-4ced-a9e2-78ae7889897e"
        }'
{
  "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"