Skip to content

Objetos ​

Os formatos JSON que a API devolve e o gateway envia. Os nomes dos campos são exatamente os do JSON.

Convenções:

  • id é um snowflake em string (veja IDs).
  • ms é um número: milissegundos desde a época Unix.
  • ? depois do tipo quer dizer que o valor pode ser null.
  • Campos marcados opcional às vezes nem aparecem no JSON (em vez de virem null).

Usuário (PublicUser) ​

O que qualquer um vê de uma conta, pessoa ou bot. Aparece como autor de mensagens, dentro de membros, em READY.user e no evento USER_UPDATE.

campotipodescrição
ididId da conta.
usernamestringNome de usuário único, em minúsculas (2 a 32: letras, números, _ e .).
display_namestringNome de exibição (1 a 32 caracteres).
avatarstring?Imagem do avatar: /api/media/... ou URL de GIF. Veja Imagens.
botbooleantrue para bots (aparece com a etiqueta BOT).

Perfil (Profile) ​

Devolvido por GET /users/{id}/profile e PATCH /users/@me. O usuário vem aninhado em user.

campotipodescrição
userPublicUserA conta.
biostring?"Sobre mim", até 190 caracteres (pode ter quebras de linha).
bannerstring?Imagem do banner, no mesmo formato de avatar.
accentstring?Cor "#rrggbb" mostrada quando não há banner.

Bot (Bot) ​

Como o dono (e a página de convite) vê um bot. Os campos de PublicUser vêm no mesmo nível.

campotipodescrição
id, username, display_name, avatar, botComo em PublicUser.
publicbooleanSe qualquer pessoa que gerencia um servidor pode adicioná-lo pelo link de convite.
biostring?"Sobre mim" do bot.
owner_ididQuem criou o bot.
guild_countnumberEm quantos servidores ele está.
tokenstringSó na criação e ao gerar um token novo. Guarde: não aparece de novo.
ownerPublicUserSó em GET /bots/{bot_id}.

Servidor (Guild) ​

campotipodescrição
ididId do servidor. É também o id do cargo @everyone.
namestringNome (2 a 100 caracteres).
iconstring?Ícone, no mesmo formato de avatar.
owner_ididO dono. Sempre administrador; não pode sair nem ser removido.

Servidor completo (GuildFull) ​

Chega em READY.guilds e no evento GUILD_CREATE. Tem os campos de Guild no mesmo nível e mais:

campotipodescrição
channelsChannel[]Os canais que você pode ver. Postagens de fórum só vêm se tiveram atividade nos últimos 7 dias; as outras se buscam com GET /channels/{id}/posts.
membersMember[]Todos os membros.
presencesstring[]Ids dos membros online neste momento.
rolesRole[]Todos os cargos, incluindo @everyone.
emojisEmoji[]Os emojis do servidor.

Canal (Channel) ​

Canais de texto, salas de voz, categorias, fóruns, postagens de fórum e conversas privadas (DMs) são todos canais.

Tipos de canal ​

typenomeo que é
0CHANNEL_TEXTCanal de texto.
1CHANNEL_DMConversa privada entre duas contas.
2CHANNEL_VOICESala de voz. Não tem mensagens.
4CHANNEL_CATEGORYCategoria (seção) que agrupa canais.
11CHANNEL_POSTPostagem dentro de um fórum: um canal próprio, com título e autor. Tem mensagens.
15CHANNEL_FORUMFórum: guarda postagens em vez de mensagens.

Campos ​

campotipodescrição
ididId do canal.
guild_idid?Servidor do canal; null em DMs.
typenumberUm dos tipos.
namestringNome (1 a 100). Canais de texto e fóruns ficam em minúsculas, com hífens no lugar de espaços. Em DMs é "". Numa postagem, é o título.
topicstring?Tópico, até 1024 caracteres.
positionnumberOrdem entre os canais do mesmo tipo dentro da mesma categoria.
parent_idid?Categoria do canal; numa postagem, o fórum dela.
last_message_idid?Última mensagem. Num fórum, muda também quando há resposta numa postagem.
rate_limit_per_usernumberModo lento, em segundos (0 = desligado; máximo 21600).
owner_ididopcional. Autor de uma postagem.
pinnedbooleanopcional (só aparece quando true). Postagem fixada.
lockedbooleanopcional (só aparece quando true). Postagem trancada: só a moderação responde.
message_countnumberopcional (não aparece quando é 0). Quantas mensagens o canal tem.
applied_tagsid[]opcional (não aparece quando vazio). Tags de uma postagem, tiradas de available_tags do fórum.
voice_serverstringopcional. Servidor de voz escolhido para a sala (veja Voz). Sem ele, a sala usa o padrão.
available_tagsForumTag[]opcional. Tags de um fórum.
recipientsPublicUser[]opcional. Numa DM: a outra pessoa (você não aparece).
permission_overwritesOverwrite[]opcional. Em canais de servidor: as permissões próprias do canal. Uma postagem traz as do fórum dela.

Tag de fórum (ForumTag) ​

campotipodescrição
ididId da tag.
namestringNome, 1 a 20 caracteres.
emojistring?Emoji mostrado com a tag.
moderatedbooleanSe só a moderação (Gerenciar mensagens) pode pôr ou tirar a tag.

Postagem listada (Post) ​

O que GET /channels/{forum_id}/posts devolve: os campos de Channel no mesmo nível, e mais:

campotipodescrição
starterMessage?A primeira mensagem da postagem.

Permissão de canal (Overwrite) ​

Bits liberados e negados num canal para um cargo ou um membro. Veja Permissões de canal.

campotipodescrição
ididId do cargo ou do membro. O id do servidor é o cargo @everyone.
typenumber0 = cargo, 1 = membro.
allownumberBits liberados.
denynumberBits negados.

Membro (Member) ​

Uma conta dentro de um servidor. O usuário vem aninhado em user.

campotipodescrição
guild_ididO servidor.
userPublicUserA conta.
nickstring?Apelido neste servidor (até 32).
is_adminbooleanSe é ADM (administrador por marcação, além dos cargos). O dono sempre é.
joined_atmsQuando entrou.
rolesid[]Cargos do membro. @everyone não aparece aqui; todos têm.

Cargo (Role) ​

campotipodescrição
ididId do cargo. O cargo cujo id é o do servidor é @everyone.
guild_ididO servidor.
namestringNome, 1 a 32.
colornumber?Cor 0xRRGGBB, ou null sem cor.
positionnumberAltura na lista: @everyone é 0; quanto maior, mais alto.
permissionsnumberBits de permissão.
hoistbooleanSe os membros com o cargo aparecem separados na lista de membros.

Emoji (Emoji) ​

campotipodescrição
ididId do emoji.
guild_ididO servidor.
namestringNome, 2 a 32 letras, números ou _.
urlstringImagem (/api/media/...).
animatedbooleanSe é um GIF.

Nas mensagens, escreva <:nome:id> (ou <a:nome:id> se animado). Nas reações, nome:id.

Mensagem (Message) ​

campotipodescrição
ididId da mensagem.
channel_ididO canal. Não há guild_id: descubra pelo canal.
authorPublicUserQuem mandou.
contentstringTexto, até 4000 caracteres. Pode ser vazio se houver anexos. Menções são <@id> dentro do texto.
timestampmsQuando foi enviada (é o momento do id).
edited_timestampms?Última edição.
reply_toMessageRef?A mensagem que esta responde.
attachmentsAttachment[]Arquivos (até 10).
reactionsReactionCount[]Reações, na ordem em que apareceram.
noncestring?O nonce enviado por quem mandou (até 64 caracteres), para reconhecer a própria mensagem quando ela chegar pelo gateway.
embedsEmbed[]Prévias de links. Chegam vazias no MESSAGE_CREATE e são preenchidas logo depois, por um MESSAGE_UPDATE. Mensagens com cartões não ganham prévias.
cardsCard[]opcional. Cartões de um bot.
componentsButton[][]opcional. Fileiras de botões de um bot.
interactionInteractionRefopcional. O comando ou clique que esta mensagem (de um bot) responde.
ephemeralbooleanopcional (só aparece quando true). Só quem usou o comando vê, e não fica guardada.

Cartão (Card) ​

Mandado por bots; veja Comandos, cartões e botões.

campotipodescrição
titlestringopcional. Até 256.
descriptionstringopcional. Markdown, até 4096.
urlstringopcional. Link do título.
colornumberopcional. Cor da borda, 0xRRGGBB.
authorobjetoopcional. { name, url?, icon_url? }.
fieldsobjeto[]opcional. Até 25 { name, value, inline }.
imageobjetoopcional. { url }, imagem grande.
thumbnailobjetoopcional. { url }, imagem pequena ao lado.
footerobjetoopcional. { text, icon_url? }.
timestampmsopcional. Mostrado no rodapé.

Os links de imagem voltam trocados por /api/embeds/image?...: o servidor busca as imagens.

Botão (Button) ​

campotipodescrição
stylestringprimary, secondary, success, danger ou link.
labelstringopcional. Até 80.
emojistringopcional.
custom_idstringTodos menos link. Até 100, único na mensagem.
urlstringSó link.
disabledbooleanopcional.

Interação (InteractionRef) ​

campotipodescrição
ididA interação.
namestringopcional. O comando usado; não aparece num clique de botão.
userPublicUserQuem usou.

Comando (Command) ​

campotipodescrição
namestring1 a 32 letras minúsculas, números, _ ou -.
descriptionstring1 a 100.
optionsobjeto[]Até 25 { name, description, type, required, choices?, min_value?, max_value? }; type é string, integer, number, boolean, user, channel ou role; choices são até 25 { name, value }.

Resposta (MessageRef) ​

campotipodescrição
ididId da mensagem respondida.
authorPublicUser?O autor dela; null se ela foi apagada.
contentstring?Os primeiros 200 caracteres dela; null se foi apagada.

Anexo (Attachment) ​

campotipodescrição
ididId do anexo.
filenamestringNome do arquivo (limpo: letras, números, ., - e _, até 100).
content_typestringTipo MIME.
sizenumberTamanho em bytes.
urlstring/api/attachments/{id}. Precisa de token para baixar.
thumbnailstring?/api/attachments/{id}/thumb, quando é um vídeo com miniatura.
widthnumber?Largura informada por quem enviou.
heightnumber?Altura informada por quem enviou.

Reação (ReactionCount) ​

campotipodescrição
emojistringUm emoji Unicode ("👍") ou um emoji de servidor como nome:id.
countnumberQuantas contas reagiram com ele.
mebooleanSe quem pediu a mensagem está entre elas.

Feita pelo servidor para até 3 links da mensagem. Só url sempre aparece.

campotipodescrição
urlstringO link.
site_namestringopcional. Nome do site.
titlestringopcional. Título.
descriptionstringopcional. Descrição.
authorstringopcional. Quem publicou (um canal do YouTube, por exemplo).
colorstringopcional. Cor do site, "#rrggbb".
imageobjetoopcional. { url, width?, height?, large }; url passa por /api/embeds/image; large diz se a imagem vai grande, embaixo do texto.
videoobjetoopcional. { provider, id }: um player que o app pode abrir (por exemplo YouTube).

Convite (Invite) ​

campotipodescrição
codestringCódigo de 8 caracteres. O link é https://zynko.org/invite/{code}.
guild_ididO servidor.
creator_ididQuem criou.
usesnumberQuantas vezes foi usado.
max_usesnumber?Limite de usos; null = sem limite.
expires_atms?Quando expira; null = nunca.

GET /invites/{code} devolve uma prévia: { code, guild: Guild, guild_id, member_count }.

Banimento (Ban) ​

campotipodescrição
userPublicUserQuem foi banido.
created_atmsQuando.

Estado de voz (VoiceState) ​

Quem está em qual sala de voz (ou chamada numa DM). Chega em READY.voice_states e no evento VOICE_STATE_UPDATE.

campotipodescrição
user_ididA conta.
guild_idid?O servidor; null numa chamada de DM.
channel_idid?A sala. null quando a conta saiu da voz.
self_mutebooleanMicrofone desligado.
self_deafbooleanSom desligado.
self_streambooleanCompartilhando a tela.
self_videobooleanCâmera ligada.
session_idstringA conexão do gateway que está na voz (o session_id do READY dela).

Estado de leitura (ReadState) ​

Até onde a conta já leu cada canal. Chega em READY.read_states.

campotipodescrição
channel_ididO canal.
last_read_ididA última mensagem lida.

Relação (Relationship) ​

Amizades, pedidos e bloqueios. Bots não fazem amizades, mas podem bloquear.

campotipodescrição
typenumber1 amigo, 2 bloqueado, 3 pedido recebido, 4 pedido enviado.
sincemsDesde quando.
userPublicUserA outra conta.
onlinebooleanSe está online (só para amigos; senão false).

Zynko · zynko.org