Skip to content
FiveCord Docs

Expressions

An expression is a custom emoji or a sticker that one guild owns. The metadata routes resolve an expression from its own identifier, without membership of the owning guild. The source routes name the owning guild only to a caller who may see it.

ObjectRouteOwning resource
Emoji metadataGet emoji metadataGuild emojis
Sticker metadataGet sticker metadataGuild stickers
Expression source guildGet emoji source guild, Get sticker source guildGuilds

Every route here is read-only, and none writes an audit entry or emits a Gateway Dispatch. The metadata routes return the metadata even when the owning guild has UNAVAILABLE_FOR_EVERYONE.

When an identifier names no stored expression, FiveCord returns 404 UNKNOWN_EMOJI or 404 UNKNOWN_STICKER. A stored expression whose guild no longer exists returns 404 UNKNOWN_GUILD.

One custom emoji, readable from outside its guild. It adds the owning guild to the guild emoji object and drops the adult content classification and the uploader.

FieldTypeDescription
id1snowflakeThe ID of the emoji
guild_id2snowflakeThe ID of the guild that owns the emoji
name3stringThe name of the emoji (2-32 characters)
animated4booleanWhether the stored image is animated
allow_cloning5booleanWhether the owning guild permits the emoji to be copied

1 Unique across every guild, so the emoji is addressable without its guild

2 This resource has no guild name and no guild icon

3 Create guild emoji restricts the value to ASCII letters, digits, and underscore, and cloning copies it unchanged

4 FiveCord detects this from the submitted image at creation, and the value never changes

5 True exactly when the owning guild has CLONE_EMOJI_ENABLED, and false for every other guild

Every member is always present, and no member is nullable.

{
"id": "1501314428688998182",
"guild_id": "1489002177550843904",
"name": "party_parrot",
"animated": true,
"allow_cloning": true
}

One sticker, readable from outside its guild. It adds the owning guild to the guild sticker object and drops the description, the tags, the adult content classification, and the uploader.

FieldTypeDescription
id1snowflakeThe ID of the sticker
guild_id2snowflakeThe ID of the guild that owns the sticker
name3stringThe name of the sticker (2-30 characters)
animated4booleanWhether the stored image is animated
allow_cloning5booleanWhether the owning guild permits the sticker to be copied

1 Unique across every guild, so the sticker is addressable without its guild

2 This resource has no guild name and no guild icon

3 The value accepts any character

4 FiveCord detects this from the submitted image at creation, and the value never changes

5 True exactly when the owning guild has CLONE_STICKER_ENABLED, and false for every other guild

Every member is always present, and no member is nullable.

{
"id": "1501314428688998183",
"guild_id": "1489002177550843904",
"name": "shipit",
"animated": false,
"allow_cloning": false
}

The guild that owns an expression, reduced to what is needed to name it and show its badge. It is smaller than the partial guild object and has no banner, splash, or embedded splash fields.

FieldTypeDescription
idsnowflakeThe ID of the guild
namestringThe name of the guild
icon1?stringGuild icon hash, or null when the guild stores none
features2array[string]The badge guild features the guild has

1 An animated icon hash has the a_ prefix, and that prefix is removed from the returned value while the guild lacks ANIMATED_ICON

2 Only VERIFIED, PARTNERED, and DISCOVERABLE can appear, each at most once and in that order, and every other feature the guild has is left out

Every member is always present, and only icon is nullable.

{
"id": "1489002177550843904",
"name": "Ada's Workshop",
"icon": "a_9f2c1d4e",
"features": ["VERIFIED", "DISCOVERABLE"]
}
GET/v1/emojis/{emoji_id}/metadataBot

Returns the emoji metadata object of any guild emoji. The route requires no membership of the owning guild and evaluates no permission.

FieldTypeDescription
emoji_idsnowflakeThe ID of the emoji
StatusBodyCondition
200emoji metadata objectMetadata was returned
4041error responseEmoji does not exist, or its owning guild no longer exists

1 The error code is UNKNOWN_EMOJI for a missing emoji and UNKNOWN_GUILD when the emoji record survives but its guild does not

60 requests per 10 seconds for each authenticated user, on the guild:emoji:metadata::user_id bucket, and every emoji the account looks up draws on that one budget.

GET/v1/stickers/{sticker_id}/metadataBot

Returns the sticker metadata object of any guild sticker. The route requires no membership of the owning guild and evaluates no permission.

FieldTypeDescription
sticker_idsnowflakeThe ID of the sticker
StatusBodyCondition
200sticker metadata objectMetadata was returned
4041error responseSticker does not exist, or its owning guild no longer exists

1 The error code is UNKNOWN_STICKER for a missing sticker and UNKNOWN_GUILD when the sticker record survives but its guild does not

60 requests per 10 seconds for each authenticated user, on the guild:sticker:metadata::user_id bucket, and every sticker the account looks up draws on that one budget.

GET/v1/emojis/{emoji_id}/sourceBot

Returns the expression source guild object of the guild that owns a emoji. FiveCord reads the guild from the gateway, not from storage. The guild is returned when it is discoverable, or when the caller is a member of it.

FieldTypeDescription
emoji_idsnowflakeThe ID of the emoji
StatusBodyCondition
200expression source guild objectThe caller may see the owning guild
4041error responseEmoji does not exist, or the owning guild is private to the caller or unavailable

1 The error code is UNKNOWN_EMOJI for a missing emoji, and UNKNOWN_GUILD when the owning guild is not discoverable and the caller is not a member of it, or when the gateway cannot reach it.

60 requests per 10 seconds for each authenticated user, on the guild:emoji:source::user_id bucket, and every emoji the account looks up draws on that one budget.

GET/v1/stickers/{sticker_id}/sourceBot

Returns the expression source guild object of the guild that owns a sticker. FiveCord reads the guild from the gateway, not from storage. The guild is returned when it is discoverable, or when the caller is a member of it.

FieldTypeDescription
sticker_idsnowflakeThe ID of the sticker
StatusBodyCondition
200expression source guild objectThe caller may see the owning guild
4041error responseSticker does not exist, or the owning guild is private to the caller or unavailable

1 The error code is UNKNOWN_STICKER for a missing sticker, and UNKNOWN_GUILD when the owning guild is not discoverable and the caller is not a member of it, or when the gateway cannot reach it.

60 requests per 10 seconds for each authenticated user, on the guild:sticker:source::user_id bucket, and every sticker the account looks up draws on that one budget.