Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.0.24"
".": "0.1.0"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 150
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/frostedinc%2Fwhopsdk-c2ec7a86a71bec3d7b44bd29c8fd46b809794df3e92a39e20e4d43aed65c7725.yml
openapi_spec_hash: c1729209a70aa843c9100053913fe2a0
config_hash: 730978eefcbaabd3de523cdc8fff6814
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/frostedinc%2Fwhopsdk-33abec403141d0a2df7cac434f5b947a75488432e73813b24ad1c13e76e77d20.yml
openapi_spec_hash: d7de14ab2b23e2843ce9211cec9f9da7
config_hash: ae6a6fcfdddbfd88e9a4cbe9073b0bed
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Changelog

## 0.1.0 (2026-01-28)

Full Changelog: [v0.0.24...v0.1.0](https://github.com/whopio/whopsdk-python/compare/v0.0.24...v0.1.0)

### Features

* **api:** api update ([ba46842](https://github.com/whopio/whopsdk-python/commit/ba468428aac2cb184ca09b530d9d32c49945a7d4))
* **api:** api update ([df3752c](https://github.com/whopio/whopsdk-python/commit/df3752c475c1f344f07198c5f750c9d4ccb7ca72))
* **api:** api update ([f983dc1](https://github.com/whopio/whopsdk-python/commit/f983dc1a2e82ded3ed50ca7156e7114cf7f99781))
* **api:** api update ([65160f6](https://github.com/whopio/whopsdk-python/commit/65160f6d42116303ee8f0f75978745cff9691948))


### Bug Fixes

* **docs:** fix mcp installation instructions for remote servers ([85fc029](https://github.com/whopio/whopsdk-python/commit/85fc029029ccca5e194244bbb8a58498c70902c8))

## 0.0.24 (2026-01-25)

Full Changelog: [v0.0.23...v0.0.24](https://github.com/whopio/whopsdk-python/compare/v0.0.23...v0.0.24)
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ It is generated with [Stainless](https://www.stainless.com/).

Use the Whop MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.

[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40whop%2Fmcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkB3aG9wL21jcCJdfQ)
[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40whop%2Fmcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40whop%2Fmcp%22%5D%7D)
[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40whop%2Fmcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkB3aG9wL21jcCJdLCJlbnYiOnsiV0hPUF9BUElfS0VZIjoiTXkgQVBJIEtleSIsIldIT1BfV0VCSE9PS19TRUNSRVQiOiJNeSBXZWJob29rIEtleSIsIldIT1BfQVBQX0lEIjoiYXBwX3h4eHh4eHh4eHh4eHh4In19)
[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40whop%2Fmcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40whop%2Fmcp%22%5D%2C%22env%22%3A%7B%22WHOP_API_KEY%22%3A%22My%20API%20Key%22%2C%22WHOP_WEBHOOK_SECRET%22%3A%22My%20Webhook%20Key%22%2C%22WHOP_APP_ID%22%3A%22app_xxxxxxxxxxxxxx%22%7D%7D)

> Note: You may need to set environment variables in your MCP client.

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "whop-sdk"
version = "0.0.24"
version = "0.1.0"
description = "The official Python library for the Whop API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/whop_sdk/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "whop_sdk"
__version__ = "0.0.24" # x-release-please-version
__version__ = "0.1.0" # x-release-please-version
2 changes: 2 additions & 0 deletions src/whop_sdk/resources/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,7 @@ def list(
last: Optional[int] | Omit = omit,
order: Optional[
Literal[
"created_at",
"discoverable_at",
"total_installs_last_30_days",
"total_installs_last_7_days",
Expand Down Expand Up @@ -542,6 +543,7 @@ def list(
last: Optional[int] | Omit = omit,
order: Optional[
Literal[
"created_at",
"discoverable_at",
"total_installs_last_30_days",
"total_installs_last_7_days",
Expand Down
8 changes: 8 additions & 0 deletions src/whop_sdk/resources/messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ def create(
content: str,
attachments: Optional[Iterable[message_create_params.Attachment]] | Omit = omit,
poll: Optional[message_create_params.Poll] | Omit = omit,
replying_to_message_id: Optional[str] | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
Expand All @@ -76,6 +77,8 @@ def create(

poll: The poll for this message

replying_to_message_id: The ID of the message this is replying to, if applicable.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand All @@ -92,6 +95,7 @@ def create(
"content": content,
"attachments": attachments,
"poll": poll,
"replying_to_message_id": replying_to_message_id,
},
message_create_params.MessageCreateParams,
),
Expand Down Expand Up @@ -283,6 +287,7 @@ async def create(
content: str,
attachments: Optional[Iterable[message_create_params.Attachment]] | Omit = omit,
poll: Optional[message_create_params.Poll] | Omit = omit,
replying_to_message_id: Optional[str] | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
Expand All @@ -306,6 +311,8 @@ async def create(

poll: The poll for this message

replying_to_message_id: The ID of the message this is replying to, if applicable.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand All @@ -322,6 +329,7 @@ async def create(
"content": content,
"attachments": attachments,
"poll": poll,
"replying_to_message_id": replying_to_message_id,
},
message_create_params.MessageCreateParams,
),
Expand Down
10 changes: 10 additions & 0 deletions src/whop_sdk/resources/reactions.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ def create(
*,
resource_id: str,
emoji: Optional[str] | Omit = omit,
poll_option_id: Optional[str] | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
Expand All @@ -70,6 +71,9 @@ def create(
emoji: The emoji to react with (e.g., :heart: or '😀'). It will be ignored in forums,
as everything will be :heart:

poll_option_id: The ID of the poll option to vote for. Only valid for messages or posts with
polls.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand All @@ -84,6 +88,7 @@ def create(
{
"resource_id": resource_id,
"emoji": emoji,
"poll_option_id": poll_option_id,
},
reaction_create_params.ReactionCreateParams,
),
Expand Down Expand Up @@ -219,6 +224,7 @@ async def create(
*,
resource_id: str,
emoji: Optional[str] | Omit = omit,
poll_option_id: Optional[str] | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
Expand All @@ -239,6 +245,9 @@ async def create(
emoji: The emoji to react with (e.g., :heart: or '😀'). It will be ignored in forums,
as everything will be :heart:

poll_option_id: The ID of the poll option to vote for. Only valid for messages or posts with
polls.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request
Expand All @@ -253,6 +262,7 @@ async def create(
{
"resource_id": resource_id,
"emoji": emoji,
"poll_option_id": poll_option_id,
},
reaction_create_params.ReactionCreateParams,
),
Expand Down
1 change: 1 addition & 0 deletions src/whop_sdk/types/app_list_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class AppListParams(TypedDict, total=False):

order: Optional[
Literal[
"created_at",
"discoverable_at",
"total_installs_last_30_days",
"total_installs_last_7_days",
Expand Down
3 changes: 3 additions & 0 deletions src/whop_sdk/types/message_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ class MessageCreateParams(TypedDict, total=False):
poll: Optional[Poll]
"""The poll for this message"""

replying_to_message_id: Optional[str]
"""The ID of the message this is replying to, if applicable."""


class Attachment(TypedDict, total=False):
"""Input for an attachment"""
Expand Down
1 change: 1 addition & 0 deletions src/whop_sdk/types/payment_method_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"grabpay",
"id_bank_transfer",
"ideal",
"interac",
"kakao_pay",
"klarna",
"konbini",
Expand Down
6 changes: 6 additions & 0 deletions src/whop_sdk/types/reaction_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,9 @@ class ReactionCreateParams(TypedDict, total=False):

It will be ignored in forums, as everything will be :heart:
"""

poll_option_id: Optional[str]
"""The ID of the poll option to vote for.

Only valid for messages or posts with polls.
"""
4 changes: 2 additions & 2 deletions tests/api_resources/test_apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ def test_method_list_with_all_params(self, client: Whop) -> None:
direction="asc",
first=42,
last=42,
order="discoverable_at",
order="created_at",
query="query",
verified_apps_only=True,
view_type="hub",
Expand Down Expand Up @@ -390,7 +390,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncWhop) -> Non
direction="asc",
first=42,
last=42,
order="discoverable_at",
order="created_at",
query="query",
verified_apps_only=True,
view_type="hub",
Expand Down
2 changes: 2 additions & 0 deletions tests/api_resources/test_messages.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ def test_method_create_with_all_params(self, client: Whop) -> None:
}
]
},
replying_to_message_id="replying_to_message_id",
)
assert_matches_type(Message, message, path=["response"])

Expand Down Expand Up @@ -248,6 +249,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncWhop) -> N
}
]
},
replying_to_message_id="replying_to_message_id",
)
assert_matches_type(Message, message, path=["response"])

Expand Down
2 changes: 2 additions & 0 deletions tests/api_resources/test_reactions.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ def test_method_create_with_all_params(self, client: Whop) -> None:
reaction = client.reactions.create(
resource_id="resource_id",
emoji="emoji",
poll_option_id="poll_option_id",
)
assert_matches_type(Reaction, reaction, path=["response"])

Expand Down Expand Up @@ -170,6 +171,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncWhop) -> N
reaction = await async_client.reactions.create(
resource_id="resource_id",
emoji="emoji",
poll_option_id="poll_option_id",
)
assert_matches_type(Reaction, reaction, path=["response"])

Expand Down