Skip to content

Objects


Announcement Channel


announcement

GuildAnnouncementChannelPart dataclass

Bases: GuildChannelCreate


              flowchart TD
              scurrypy.api.channels.announcement.GuildAnnouncementChannelPart[GuildAnnouncementChannelPart]
              scurrypy.bases.channel.GuildChannelCreate[GuildChannelCreate]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.bases.channel.GuildChannelCreate --> scurrypy.api.channels.announcement.GuildAnnouncementChannelPart
                                scurrypy.core.model.DataModel --> scurrypy.bases.channel.GuildChannelCreate
                



              click scurrypy.api.channels.announcement.GuildAnnouncementChannelPart href "" "scurrypy.api.channels.announcement.GuildAnnouncementChannelPart"
              click scurrypy.bases.channel.GuildChannelCreate href "" "scurrypy.bases.channel.GuildChannelCreate"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Parameters for creating a guild announcement channel.

name: str | None = None class-attribute instance-attribute

Name of the channel.

topic: str | None = None class-attribute instance-attribute

Topic of the channel.

position: int | None = None class-attribute instance-attribute

Sorting position of the channel (channels with the same position are sorted by id).

parent_id: Snowflake | None = None class-attribute instance-attribute

Category ID of the channel.

nsfw: bool | None = None class-attribute instance-attribute

If the channel is flagged NSFW.

default_auto_archive_duration: int | None = None class-attribute instance-attribute

Default duration in minutes threads will be hidden after period of inactivity.

default_thread_rate_limit_per_user: int | None = None class-attribute instance-attribute

Rate limit per user set on newly created threads.

Note

This field does not live update!

type: ChannelType = field(init=False, default=(ChannelType.GUILD_ANNOUNCEMENT)) class-attribute instance-attribute

Type of channel. Always ChannelType.GUILD_ANNOUNCEMENT for this class.

Channel


channel

ChannelModel dataclass

Bases: DataModel


              flowchart TD
              scurrypy.api.channels.channel.ChannelModel[ChannelModel]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.core.model.DataModel --> scurrypy.api.channels.channel.ChannelModel
                


              click scurrypy.api.channels.channel.ChannelModel href "" "scurrypy.api.channels.channel.ChannelModel"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Represents common channel fields.

id: Snowflake instance-attribute

ID of the channel.

flags: ChannelFlags instance-attribute

Channel flags combined as a bitfield.

guild_id: Snowflake | None instance-attribute

Guild ID of the channel.

parent_id: Snowflake | None instance-attribute

Category ID of the channel.

position: int | None instance-attribute

Position of the channel.

name: str | None instance-attribute

Name of the channel.

topic: str | None instance-attribute

Topic of the channel.

nsfw: bool | None instance-attribute

If the channel is flagged NSFW.

last_message_id: Snowflake | None instance-attribute

ID of the last message sent in the channel.

rate_limit_per_user: int | None instance-attribute

Seconds user must wait between sending messages in the channel.

last_pin_timestamp: str | None instance-attribute

ISO8601 timestamp of the last pinned messsage in the channel.

permissions: Permissions | None instance-attribute

Permissions for the invoking user in this channel. Includes role and overwrite calculations. [INT_LIMIT]

Default Reaction


default_reaction

DefaultReactionModel dataclass

Bases: DataModel


              flowchart TD
              scurrypy.api.channels.default_reaction.DefaultReactionModel[DefaultReactionModel]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.core.model.DataModel --> scurrypy.api.channels.default_reaction.DefaultReactionModel
                


              click scurrypy.api.channels.default_reaction.DefaultReactionModel href "" "scurrypy.api.channels.default_reaction.DefaultReactionModel"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Represents the default reaction for a GUILD_FORUM post.

emoji_id: Snowflake instance-attribute

ID of the guild's custom emoji.

emoji_name: str instance-attribute

Unicode character of the emoji.

DefaultReactionPart dataclass

Bases: DataModel


              flowchart TD
              scurrypy.api.channels.default_reaction.DefaultReactionPart[DefaultReactionPart]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.core.model.DataModel --> scurrypy.api.channels.default_reaction.DefaultReactionPart
                


              click scurrypy.api.channels.default_reaction.DefaultReactionPart href "" "scurrypy.api.channels.default_reaction.DefaultReactionPart"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Represents the default reaction for a GUILD_FORUM post.

emoji_id: int | None = None class-attribute instance-attribute

ID of the guild's custom emoji.

emoji_name: str | None = None class-attribute instance-attribute

Unicode character of the emoji.

DM Channel


dm

DMChannelModel dataclass

Bases: ChannelModel


              flowchart TD
              scurrypy.api.channels.dm.DMChannelModel[DMChannelModel]
              scurrypy.api.channels.channel.ChannelModel[ChannelModel]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.api.channels.channel.ChannelModel --> scurrypy.api.channels.dm.DMChannelModel
                                scurrypy.core.model.DataModel --> scurrypy.api.channels.channel.ChannelModel
                



              click scurrypy.api.channels.dm.DMChannelModel href "" "scurrypy.api.channels.dm.DMChannelModel"
              click scurrypy.api.channels.channel.ChannelModel href "" "scurrypy.api.channels.channel.ChannelModel"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Represents a DM channel.

recipients: list[UserModel] | None instance-attribute

Recipients of the DM.

icon: str | None instance-attribute

Icon hash of the group DM.

owner_id: Snowflake | None instance-attribute

ID of the creator of the group DM.

application_id: Snowflake | None instance-attribute

ID of the application that created the DM.

Followed Channel


followed

FollowedChannelModel dataclass

Bases: DataModel


              flowchart TD
              scurrypy.api.channels.followed.FollowedChannelModel[FollowedChannelModel]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.core.model.DataModel --> scurrypy.api.channels.followed.FollowedChannelModel
                


              click scurrypy.api.channels.followed.FollowedChannelModel href "" "scurrypy.api.channels.followed.FollowedChannelModel"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Represents the followed channel object.

channel_id: Snowflake instance-attribute

ID of the source channel.

webhook_id: Snowflake instance-attribute

Target webhook ID created.

Guild Forum Channel


forum

GuildForumChannelModel dataclass

Bases: ChannelModel


              flowchart TD
              scurrypy.api.channels.forum.GuildForumChannelModel[GuildForumChannelModel]
              scurrypy.api.channels.channel.ChannelModel[ChannelModel]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.api.channels.channel.ChannelModel --> scurrypy.api.channels.forum.GuildForumChannelModel
                                scurrypy.core.model.DataModel --> scurrypy.api.channels.channel.ChannelModel
                



              click scurrypy.api.channels.forum.GuildForumChannelModel href "" "scurrypy.api.channels.forum.GuildForumChannelModel"
              click scurrypy.api.channels.channel.ChannelModel href "" "scurrypy.api.channels.channel.ChannelModel"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Represents the forum channel.

available_tags: list[TagModel] | None instance-attribute

Set of tags that can be applied to a GUILD_FORUM post.

applied_tags: list[Snowflake] | None instance-attribute

Set of tags applied to a GUILD_FORUM post.

default_reaction_emoji: DefaultReactionModel | None instance-attribute

Emoji to show in the add reaction button in a GUILD_FORUM post.

default_sort_order: SortOrderType | None instance-attribute

Default forum sort order.

default_forum_layout: ForumLayoutType | None instance-attribute

Default forum layout view. Discord defaults to ForumLayoutTypes.NOT_SET.

GuildForumChannelPart dataclass

Bases: GuildChannelCreate


              flowchart TD
              scurrypy.api.channels.forum.GuildForumChannelPart[GuildForumChannelPart]
              scurrypy.bases.channel.GuildChannelCreate[GuildChannelCreate]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.bases.channel.GuildChannelCreate --> scurrypy.api.channels.forum.GuildForumChannelPart
                                scurrypy.core.model.DataModel --> scurrypy.bases.channel.GuildChannelCreate
                



              click scurrypy.api.channels.forum.GuildForumChannelPart href "" "scurrypy.api.channels.forum.GuildForumChannelPart"
              click scurrypy.bases.channel.GuildChannelCreate href "" "scurrypy.bases.channel.GuildChannelCreate"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Parameters for creating a guild forum channel.

name: str | None = None class-attribute instance-attribute

Name of the channel.

topic: str | None = None class-attribute instance-attribute

Topic of the channel.

position: int | None = None class-attribute instance-attribute

Sorting position of the channel (channels with the same position are sorted by id).

rate_limit_per_user: int | None = None class-attribute instance-attribute

Seconds user must wait between sending messages in the channel.

parent_id: Snowflake | None = None class-attribute instance-attribute

Category ID of the channel.

nsfw: bool | None = None class-attribute instance-attribute

If the channel is flagged NSFW.

default_auto_archive_duration: int | None = None class-attribute instance-attribute

Default duration in minutes threads will be hidden after period of inactivity.

default_reaction_emoji: DefaultReactionPart | None = None class-attribute instance-attribute

Emoji to show in the add reaction button in a GUILD_FORUM post.

available_tags: list[TagPart] | None = None class-attribute instance-attribute

Set of tags that can be applied to a GUILD_FORUM post.

default_sort_order: SortOrderType | None = None class-attribute instance-attribute

Default forum sort order.

default_forum_layout: ForumLayoutType | None = None class-attribute instance-attribute

Default forum layout view.

default_thread_rate_limit_per_user: int | None = None class-attribute instance-attribute

Rate limit per user set on newly created threads.

Note

This field does not live update!

type: ChannelType = field(init=False, default=(ChannelType.GUILD_FORUM)) class-attribute instance-attribute

Type of channel. Always ChannelType.GUILD_FORUM for this class.

Guild Text Channel


guild_text

GuildTextChannelPart dataclass

Bases: GuildChannelCreate


              flowchart TD
              scurrypy.api.channels.guild_text.GuildTextChannelPart[GuildTextChannelPart]
              scurrypy.bases.channel.GuildChannelCreate[GuildChannelCreate]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.bases.channel.GuildChannelCreate --> scurrypy.api.channels.guild_text.GuildTextChannelPart
                                scurrypy.core.model.DataModel --> scurrypy.bases.channel.GuildChannelCreate
                



              click scurrypy.api.channels.guild_text.GuildTextChannelPart href "" "scurrypy.api.channels.guild_text.GuildTextChannelPart"
              click scurrypy.bases.channel.GuildChannelCreate href "" "scurrypy.bases.channel.GuildChannelCreate"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Parameters for creating a guild text channel.

name: str | None = None class-attribute instance-attribute

Name of the channel.

topic: str | None = None class-attribute instance-attribute

Topic of the channel.

position: int | None = None class-attribute instance-attribute

Sorting position of the channel (channels with the same position are sorted by id).

rate_limit_per_user: int | None = None class-attribute instance-attribute

Seconds user must wait between sending messages in the channel.

parent_id: Snowflake | None = None class-attribute instance-attribute

Category ID of the channel.

nsfw: bool | None = None class-attribute instance-attribute

If the channel is flagged NSFW.

default_auto_archive_duration: int | None = None class-attribute instance-attribute

Default duration in minutes threads will be hidden after period of inactivity.

default_thread_rate_limit_per_user: int | None = None class-attribute instance-attribute

Rate limit per user set on newly created threads.

Note

This field does not live update!

type: ChannelType = field(init=False, default=(ChannelType.GUILD_TEXT)) class-attribute instance-attribute

Type of channel. Always ChannelType.GUILD_TEXT for this class.

Tag


tag

TagModel dataclass

Bases: DataModel


              flowchart TD
              scurrypy.api.channels.tag.TagModel[TagModel]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.core.model.DataModel --> scurrypy.api.channels.tag.TagModel
                


              click scurrypy.api.channels.tag.TagModel href "" "scurrypy.api.channels.tag.TagModel"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Represents the tag object found in GUILD_FORUM channels.

id: Snowflake instance-attribute

ID of the tag.

name: str instance-attribute

Name of the tag.

moderated: bool instance-attribute

Whether the tag can only be added/removed by a member with MANAGE_THREADS.

emoji_id: Snowflake instance-attribute

ID of a guild's custom emoji.

emoji_name: str instance-attribute

Unicode character of the emoji.

TagPart dataclass

Bases: DataModel


              flowchart TD
              scurrypy.api.channels.tag.TagPart[TagPart]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.core.model.DataModel --> scurrypy.api.channels.tag.TagPart
                


              click scurrypy.api.channels.tag.TagPart href "" "scurrypy.api.channels.tag.TagPart"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Represents the tag object found in GUILD_FORUM channels.

name: str | None = None class-attribute instance-attribute

Name of the tag.

moderated: bool | None = None class-attribute instance-attribute

Whether the tag can only be added/removed by a member with MANAGE_THREADS.

emoji_id: Snowflake | None = None class-attribute instance-attribute

ID of a guild's custom emoji.

emoji_name: str | None = None class-attribute instance-attribute

Unicode character of the emoji.

Threads


threads

ThreadFromMessagePart dataclass

Bases: DataModel


              flowchart TD
              scurrypy.api.channels.threads.ThreadFromMessagePart[ThreadFromMessagePart]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.core.model.DataModel --> scurrypy.api.channels.threads.ThreadFromMessagePart
                


              click scurrypy.api.channels.threads.ThreadFromMessagePart href "" "scurrypy.api.channels.threads.ThreadFromMessagePart"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Parameters for creating a thread attached to a message.

name: str | None = None class-attribute instance-attribute

Name of the thread.

rate_limit_per_user: int | None = None class-attribute instance-attribute

Seconds user must wait between sending messages in the channel.

auto_archive_duration: AutoArchiveDurationType | None = None class-attribute instance-attribute

Duration in minutes threads will be hidden after period of inactivity.

ThreadWithoutMessagePart dataclass

Bases: DataModel


              flowchart TD
              scurrypy.api.channels.threads.ThreadWithoutMessagePart[ThreadWithoutMessagePart]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.core.model.DataModel --> scurrypy.api.channels.threads.ThreadWithoutMessagePart
                


              click scurrypy.api.channels.threads.ThreadWithoutMessagePart href "" "scurrypy.api.channels.threads.ThreadWithoutMessagePart"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Parameters for creating a thread without a message.

name: str | None = None class-attribute instance-attribute

Name of the thread.

rate_limit_per_user: int | None = None class-attribute instance-attribute

Seconds user must wait between sending messages in the channel.

auto_archive_duration: AutoArchiveDurationType | None = None class-attribute instance-attribute

Duration in minutes threads will be hidden after period of inactivity.

type: ChannelType | None = None class-attribute instance-attribute

Type of thread to create. If omitted, Discord defaults to ChannelType.PRIVATE_THREAD.

invitable: bool | None = None class-attribute instance-attribute

Whether non-moderators can add other non-moderators to the thread (private threads only).

ThreadMetadataModel dataclass

Bases: DataModel


              flowchart TD
              scurrypy.api.channels.threads.ThreadMetadataModel[ThreadMetadataModel]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.core.model.DataModel --> scurrypy.api.channels.threads.ThreadMetadataModel
                


              click scurrypy.api.channels.threads.ThreadMetadataModel href "" "scurrypy.api.channels.threads.ThreadMetadataModel"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Represents the thread metadata object.

archived: bool instance-attribute

Whether the thread is archived.

auto_archive_duration: int instance-attribute

How long to wait until the thread is hidden (in minutes).

archive_timestamp: str instance-attribute

ISO8601 timestamp of when the thread's archive status was last changed.

locked: bool instance-attribute

Whether the thread is locked.

Note

Only users with MANAGE_THREADS can unarchive the thread.

invitable: bool | None instance-attribute

Whether non-moderators can add other non-moderators to the thread (private threads only).

create_timestamp: str | None instance-attribute

ISO8601 timestamp of thread creation (field only exists after Jan 09, 2022).

ThreadMemberModel dataclass

Bases: DataModel


              flowchart TD
              scurrypy.api.channels.threads.ThreadMemberModel[ThreadMemberModel]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.core.model.DataModel --> scurrypy.api.channels.threads.ThreadMemberModel
                


              click scurrypy.api.channels.threads.ThreadMemberModel href "" "scurrypy.api.channels.threads.ThreadMemberModel"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Represents a user that has joined a thread.

id: Snowflake | None instance-attribute

ID of the thread.

user_id: Snowflake | None instance-attribute

ID of the user.

join_timestamp: str instance-attribute

ISO8601 timestamp of when the user last joined the thread.

member: GuildMemberModel | None instance-attribute

Additional information about the user.

Note

Only present when with_member is toggled on request.

default_thread_rate_limit_per_user: int | None instance-attribute

Rate limit per user set on newly created threads.

Note

This field does not live update!

ArchivedThreadsModel dataclass

Bases: DataModel


              flowchart TD
              scurrypy.api.channels.threads.ArchivedThreadsModel[ArchivedThreadsModel]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.core.model.DataModel --> scurrypy.api.channels.threads.ArchivedThreadsModel
                


              click scurrypy.api.channels.threads.ArchivedThreadsModel href "" "scurrypy.api.channels.threads.ArchivedThreadsModel"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Response body for fetching archived threads.

threads: list[ChannelModel] instance-attribute

The archived threads.

members: list[ThreadMemberModel] instance-attribute

Thread member for each returned thread the bot has joined.

has_more: bool instance-attribute

Whether there are additional threads to be returned with subsequent calls.

ActiveThreadsModel dataclass

Bases: DataModel


              flowchart TD
              scurrypy.api.channels.threads.ActiveThreadsModel[ActiveThreadsModel]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.core.model.DataModel --> scurrypy.api.channels.threads.ActiveThreadsModel
                


              click scurrypy.api.channels.threads.ActiveThreadsModel href "" "scurrypy.api.channels.threads.ActiveThreadsModel"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Response body for fetching active guild threads.

threads: list[ChannelModel] instance-attribute

The arctive threads.

members: list[ThreadMemberModel] instance-attribute

Thread member for each returned thread the bot has joined.

ThreadChannelModel dataclass

Bases: ChannelModel


              flowchart TD
              scurrypy.api.channels.threads.ThreadChannelModel[ThreadChannelModel]
              scurrypy.api.channels.channel.ChannelModel[ChannelModel]
              scurrypy.core.model.DataModel[DataModel]

                              scurrypy.api.channels.channel.ChannelModel --> scurrypy.api.channels.threads.ThreadChannelModel
                                scurrypy.core.model.DataModel --> scurrypy.api.channels.channel.ChannelModel
                



              click scurrypy.api.channels.threads.ThreadChannelModel href "" "scurrypy.api.channels.threads.ThreadChannelModel"
              click scurrypy.api.channels.channel.ChannelModel href "" "scurrypy.api.channels.channel.ChannelModel"
              click scurrypy.core.model.DataModel href "" "scurrypy.core.model.DataModel"
            

Represents the thread channel.

owner_id: Snowflake | None instance-attribute

ID of the creator of the thread.

application_id: Snowflake | None instance-attribute

ID of the application that created thread.

thread_metadata: ThreadMetadataModel | None instance-attribute

Thread-specific fields not needed by other channels.

member: ThreadMemberModel | None instance-attribute

Thread member object for the current user if they have joined the thread.

default_auto_archive_duration: int | None instance-attribute

Default duration in minutes threads will be hidden after period of inactivity.