dimscord/restapi

    Dark Mode
Search:
Group by:

Interaction with the Discord API:

Quick note: for executing webhooks, this can also apply to interactions, I'd recommend reading: https://discord.com/developers/docs/interactions/slash-commands

Endpoint aliases start here: https://discord.com/developers/docs/interactions/slash-commands#edit-original-interaction-response

Procs

proc sendMessage(api: RestApi; channel_id: string; content = ""; tts = false;
                 embed = none Embed; allowed_mentions = none AllowedMentions;
                 nonce: Option[string] or Option[int] = none(int);
                 files = none seq[DiscordFile];
                 message_reference = none MessageReference): Future[Message]
Sends a discord message.
  • nonce This can be used for optimistic message sending
  Source Edit
proc editMessage(api: RestApi; channel_id, message_id: string; content = "";
                 tts = false; flags = none(int); embed = none Embed): Future[
    Message] {...}{.raises: [Exception, ValueError],
               tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Edits a discord message.   Source Edit
proc crosspostMessage(api: RestApi; channel_id, message_id: string): Future[
    Message] {...}{.raises: [Exception, ValueError],
               tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Crosspost channel message aka publish messages into news channels.   Source Edit
proc deleteMessage(api: RestApi; channel_id, message_id: string; reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Deletes a discord message.   Source Edit
proc getChannelMessages(api: RestApi; channel_id: string;
                        around, before, after = ""; limit = 50): Future[
    seq[Message]] {...}{.raises: [Exception, ValueError],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets channel messages.   Source Edit
proc getChannelMessage(api: RestApi; channel_id, message_id: string): Future[
    Message] {...}{.raises: [Exception, ValueError],
               tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Get a channel message.   Source Edit
proc bulkDeleteMessages(api: RestApi; channel_id: string;
                        message_ids: seq[string]; reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Bulk deletes messages.   Source Edit
proc addMessageReaction(api: RestApi; channel_id, message_id, emoji: string): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Adds a message reaction to a Discord message.
  • emoji Example: '👀', '💩', likethis:123456789012345678
  Source Edit
proc deleteMessageReaction(api: RestApi; channel_id, message_id, emoji: string;
                           user_id = "@me"): owned(Future[void]) {...}{.
    raises: [Exception],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Deletes the user's or the bot's message reaction to a Discord message.   Source Edit
proc deleteMessageReactionEmoji(api: RestApi;
                                channel_id, message_id, emoji: string): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Deletes all the reactions for emoji.   Source Edit
proc getMessageReactions(api: RestApi; channel_id, message_id, emoji: string;
                         before, after = ""; limit = 25): Future[seq[User]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Get all user message reactions on the emoji provided.   Source Edit
proc deleteAllMessageReactions(api: RestApi; channel_id, message_id: string): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Remove all message reactions.   Source Edit
proc executeWebhook(api: RestApi; webhook_id, webhook_token: string;
                    wait = true; content = ""; tts = false;
                    file = none DiscordFile; embeds = none array[10, Embed];
                    allowed_mentions = none AllowedMentions;
                    username, avatar_url = none string): Future[Message] {...}{.
    raises: [Exception, ValueError],
    tags: [ReadIOEffect, RootEffect, TimeEffect, WriteIOEffect].}
Executes a webhook or create a followup message. If wait is false make sure to discard await it.
  • webhook_id can be used as application id
  • webhook_token can be used as interaction token
  Source Edit
proc editWebhookMessage(api: RestApi;
                        webhook_id, webhook_token, message_id: string;
                        content = none string; embeds = none array[10, Embed];
                        allowed_mentions = none AllowedMentions): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Modifies the webhook message. You can actually use this to modify original interaction or followup message.
  • webhook_id can also be application_id
  • webhook_token can also be interaction token.
  • message_id can be @original
  Source Edit
proc deleteWebhookMessage(api: RestApi;
                          webhook_id, webhook_token, message_id: string): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Modifies the webhook message. You can actually use this to delete original interaction or followup message.
  • webhook_id can also be application_id
  • webhook_token can also be interaction token.
  Source Edit
proc executeSlackWebhook(api: RestApi; webhook_id, token: string; wait = true): Future[
    Message] {...}{.raises: [Exception, ValueError],
               tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Executes a slack webhook. If wait is false make sure to discard await it.   Source Edit
proc executeGithubWebhook(api: RestApi; webhook_id, token: string; wait = true): Future[
    Message] {...}{.raises: [Exception, ValueError],
               tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Executes a github webhook. If wait is false make sure to discard await it.   Source Edit
proc triggerTypingIndicator(api: RestApi; channel_id: string): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Starts typing in a specific Discord channel.   Source Edit
proc addChannelMessagePin(api: RestApi; channel_id, message_id: string;
                          reason = ""): owned(Future[void]) {...}{.
    raises: [Exception],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Add pinned message.   Source Edit
proc deleteChannelMessagePin(api: RestApi; channel_id, message_id: string;
                             reason = ""): owned(Future[void]) {...}{.
    raises: [Exception],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Remove pinned message.   Source Edit
proc getChannelPins(api: RestApi; channel_id: string): Future[seq[Message]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Get channel pins.   Source Edit
proc editGuildChannel(api: RestApi; channel_id: string;
                      name, parent_id, topic = none string;
                      rate_limit_per_user, bitrate = none int;
                      position, user_limit = none int;
                      permission_overwrites = none seq[Overwrite];
                      nsfw = none bool; reason = ""): Future[GuildChannel] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Modify a guild channel.   Source Edit
proc createGuildChannel(api: RestApi; guild_id, name: string; kind = 0;
                        parent_id, topic = none string; nsfw = none bool;
    rate_limit_per_user, bitrate, position, user_limit = none int;
                        permission_overwrites = none seq[Overwrite]; reason = ""): Future[
    GuildChannel] {...}{.raises: [Exception, ValueError],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Creates a channel.   Source Edit
proc deleteChannel(api: RestApi; channel_id: string; reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Deletes or closes a channel.   Source Edit
proc editGuildChannelPermissions(api: RestApi;
                                 channel_id, perm_id, kind: string or int;
                                 perms: PermObj; reason = ""): owned(
    Future[void])
Modify the channel's permissions.
  • kind Must be "role" or "member", or 0 or 1 if v8.
  Source Edit
proc createChannelInvite(api: RestApi; channel_id: string; max_age = 86400;
                         max_uses = 0; temp, unique = false;
                         target_user = none string; target_user_type = none int;
                         reason = ""): Future[Invite] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Creates an instant invite.   Source Edit
proc deleteGuildChannelPermission(api: RestApi; channel_id, overwrite: string;
                                  reason = ""): owned(Future[void]) {...}{.
    raises: [Exception],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Deletes a guild channel overwrite.   Source Edit
proc deleteInvite(api: RestApi; code: string; reason = ""): owned(Future[void]) {...}{.
    raises: [Exception],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Deletes a guild invite.   Source Edit
proc getChannelInvites(api: RestApi; channel_id: string): Future[seq[Invite]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a list of a channel's invites.   Source Edit
proc getGuildChannel(api: RestApi; guild_id, channel_id: string): Future[
    GuildChannel] {...}{.raises: [Exception, ValueError],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a guild channel.   Source Edit
proc getGuildChannels(api: RestApi; guild_id: string): Future[seq[GuildChannel]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a list of a guild's channels   Source Edit
proc editGuildChannelPositions(api: RestApi; guild_id, channel_id: string;
                               position = none int; reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Edits a guild channel's position.   Source Edit
proc getChannelWebhooks(api: RestApi; channel_id: string): Future[seq[Webhook]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a list of a channel's webhooks.   Source Edit
proc createWebhook(api: RestApi; channel_id, username: string;
                   avatar = none string; reason = ""): Future[Webhook] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Creates a webhook. (webhook names cannot be: 'clyde', and they range 1-80)   Source Edit
proc getWebhook(api: RestApi; webhook_id: string): Future[Webhook] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a webhook.   Source Edit
proc deleteWebhook(api: RestApi; webhook_id: string; reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Deletes a webhook.   Source Edit
proc editWebhook(api: RestApi; webhook_id: string;
                 name, avatar, channel_id = none string; reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Modifies a webhook.   Source Edit
proc beginGuildPrune(api: RestApi; guild_id: string; days = 7;
                     compute_prune_count = true; reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Begins a guild prune.   Source Edit
proc getGuildPruneCount(api: RestApi; guild_id: string; days: int): Future[int] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets the prune count.   Source Edit
proc deleteGuild(api: RestApi; guild_id: string): owned(Future[void]) {...}{.
    raises: [Exception],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Deletes a guild.   Source Edit
proc editGuild(api: RestApi; guild_id: string;
               name, region, afk_channel_id, icon = none string;
               discovery_splash, owner_id, splash, banner = none string;
               system_channel_id, rules_channel_id = none string;
               preferred_locale, public_updates_channel_id = none string;
               verification_level, default_message_notifications = none int;
               explicit_content_filter, afk_timeout = none int; reason = ""): Future[
    Guild] {...}{.raises: [Exception, ValueError],
             tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Edits a guild. Icon needs to be a base64 image. (See: https://nim-lang.org/docs/base64.html)   Source Edit
proc createGuild(api: RestApi; name, region = none string;
                 icon, afk_channel_id, system_channel_id = none string;
                 verification_level, default_message_notifications = none int;
                 afk_timeout, explicit_content_filter = none int;
                 roles = none seq[Role]; channels = none seq[Channel]): Future[
    Guild] {...}{.raises: [Exception, ValueError],
             tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Create a guild. Please read these notes: https://discord.com/developers/docs/resources/guild#create-guild   Source Edit
proc getGuild(api: RestApi; guild_id: string; with_counts = false): Future[Guild] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a guild.   Source Edit
proc getGuildAuditLogs(api: RestApi; guild_id: string; user_id, before = "";
                       action_type = -1; limit = 50): Future[AuditLog] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Get guild audit logs. The maximum limit is 100.   Source Edit
proc getGuildRoles(api: RestApi; guild_id: string): Future[seq[Role]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a guild's roles.   Source Edit
proc createGuildRole(api: RestApi; guild_id: string; name = "new role";
                     hoist, mentionable = false; permissions: PermObj;
                     color = 0; reason = ""): Future[Role] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Creates a guild role.   Source Edit
proc deleteGuildRole(api: RestApi; guild_id, role_id: string): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Deletes a guild role.   Source Edit
proc editGuildRole(api: RestApi; guild_id, role_id: string; name = none string;
                   permissions = none PermObj; color = none int;
                   hoist, mentionable = none bool; reason = ""): Future[Role] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Modifies a guild role.   Source Edit
proc editGuildRolePosition(api: RestApi; guild_id, role_id: string;
                           position = none int; reason = ""): Future[seq[Role]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Edits guild role position.   Source Edit
proc getGuildInvites(api: RestApi; guild_id: string): Future[seq[InviteMetadata]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets guild invites.   Source Edit
proc getGuildVanityUrl(api: RestApi; guild_id: string): Future[
    tuple[code: Option[string], uses: int]] {...}{.raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets the guild vanity url.   Source Edit
proc editGuildMember(api: RestApi; guild_id, user_id: string;
                     nick, channel_id = none string; roles = none seq[string];
                     mute, deaf = none bool; reason = ""): owned(Future[void]) {...}{.
    raises: [Exception],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Modifies a guild member   Source Edit
proc removeGuildMember(api: RestApi; guild_id, user_id: string; reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Removes a guild member.   Source Edit
proc getGuildBan(api: RestApi; guild_id, user_id: string): Future[GuildBan] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets guild ban.   Source Edit
proc getGuildBans(api: RestApi; guild_id: string): Future[seq[GuildBan]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets all the guild bans.   Source Edit
proc createGuildBan(api: RestApi; guild_id, user_id: string; deletemsgdays = 0;
                    reason = ""): owned(Future[void]) {...}{.raises: [Exception],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Creates a guild ban.   Source Edit
proc removeGuildBan(api: RestApi; guild_id, user_id: string; reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Removes a guild ban.   Source Edit
proc getGuildIntegrations(api: RestApi; guild_id: string): Future[
    seq[Integration]] {...}{.raises: [Exception, ValueError], tags: [RootEffect,
    TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a list of guild integrations.   Source Edit
proc getGuildWebhooks(api: RestApi; guild_id: string): Future[seq[Webhook]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a list of a channel's webhooks.   Source Edit
proc syncGuildIntegration(api: RestApi; guild_id, integ_id: string): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Syncs a guild integration.   Source Edit
proc editGuildIntegration(api: RestApi; guild_id, integ_id: string;
                          expire_behavior, expire_grace_period = none int;
                          enable_emoticons = none bool; reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Edits a guild integration.   Source Edit
proc deleteGuildIntegration(api: RestApi; integ_id: string; reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Deletes a guild integration.   Source Edit
proc getGuildWidget(api: RestApi; guild_id: string): Future[GuildWidgetJson] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a guild widget.   Source Edit
proc editGuildWidget(api: RestApi; guild_id: string; enabled = none bool;
                     channel_id = none string): Future[
    tuple[enabled: bool, channel_id: Option[string]]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Modifies a guild widget.   Source Edit
proc getGuildPreview(api: RestApi; guild_id: string): Future[GuildPreview] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets guild preview.   Source Edit
proc addGuildMember(api: RestApi; guild_id, user_id, access_token: string;
                    nick = none string; roles = none seq[string];
                    mute, deaf = none bool; reason = ""): Future[
    tuple[member: Member, exists: bool]] {...}{.raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Adds a guild member. If member is in the guild, then exists will be true.   Source Edit
proc createGuildEmoji(api: RestApi; guild_id, name, image: string;
                      roles: seq[string] = @[]; reason = ""): Future[Emoji] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Creates a guild emoji. The image needs to be a base64 string. (See: https://nim-lang.org/docs/base64.html)   Source Edit
proc editGuildEmoji(api: RestApi; guild_id, emoji_id: string;
                    name = none string; roles = none seq[string]; reason = ""): Future[
    Emoji] {...}{.raises: [Exception, ValueError],
             tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Modifies a guild emoji.   Source Edit
proc deleteGuildEmoji(api: RestApi; guild_id, emoji_id: string; reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Deletes a guild emoji.   Source Edit
proc getGuildVoiceRegions(api: RestApi; guild_id: string): Future[
    seq[VoiceRegion]] {...}{.raises: [Exception, ValueError], tags: [RootEffect,
    TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a guild's voice regions.   Source Edit
proc getVoiceRegions(api: RestApi): Future[seq[VoiceRegion]] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Get voice regions   Source Edit
proc createGuildFromTemplate(api: RestApi; code: string): Future[Guild] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Create a guild from a template, this endpoint is used for bots that are in >10 guilds   Source Edit
proc getGuildTemplate(api: RestApi; code: string): Future[GuildTemplate] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Get guild template from its code.   Source Edit
proc createGuildTemplate(api: RestApi; guild_id, name: string;
                         description = none string): Future[GuildTemplate] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Create a guild template   Source Edit
proc syncGuildTemplate(api: RestApi; guild_id, code: string): Future[
    GuildTemplate] {...}{.raises: [Exception, ValueError], tags: [RootEffect,
    TimeEffect, ReadIOEffect, WriteIOEffect].}
Sync guild template.   Source Edit
proc editGuildTemplate(api: RestApi; guild_id, code: string;
                       name, description = none string): Future[GuildTemplate] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Modify a guild template.   Source Edit
proc deleteGuildTemplate(api: RestApi; guild_id, code: string): Future[
    GuildTemplate] {...}{.raises: [Exception, ValueError], tags: [RootEffect,
    TimeEffect, ReadIOEffect, WriteIOEffect].}
Delete guild template.   Source Edit
proc getInvite(api: RestApi; code: string; with_counts, auth = false): Future[
    Invite] {...}{.raises: [Exception, ValueError],
              tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a discord invite, it can be a vanity code.
  • auth Whether you should get the invite while authenticated.
  Source Edit
proc getGuildMember(api: RestApi; guild_id, user_id: string): Future[Member] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a guild member.   Source Edit
proc getGuildMembers(api: RestApi; guild_id: string; limit = 1; after = "0"): Future[
    seq[Member]] {...}{.raises: [Exception, ValueError],
                   tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a list of a guild's members.   Source Edit
proc setGuildNick(api: RestApi; guild_id: string; nick, reason = ""): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Sets the current user's guild nickname, defaults to "" if no nick is set.   Source Edit
proc addGuildMemberRole(api: RestApi; guild_id, user_id, role_id: string;
                        reason = ""): owned(Future[void]) {...}{.raises: [Exception],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Assigns a member's role.   Source Edit
proc removeGuildMemberRole(api: RestApi; guild_id, user_id, role_id: string;
                           reason = ""): owned(Future[void]) {...}{.
    raises: [Exception],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Removes a member's role.   Source Edit
proc getUser(api: RestApi; user_id: string): Future[User] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets a user.   Source Edit
proc leaveGuild(api: RestApi; guild_id: string): owned(Future[void]) {...}{.
    raises: [Exception],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Leaves a guild.   Source Edit
proc createUserDm(api: RestApi; user_id: string): Future[DMChannel] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Create user dm.   Source Edit
proc getCurrentUser(api: RestApi): Future[User] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets the current user.   Source Edit
proc getGatewayBot(api: RestApi): Future[GatewayBot] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Get gateway bot with authentication.   Source Edit
proc getGateway(api: RestApi): Future[string] {...}{.raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Get Discord gateway URL.   Source Edit
proc editCurrentUser(api: RestApi; username, avatar = none string): Future[User] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Modifies the bot's username or avatar.   Source Edit
proc createGroupDm(api: RestApi; access_tokens: seq[string];
                   nicks: Table[string, string]): Future[DMChannel] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Creates a Group DM Channel.
  • nicks Example: {"2123450": "MrDude"}.toTable
  Source Edit
proc getCurrentApplication(api: RestApi): Future[OAuth2Application] {...}{.
    raises: [Exception, ValueError],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Gets the current application for the current user (bot user).   Source Edit
proc registerApplicationCommand(api: RestApi; application_id: string;
                                guild_id = ""; name, description: string;
                                options: seq[ApplicationCommandOption] = @[]): Future[
    ApplicationCommand] {...}{.raises: [Exception, ValueError], tags: [RootEffect,
    TimeEffect, ReadIOEffect, WriteIOEffect].}
Create a global or guild only slash command.
  • guild_id - Optional
  • name - Character length (3 - 32)
  • descripton - Character length (1 - 100)

NOTE: Creating a command with the same name as an existing command for your application will overwrite the old command.

  Source Edit
proc getApplicationCommands(api: RestApi; application_id: string; guild_id = ""): Future[
    seq[ApplicationCommand]] {...}{.raises: [Exception, ValueError], tags: [
    RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Get slash commands for a specific application, guild_id is optional.   Source Edit
proc editApplicationCommand(api: RestApi; application_id, command_id: string;
                            guild_id = ""; name, description: string;
                            options: seq[ApplicationCommandOption] = @[]): Future[
    ApplicationCommand] {...}{.raises: [Exception, ValueError], tags: [RootEffect,
    TimeEffect, ReadIOEffect, WriteIOEffect].}
Modify slash command for a specific application.
  • guild_id - Optional
  • name - Character length (3 - 32)
  • descripton - Character length (1 - 100)
  Source Edit
proc deleteApplicationCommand(api: RestApi; application_id, command_id: string;
                              guild_id = ""): owned(Future[void]) {...}{.
    raises: [Exception],
    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Delete slash command for a specific application, guild_id is optional.   Source Edit
proc createInteractionResponse(api: RestApi;
                               interaction_id, interaction_token: string;
                               response: InteractionResponse): owned(
    Future[void]) {...}{.raises: [Exception],
                    tags: [RootEffect, TimeEffect, ReadIOEffect, WriteIOEffect].}
Create an interaction response. response.kind is required.   Source Edit