Protocol Documentation

Table of Contents

Top

discord_api.proto

Discord API service

This file contains all messages and services currently supported by Discord Proxy

Channel

Source: https://discord.com/developers/docs/resources/channel#channel-object

Field Type Label Description
id uint64
type Channel.Type
guild_id uint64
position int32
name string tbd //
topic string
nsfw bool
last_message_id uint64
parent_id uint64

Embed

Source: https://discord.com/developers/docs/resources/channel#embed-object-embed-structure

Field Type Label Description
title string
type string
description string
url string
timestamp string
color int32
footer Embed.Footer
image Embed.Image
thumbnail Embed.Thumbnail
video Embed.Video
provider Embed.Provider
author Embed.Author
fields Embed.Field repeated

Embed.Author

Field Type Label Description
name string
url string
icon_url string
proxy_icon_url string

Embed.Field

Field Type Label Description
name string
value string
inline bool

Embed.Image

Field Type Label Description
url string
proxy_icon_url string
height int32
width int32

Embed.Provider

Field Type Label Description
name string
url string

Embed.Thumbnail

Field Type Label Description
url string
proxy_url string
height int32
width int32

Embed.Video

Field Type Label Description
url string
proxy_icon_url string
height int32
width int32

Emoji

Source: https://discord.com/developers/docs/resources/emoji#emoji-object

Field Type Label Description
id uint64
name string
roles uint64 repeated
user User
required_colons bool
managed bool
animated bool
available bool

GetGuildChannelsRequest

Field Type Label Description
guild_id uint64

GetGuildChannelsResponse

Field Type Label Description
channels Channel repeated

GuildMember

Source: https://discord.com/developers/docs/resources/guild#guild-member-object

Field Type Label Description
user User
nick string
roles uint64 repeated
joined_at string
premium_since string
deaf bool
mute bool
pending bool
permissions string

Message

Source: https://discord.com/developers/docs/resources/channel#message-object

Field Type Label Description
id uint64
channel_id uint64
guild_id uint64
author User
member GuildMember
content string
timestamp string
edited_timestamp string
tts bool
mention_everyone bool
mentions User repeated
mention_roles uint64 repeated
mention_channels uint64 repeated
attachments Message.Attachment repeated
embeds Embed repeated
reactions Message.Reaction repeated
nonce string
pinned bool
webhook_id uint64
type Message.Type
activity Message.Activity
application Message.Application
message_reference Message.Reference
flags int32
stickers Message.Sticker repeated
referenced_message Message interaction: not implemented

Message.Activity

Field Type Label Description
type Message.Activity.Type
party_id string

Message.Application

Field Type Label Description
id uint64
cover_image string
description string
icon string
name string

Message.Attachment

Field Type Label Description
id uint64
filename string
size int32
url string
proxy_url string
height int32
width int32

Message.ChannelMention

Field Type Label Description
id uint64
guild_id uint64
type Channel.Type
name string

Message.Reaction

Field Type Label Description
count int32
me bool
emoji Emoji

Message.Reference

Field Type Label Description
message_id uint64
channel_id uint64
guild_id uint64
fail_if_not_exists bool

Message.Sticker

Field Type Label Description
id uint64
pack_id uint64
name string
description string
tags string
asset string
preview_asset string
format_type Message.Sticker.Type

Role

Source: https://discord.com/developers/docs/topics/permissions#role-object

Field Type Label Description
id uint64
name string
color int32
hoist bool
position int32
permissions string
managed bool
mentionable bool
tags Role.Tag repeated

Role.Tag

Field Type Label Description
id uint64
integration_id uint64
premium_subscriber bool

SendChannelMessageRequest

Field Type Label Description
channel_id uint64
content string
embed Embed

SendChannelMessageResponse

Field Type Label Description
message Message

SendDirectMessageRequest

Field Type Label Description
user_id uint64
content string
embed Embed

SendDirectMessageResponse

Field Type Label Description
message Message

User

Source: https://discord.com/developers/docs/resources/user#user-object

Field Type Label Description
id uint64
username string
discriminator string
avatar string
bot bool
system bool
mfa_enabled bool
locale string
verified bool
email string
flags int32
premium_type int32
public_flags int32

Channel.Type

Name Number Description
UNDEFINED 0
GUILD_TEXT 1
DM 2
GUILD_VOICE 3
GROUP_DM 4
GUILD_CATEGORY 5
GUILD_NEWS 6 GUILD_STORE = 7; NO LONGER SUPORTED IN API

Message.Activity.Type

Name Number Description
UNDEFINED 0
JOIN 1
SPECTATE 2
LISTEN 3
JOIN_REQUESTS 4

Message.Sticker.Type

Name Number Description
UNDEFINED 0
PNG 1
APNG 2
LOTTIE 3

Message.Type

Name Number Description
DEFAULT 0
RECIPIENT_ADD 1
RECIPIENT_REMOVE 2
CALL 3
CHANNEL_NAME_CHANGE 4
CHANNEL_ICON_CHANGE 5
CHANNEL_PINNED_MESSAGE 6
GUILD_MEMBER_JOIN 7
USER_PREMIUM_GUILD_SUBSCRIPTION 8
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1 9
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2 10
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3 11
CHANNEL_FOLLOW_ADD 12
GUILD_DISCOVERY_DISQUALIFIED 14
GUILD_DISCOVERY_REQUALIFIED 15
REPLY 19
APPLICATION_COMMAND 20

DiscordApi

Provides access to the Discord API

Method Name Request Type Response Type Description
SendChannelMessage SendChannelMessageRequest SendChannelMessageResponse Send a message to a guild channel
SendDirectMessage SendDirectMessageRequest SendDirectMessageResponse Send a direct message to a user
GetGuildChannels GetGuildChannelsRequest GetGuildChannelsResponse Get the list of channel for a guild

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)