From b3f90175c48ff235d14d7ce83e926b7c66d7c3e7 Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Sat, 24 Oct 2026 00:46:15 +0000
Subject: [PATCH 1/2] [fern-generated] Update SDK
Generated by Fern
CLI Version: unknown
Generators:
- fernapi/fern-python-sdk: 5.39.2
---
.fern/metadata.json | 2 +-
reference.md | 16 ++++++++++++++++
src/whop_sdk/types/webhook.py | 5 +++++
src/whop_sdk/types/webhook_list_item.py | 5 +++++
src/whop_sdk/webhooks/client.py | 20 ++++++++++++++++++++
src/whop_sdk/webhooks/raw_client.py | 20 ++++++++++++++++++++
6 files changed, 67 insertions(+), 1 deletion(-)
diff --git a/.fern/metadata.json b/.fern/metadata.json
index 759b0e5c5..2136655cc 100644
--- a/.fern/metadata.json
+++ b/.fern/metadata.json
@@ -15,7 +15,7 @@
"standardwebhooks": ">=1.0.1,<2"
}
},
- "originGitCommit": "7f4874492ea69bebb374c4938000c7eec0c1504c",
+ "originGitCommit": "c10862aedcd9ddb1656d7da1815165e7dcfa2f08",
"originGitCommitIsDirty": false,
"invokedBy": "ci",
"requestedVersion": "2.6.0",
diff --git a/reference.md b/reference.md
index 71713fa35..e72322be2 100644
--- a/reference.md
+++ b/reference.md
@@ -48954,6 +48954,14 @@ client.webhooks.create(
-
+**title:** `typing.Optional[str]` — A label for the webhook, shown in the dashboard. Up to 255 characters.
+
+
+
+
+
+-
+
**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
@@ -49205,6 +49213,14 @@ client.webhooks.update(
-
+**title:** `typing.Optional[str]` — A label for the webhook, shown in the dashboard. Up to 255 characters. Pass `null` or an empty string to remove it.
+
+
+
+
+
+-
+
**url:** `typing.Optional[str]` — The URL to send the webhook to.
diff --git a/src/whop_sdk/types/webhook.py b/src/whop_sdk/types/webhook.py
index c0b36ecee..42caeb9ce 100644
--- a/src/whop_sdk/types/webhook.py
+++ b/src/whop_sdk/types/webhook.py
@@ -73,6 +73,11 @@ class Webhook(UniversalBaseModel):
"""
testable_events: typing.List[WebhookTestableEventsItem]
+ title: typing.Optional[str] = pydantic.Field(default=None)
+ """
+ A label for this webhook endpoint, such as `Production`, shown in the dashboard. `null` if no title was set.
+ """
+
url: str = pydantic.Field()
"""
Destination URL where webhook payloads are delivered via HTTP POST.
diff --git a/src/whop_sdk/types/webhook_list_item.py b/src/whop_sdk/types/webhook_list_item.py
index 7c0c07db8..274b2ac4b 100644
--- a/src/whop_sdk/types/webhook_list_item.py
+++ b/src/whop_sdk/types/webhook_list_item.py
@@ -71,6 +71,11 @@ class WebhookListItem(UniversalBaseModel):
ID of the resource (account or app) this webhook is attached to.
"""
+ title: typing.Optional[str] = pydantic.Field(default=None)
+ """
+ A label for this webhook endpoint, such as `Production`, shown in the dashboard. `null` if no title was set.
+ """
+
url: str = pydantic.Field()
"""
Destination URL where webhook payloads are delivered via HTTP POST.
diff --git a/src/whop_sdk/webhooks/client.py b/src/whop_sdk/webhooks/client.py
index f5795e380..d37e3a711 100644
--- a/src/whop_sdk/webhooks/client.py
+++ b/src/whop_sdk/webhooks/client.py
@@ -124,6 +124,7 @@ def create(
enabled: typing.Optional[bool] = OMIT,
events: typing.Optional[typing.Sequence[CreateWebhooksRequestEventsItem]] = OMIT,
resource_id: typing.Optional[str] = OMIT,
+ title: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Webhook:
"""
@@ -149,6 +150,9 @@ def create(
resource_id : typing.Optional[str]
The account or app to create the webhook for. Defaults to the current account.
+ title : typing.Optional[str]
+ A label for the webhook, shown in the dashboard. Up to 255 characters.
+
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -177,6 +181,7 @@ def create(
enabled=enabled,
events=events,
resource_id=resource_id,
+ title=title,
request_options=request_options,
)
return _response.data
@@ -255,6 +260,7 @@ def update(
child_resource_events: typing.Optional[bool] = OMIT,
enabled: typing.Optional[bool] = OMIT,
events: typing.Optional[typing.Sequence[UpdateWebhooksRequestEventsItem]] = OMIT,
+ title: typing.Optional[str] = OMIT,
url: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Webhook:
@@ -278,6 +284,9 @@ def update(
events : typing.Optional[typing.Sequence[UpdateWebhooksRequestEventsItem]]
The events to send the webhook for, in dot form (for example `payment.succeeded`).
+ title : typing.Optional[str]
+ A label for the webhook, shown in the dashboard. Up to 255 characters. Pass `null` or an empty string to remove it.
+
url : typing.Optional[str]
The URL to send the webhook to.
@@ -308,6 +317,7 @@ def update(
child_resource_events=child_resource_events,
enabled=enabled,
events=events,
+ title=title,
url=url,
request_options=request_options,
)
@@ -630,6 +640,7 @@ async def create(
enabled: typing.Optional[bool] = OMIT,
events: typing.Optional[typing.Sequence[CreateWebhooksRequestEventsItem]] = OMIT,
resource_id: typing.Optional[str] = OMIT,
+ title: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Webhook:
"""
@@ -655,6 +666,9 @@ async def create(
resource_id : typing.Optional[str]
The account or app to create the webhook for. Defaults to the current account.
+ title : typing.Optional[str]
+ A label for the webhook, shown in the dashboard. Up to 255 characters.
+
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -691,6 +705,7 @@ async def main() -> None:
enabled=enabled,
events=events,
resource_id=resource_id,
+ title=title,
request_options=request_options,
)
return _response.data
@@ -787,6 +802,7 @@ async def update(
child_resource_events: typing.Optional[bool] = OMIT,
enabled: typing.Optional[bool] = OMIT,
events: typing.Optional[typing.Sequence[UpdateWebhooksRequestEventsItem]] = OMIT,
+ title: typing.Optional[str] = OMIT,
url: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> Webhook:
@@ -810,6 +826,9 @@ async def update(
events : typing.Optional[typing.Sequence[UpdateWebhooksRequestEventsItem]]
The events to send the webhook for, in dot form (for example `payment.succeeded`).
+ title : typing.Optional[str]
+ A label for the webhook, shown in the dashboard. Up to 255 characters. Pass `null` or an empty string to remove it.
+
url : typing.Optional[str]
The URL to send the webhook to.
@@ -848,6 +867,7 @@ async def main() -> None:
child_resource_events=child_resource_events,
enabled=enabled,
events=events,
+ title=title,
url=url,
request_options=request_options,
)
diff --git a/src/whop_sdk/webhooks/raw_client.py b/src/whop_sdk/webhooks/raw_client.py
index 0b8517dab..453743c5a 100644
--- a/src/whop_sdk/webhooks/raw_client.py
+++ b/src/whop_sdk/webhooks/raw_client.py
@@ -192,6 +192,7 @@ def create(
enabled: typing.Optional[bool] = OMIT,
events: typing.Optional[typing.Sequence[CreateWebhooksRequestEventsItem]] = OMIT,
resource_id: typing.Optional[str] = OMIT,
+ title: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Webhook]:
"""
@@ -217,6 +218,9 @@ def create(
resource_id : typing.Optional[str]
The account or app to create the webhook for. Defaults to the current account.
+ title : typing.Optional[str]
+ A label for the webhook, shown in the dashboard. Up to 255 characters.
+
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -235,6 +239,7 @@ def create(
"enabled": enabled,
"events": events,
"resource_id": resource_id,
+ "title": title,
"url": url,
},
headers={
@@ -477,6 +482,7 @@ def update(
child_resource_events: typing.Optional[bool] = OMIT,
enabled: typing.Optional[bool] = OMIT,
events: typing.Optional[typing.Sequence[UpdateWebhooksRequestEventsItem]] = OMIT,
+ title: typing.Optional[str] = OMIT,
url: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> HttpResponse[Webhook]:
@@ -500,6 +506,9 @@ def update(
events : typing.Optional[typing.Sequence[UpdateWebhooksRequestEventsItem]]
The events to send the webhook for, in dot form (for example `payment.succeeded`).
+ title : typing.Optional[str]
+ A label for the webhook, shown in the dashboard. Up to 255 characters. Pass `null` or an empty string to remove it.
+
url : typing.Optional[str]
The URL to send the webhook to.
@@ -520,6 +529,7 @@ def update(
"child_resource_events": child_resource_events,
"enabled": enabled,
"events": events,
+ "title": title,
"url": url,
},
headers={
@@ -1217,6 +1227,7 @@ async def create(
enabled: typing.Optional[bool] = OMIT,
events: typing.Optional[typing.Sequence[CreateWebhooksRequestEventsItem]] = OMIT,
resource_id: typing.Optional[str] = OMIT,
+ title: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Webhook]:
"""
@@ -1242,6 +1253,9 @@ async def create(
resource_id : typing.Optional[str]
The account or app to create the webhook for. Defaults to the current account.
+ title : typing.Optional[str]
+ A label for the webhook, shown in the dashboard. Up to 255 characters.
+
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -1260,6 +1274,7 @@ async def create(
"enabled": enabled,
"events": events,
"resource_id": resource_id,
+ "title": title,
"url": url,
},
headers={
@@ -1504,6 +1519,7 @@ async def update(
child_resource_events: typing.Optional[bool] = OMIT,
enabled: typing.Optional[bool] = OMIT,
events: typing.Optional[typing.Sequence[UpdateWebhooksRequestEventsItem]] = OMIT,
+ title: typing.Optional[str] = OMIT,
url: typing.Optional[str] = OMIT,
request_options: typing.Optional[RequestOptions] = None,
) -> AsyncHttpResponse[Webhook]:
@@ -1527,6 +1543,9 @@ async def update(
events : typing.Optional[typing.Sequence[UpdateWebhooksRequestEventsItem]]
The events to send the webhook for, in dot form (for example `payment.succeeded`).
+ title : typing.Optional[str]
+ A label for the webhook, shown in the dashboard. Up to 255 characters. Pass `null` or an empty string to remove it.
+
url : typing.Optional[str]
The URL to send the webhook to.
@@ -1547,6 +1566,7 @@ async def update(
"child_resource_events": child_resource_events,
"enabled": enabled,
"events": events,
+ "title": title,
"url": url,
},
headers={
From 3fc4348dbabc866f4aaade62dd5cc1de4fe709bd Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Sat, 24 Oct 2026 00:46:15 +0000
Subject: [PATCH 2/2] [fern-replay] advance lockfile
---
.fern/replay.lock | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/.fern/replay.lock b/.fern/replay.lock
index 1d6303b31..454fc4557 100644
--- a/.fern/replay.lock
+++ b/.fern/replay.lock
@@ -3288,5 +3288,11 @@ generations:
cli_version: unknown
generator_versions:
fernapi/fern-python-sdk: 5.39.2
-current_generation: f1ff928cdb565996b0928fafb97337b365057463
+ - commit_sha: d2769b3b3e891664c1e559e02b24beb73a77a994
+ tree_hash: 0d839560fa495070e98e1d8f88c44d0e31dc0107
+ timestamp: 2026-10-24T00:46:10.129Z
+ cli_version: unknown
+ generator_versions:
+ fernapi/fern-python-sdk: 5.39.2
+current_generation: d2769b3b3e891664c1e559e02b24beb73a77a994
patches: []