Skip to content

Applications and monetization

The models guide explains how models are typed and decoded. Every class here is importable from bostie.

bostie.models.application

PartialApplication

Bases: Model, Snowflake

id instance-attribute

id: int

flags property

created_at property

created_at: datetime

When the object was created, in UTC, read from its id.

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

InstallParams

Bases: Builder

The scopes and bot permissions an install link asks for.

scopes instance-attribute

scopes: tuple[OAuth2Scope, ...]

permissions instance-attribute

permissions: Permissions

ApplicationIntegrationTypeConfiguration

Bases: Builder

oauth2_install_params class-attribute instance-attribute

oauth2_install_params: InstallParams | None = None

TeamMember

Bases: Model

membership_state instance-attribute

membership_state: MembershipState

team_id instance-attribute

team_id: int

user instance-attribute

user: User

role instance-attribute

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

Team

Bases: Model, Snowflake

icon instance-attribute

icon: str | None

id instance-attribute

id: int

members instance-attribute

members: tuple[TeamMember, ...]

name instance-attribute

name: str

owner_user_id instance-attribute

owner_user_id: int

created_at property

created_at: datetime

When the object was created, in UTC, read from its id.

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

Application

Bases: PartialApplication

The bot's app, with the settings its owner sees.

name instance-attribute

name: str

icon instance-attribute

icon: str | None

description instance-attribute

description: str

rpc_origins class-attribute instance-attribute

rpc_origins: tuple[str, ...] = ()

bot_public instance-attribute

bot_public: bool

bot_require_code_grant instance-attribute

bot_require_code_grant: bool

bot class-attribute instance-attribute

bot: PartialUser | None = None

terms_of_service_url class-attribute instance-attribute

terms_of_service_url: str | None = None

privacy_policy_url class-attribute instance-attribute

privacy_policy_url: str | None = None

owner class-attribute instance-attribute

owner: PartialUser | None = None

verify_key instance-attribute

verify_key: str

team instance-attribute

team: Team | None

guild_id class-attribute instance-attribute

guild_id: int | None = None

guild class-attribute instance-attribute

guild: Guild | None = None

primary_sku_id class-attribute instance-attribute

primary_sku_id: int | None = None

slug class-attribute instance-attribute

slug: str | None = None

cover_image class-attribute instance-attribute

cover_image: str | None = None

approximate_guild_count class-attribute instance-attribute

approximate_guild_count: int | None = None

approximate_user_install_count class-attribute instance-attribute

approximate_user_install_count: int | None = None

approximate_user_authorization_count class-attribute instance-attribute

approximate_user_authorization_count: int | None = None

redirect_uris class-attribute instance-attribute

redirect_uris: tuple[str, ...] = ()

interactions_endpoint_url class-attribute instance-attribute

interactions_endpoint_url: str | None = None

role_connections_verification_url class-attribute instance-attribute

role_connections_verification_url: str | None = None

event_webhooks_url class-attribute instance-attribute

event_webhooks_url: str | None = None

event_webhooks_status class-attribute instance-attribute

event_webhooks_status: ApplicationEventWebhookStatus | None = None

event_webhooks_types class-attribute instance-attribute

event_webhooks_types: tuple[WebhookEventType, ...] = ()

tags class-attribute instance-attribute

tags: tuple[str, ...] = ()

install_params class-attribute instance-attribute

install_params: InstallParams | None = None

integration_types_config class-attribute instance-attribute

custom_install_url class-attribute instance-attribute

custom_install_url: str | None = None

created_at property

created_at: datetime

When the object was created, in UTC, read from its id.

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

id instance-attribute

id: int

flags property

ActivityLocation

Bases: Model

The channel an Activity instance runs in.

id instance-attribute

id: str

kind instance-attribute

channel_id instance-attribute

channel_id: int

guild_id class-attribute instance-attribute

guild_id: int | None = None

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

ActivityInstance

Bases: Model

A running Activity and the users connected to it.

application_id instance-attribute

application_id: int

instance_id instance-attribute

instance_id: str

launch_id instance-attribute

launch_id: int

location instance-attribute

location: ActivityLocation

users instance-attribute

users: tuple[int, ...]

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

ApplicationRoleConnectionMetadata

Bases: Builder

A value a guild can require of a user's connection to the app for a role.

type instance-attribute

key instance-attribute

key: str

name instance-attribute

name: str

name_localizations class-attribute instance-attribute

name_localizations: dict[str, str] | None = None

description instance-attribute

description: str

description_localizations class-attribute instance-attribute

description_localizations: dict[str, str] | None = None

SessionStartLimit

Bases: Model

How many more gateway sessions the bot may start before reset_after ms.

total instance-attribute

total: int

remaining instance-attribute

remaining: int

reset_after instance-attribute

reset_after: int

max_concurrency instance-attribute

max_concurrency: int

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

GatewayInfo

Bases: Model

url instance-attribute

url: str

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

GatewayBotInfo

Bases: GatewayInfo

The gateway URL, the recommended shard count and the session start limit.

shards instance-attribute

shards: int

session_start_limit instance-attribute

session_start_limit: SessionStartLimit

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

url instance-attribute

url: str

bostie.models.monetization

PartialEntitlement

Bases: Model, Snowflake

A test entitlement, which has no period because it never ends.

id instance-attribute

id: int

sku_id instance-attribute

sku_id: int

application_id instance-attribute

application_id: int

user_id class-attribute instance-attribute

user_id: int | None = None

type instance-attribute

deleted instance-attribute

deleted: bool

guild_id class-attribute instance-attribute

guild_id: int | None = None

consumed class-attribute instance-attribute

consumed: bool | None = None

created_at property

created_at: datetime

When the object was created, in UTC, read from its id.

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

Entitlement

Bases: PartialEntitlement

A user's or a guild's access to a SKU of the app.

starts_at instance-attribute

starts_at: datetime | None

ends_at instance-attribute

ends_at: datetime | None

created_at property

created_at: datetime

When the object was created, in UTC, read from its id.

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

id instance-attribute

id: int

sku_id instance-attribute

sku_id: int

application_id instance-attribute

application_id: int

user_id class-attribute instance-attribute

user_id: int | None = None

type instance-attribute

deleted instance-attribute

deleted: bool

guild_id class-attribute instance-attribute

guild_id: int | None = None

consumed class-attribute instance-attribute

consumed: bool | None = None

SKU

Bases: Model, Snowflake

A premium offering of the app.

id instance-attribute

id: int

type instance-attribute

type: SKUType

application_id instance-attribute

application_id: int

name instance-attribute

name: str

slug instance-attribute

slug: str

flags instance-attribute

flags: SKUFlags

created_at property

created_at: datetime

When the object was created, in UTC, read from its id.

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

Subscription

Bases: Model, Snowflake

A user's recurring payment for SKUs of the app.

id instance-attribute

id: int

user_id instance-attribute

user_id: int

sku_ids instance-attribute

sku_ids: tuple[int, ...]

entitlement_ids instance-attribute

entitlement_ids: tuple[int, ...]

renewal_sku_ids instance-attribute

renewal_sku_ids: tuple[int, ...] | None

current_period_start instance-attribute

current_period_start: datetime

current_period_end instance-attribute

current_period_end: datetime

status instance-attribute

canceled_at instance-attribute

canceled_at: datetime | None

country class-attribute instance-attribute

country: str | None = None

created_at property

created_at: datetime

When the object was created, in UTC, read from its id.

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

decode_entitlement

decode_entitlement(data: bytes) -> PartialEntitlement

Decode an entitlement, as a PartialEntitlement when it has no period.

bostie.models.social

LobbyMember

Bases: Model, Snowflake

id instance-attribute

id: int

metadata class-attribute instance-attribute

metadata: dict[str, str] | None = None

flags class-attribute instance-attribute

additional_name class-attribute instance-attribute

additional_name: str | None = None

created_at property

created_at: datetime

When the object was created, in UTC, read from its id.

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

Lobby

Bases: Model, Snowflake

A Social SDK lobby; metadata holds the game's key-value pairs.

id instance-attribute

id: int

application_id instance-attribute

application_id: int

metadata instance-attribute

metadata: dict[str, str] | None

members instance-attribute

members: tuple[LobbyMember, ...]

linked_channel class-attribute instance-attribute

linked_channel: Channel | None = None

created_at property

created_at: datetime

When the object was created, in UTC, read from its id.

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

LobbyMessageMember

Bases: Model

additional_name instance-attribute

additional_name: str

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

LobbyMessage

Bases: Model, Snowflake

A message in a lobby; application_id is absent outside SDK sessions.

id instance-attribute

id: int

type instance-attribute

content instance-attribute

content: str

lobby_id instance-attribute

lobby_id: int

channel_id instance-attribute

channel_id: int

author instance-attribute

author: User

lobby_member class-attribute instance-attribute

lobby_member: LobbyMessageMember | None = None

metadata class-attribute instance-attribute

metadata: dict[str, str] | None = None

moderation_metadata class-attribute instance-attribute

moderation_metadata: dict[str, str] | None = None

flags instance-attribute

flags: MessageFlags

application_id class-attribute instance-attribute

application_id: int | None = None

timestamp class-attribute instance-attribute

timestamp: datetime | None = None

edited_timestamp class-attribute instance-attribute

edited_timestamp: datetime | None = None

created_at property

created_at: datetime

When the object was created, in UTC, read from its id.

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

GameDirectMessage

Bases: Model, Snowflake

A direct message sent while a player has a Social SDK session.

A message between two provisional accounts exists only in game and carries channel with the recipients; another one is a regular message.

id instance-attribute

id: int

content instance-attribute

content: str

author instance-attribute

author: User

type class-attribute instance-attribute

channel_id class-attribute instance-attribute

channel_id: int | None = None

channel class-attribute instance-attribute

channel: Channel | None = None

recipient_id class-attribute instance-attribute

recipient_id: int | None = None

lobby_id class-attribute instance-attribute

lobby_id: int | None = None

flags class-attribute instance-attribute

application_id class-attribute instance-attribute

application_id: int | None = None

timestamp class-attribute instance-attribute

timestamp: datetime | None = None

edited_timestamp class-attribute instance-attribute

edited_timestamp: datetime | None = None

attachments class-attribute instance-attribute

attachments: tuple[Attachment, ...] = ()

components property

components: tuple[Component, ...]

created_at property

created_at: datetime

When the object was created, in UTC, read from its id.

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

ApplicationIdentity

Bases: Model

A user's account in the game's own account system, linked to Discord.

provider_type instance-attribute

provider_type: str

provider_id class-attribute instance-attribute

provider_id: str | None = None

provider_issued_user_id instance-attribute

provider_issued_user_id: str

user_id class-attribute instance-attribute

user_id: int | None = None

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.

ProfileMedia

Bases: Builder

url instance-attribute

url: str

PrimaryProfileData

Bases: Builder

The game stats every Game Stats Widget knows; each one is optional.

season class-attribute instance-attribute

season: str | None = None

rank_name class-attribute instance-attribute

rank_name: str | None = None

rank_image class-attribute instance-attribute

rank_image: ProfileMedia | None = None

highest_rank class-attribute instance-attribute

highest_rank: str | None = None

highest_rank_image class-attribute instance-attribute

highest_rank_image: ProfileMedia | None = None

featured_played_character class-attribute instance-attribute

featured_played_character: str | None = None

featured_played_character_image class-attribute instance-attribute

featured_played_character_image: ProfileMedia | None = None

playtime_hours class-attribute instance-attribute

playtime_hours: float | None = None

total_wins class-attribute instance-attribute

total_wins: int | None = None

current_period_wins class-attribute instance-attribute

current_period_wins: int | None = None

total_games class-attribute instance-attribute

total_games: int | None = None

current_period_games class-attribute instance-attribute

current_period_games: int | None = None

total_kills class-attribute instance-attribute

total_kills: int | None = None

current_period_kills class-attribute instance-attribute

current_period_kills: int | None = None

total_assists class-attribute instance-attribute

total_assists: int | None = None

current_period_assists class-attribute instance-attribute

current_period_assists: int | None = None

total_deaths class-attribute instance-attribute

total_deaths: int | None = None

current_period_deaths class-attribute instance-attribute

current_period_deaths: int | None = None

ProfileField

Bases: Builder

A game stat of the game's own, named for the widget editor.

type instance-attribute

name instance-attribute

name: str

value instance-attribute

value: str | float | ProfileMedia

ProfileData

Bases: Builder

primary class-attribute instance-attribute

primary: PrimaryProfileData | None = None

dynamic class-attribute instance-attribute

dynamic: tuple[ProfileField, ...] = ()

ApplicationIdentityProfile

Bases: Model

The game data a Game Stats Widget shows on a user's profile.

username instance-attribute

username: str | None

metadata instance-attribute

metadata: Any

data instance-attribute

data: ProfileData | None

raw_json class-attribute instance-attribute

raw_json: bytes | None = msgspec.field(default=None, name='__bostie_raw__')

raw property

raw: Any

The payload this object was received as, or None for nested objects.