---
title: Add a webhook
---

[Skip to content](#_top)

[API Reference](https://developers.cloudflare.com/api/python)

[Realtime Kit](https://developers.cloudflare.com/api/python/resources/realtime_kit)

[Webhooks](https://developers.cloudflare.com/api/python/resources/realtime_kit/subresources/webhooks)

Copy Markdown

Open in **Claude**Open in **ChatGPT**Open in **Cursor**

---

**Copy Markdown****View as Markdown**

# Add a webhook

realtime\_kit.webhooks.create\_webhook(strapp\_id, WebhookCreateWebhookParams\*\*kwargs) -> [WebhookCreateWebhookResponse](<https://developers.cloudflare.com/api/python/resources/realtime_kit#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)>)

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](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/).

**Example:**`Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY`

##### Accepted Permissions (at least one required)

`Realtime Admin``Realtime`

##### ParametersExpand Collapse

account\_id: str

The account identifier tag.

maxLength32

[Link to this property](<#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20account_id%20%3E%20(schema)>)

app\_id: str

The app identifier tag.

[Link to this property](<#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20app_id%20%3E%20(schema)>)

<details>

<summary>

events: List\[Literal\["meeting.started", "meeting.ended", "meeting.participantJoined", 6 more]]

Events that this webhook will get triggered by

</summary>

One of the following:

"meeting.started"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20events%20%3E%20(schema)%20%3E%20(items)%20%3E%20(member)%200">Link to this property</a>

"meeting.ended"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20events%20%3E%20(schema)%20%3E%20(items)%20%3E%20(member)%201">Link to this property</a>

"meeting.participantJoined"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20events%20%3E%20(schema)%20%3E%20(items)%20%3E%20(member)%202">Link to this property</a>

"meeting.participantLeft"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20events%20%3E%20(schema)%20%3E%20(items)%20%3E%20(member)%203">Link to this property</a>

"meeting.chatSynced"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20events%20%3E%20(schema)%20%3E%20(items)%20%3E%20(member)%204">Link to this property</a>

"recording.statusUpdate"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20events%20%3E%20(schema)%20%3E%20(items)%20%3E%20(member)%205">Link to this property</a>

"livestreaming.statusUpdate"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20events%20%3E%20(schema)%20%3E%20(items)%20%3E%20(member)%206">Link to this property</a>

"meeting.transcript"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20events%20%3E%20(schema)%20%3E%20(items)%20%3E%20(member)%207">Link to this property</a>

"meeting.summary"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20events%20%3E%20(schema)%20%3E%20(items)%20%3E%20(member)%208">Link to this property</a>

</details>

[Link to this property](<#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20events%20%3E%20(schema)>)

name: str

Name of the webhook

[Link to this property](<#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20name%20%3E%20(schema)>)

url: str

URL this webhook will send events to

formaturi

[Link to this property](<#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20url%20%3E%20(schema)>)

enabled: Optional\[[bool](<https://developers.cloudflare.com/api/python/resources/realtime_kit/subresources/webhooks/methods/create_webhook#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20enabled%20%3E%20(schema)>)]

Set whether or not the webhook should be active when created

[Link to this property](<#(resource)%20realtime_kit.webhooks%20%3E%20(method)%20create_webhook%20%3E%20(params)%20default%20%3E%20(param)%20enabled%20%3E%20(schema)>)

##### ReturnsExpand Collapse

<details>

<summary>

class WebhookCreateWebhookResponse: …

</summary>

<details>

<summary>

data: Data

</summary>

id: str

ID of the webhook

formatuuid

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20id">Link to this property</a>

created\_at: datetime

Timestamp when this webhook was created

formatdate-time

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20created_at">Link to this property</a>

enabled: bool

Set to true if the webhook is active

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20enabled">Link to this property</a>

<details>

<summary>

events: List\[Literal\["meeting.started", "meeting.ended", "meeting.participantJoined", 6 more]]

Events this webhook will send updates for

</summary>

One of the following:

"meeting.started"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20events%20%3E%20(items)%20%3E%20(member)%200">Link to this property</a>

"meeting.ended"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20events%20%3E%20(items)%20%3E%20(member)%201">Link to this property</a>

"meeting.participantJoined"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20events%20%3E%20(items)%20%3E%20(member)%202">Link to this property</a>

"meeting.participantLeft"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20events%20%3E%20(items)%20%3E%20(member)%203">Link to this property</a>

"meeting.chatSynced"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20events%20%3E%20(items)%20%3E%20(member)%204">Link to this property</a>

"recording.statusUpdate"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20events%20%3E%20(items)%20%3E%20(member)%205">Link to this property</a>

"livestreaming.statusUpdate"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20events%20%3E%20(items)%20%3E%20(member)%206">Link to this property</a>

"meeting.transcript"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20events%20%3E%20(items)%20%3E%20(member)%207">Link to this property</a>

"meeting.summary"

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20events%20%3E%20(items)%20%3E%20(member)%208">Link to this property</a>

</details>

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20events">Link to this property</a>

name: str

Name of the webhook

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20name">Link to this property</a>

updated\_at: datetime

Timestamp when this webhook was updated

formatdate-time

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20updated_at">Link to this property</a>

url: str

URL the webhook will send events to

formaturi

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data%20%3E%20(property)%20url">Link to this property</a>

</details>

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20data">Link to this property</a>

success: bool

<a href="#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)%20%3E%20(property)%20success">Link to this property</a>

</details>

[Link to this property](<#(resource)%20realtime_kit.webhooks%20%3E%20(model)%20webhook_create_webhook_response%20%3E%20(schema)>)

### Add a webhook

Python

HTTPTypeScriptPythonGoTerraform

```
import os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
response = client.realtime_kit.webhooks.create_webhook(
    app_id="14a396e7-ca44-4937-bf1f-050a69118543",
    account_id="023e105f4ecef8ad9ca31a8372d0c353",
    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",
)
print(response.data)
```

200 example

401 example

```
{
  "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

200 example

401 example

```
{
  "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"
```