social.colibri.beta.emoji.upload
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Adds a custom emoji to a community. The bytes are uploaded to the community's own repo and the AppView writes the provider's record there with the community's credentials.",
"errors": [
{
"description": "The request is missing, malformed, or unverifiable service auth.",
"name": "AuthRequired"
},
{
"description": "The caller lacks the community.manage permission.",
"name": "Forbidden"
},
{
"description": "No community exists at the given DID.",
"name": "CommunityNotFound"
},
{
"description": "The name is not 2 to 32 characters of lowercase letters, digits and underscores.",
"name": "InvalidName"
},
{
"description": "The community already has an emoji with this name.",
"name": "NameTaken"
},
{
"description": "No pack of this community exists at the given URI.",
"name": "PackNotFound"
},
{
"description": "The emoji provider is unknown, or it does not support the requested operation.",
"name": "UnsupportedProvider"
},
{
"description": "The bytes are not an image type the provider accepts.",
"name": "UnsupportedImage"
},
{
"description": "The image exceeds the provider's size limit.",
"name": "ImageTooLarge"
},
{
"description": "The AppView cannot act as the community because its stored credentials are missing or unusable.",
"name": "CredentialsUnavailable"
},
{
"description": "A PDS call the AppView depends on failed.",
"name": "UpstreamFailure"
}
],
"input": {
"description": "The raw image bytes. The provider sets the size limit and the accepted types, which is 128000 bytes of image/png, image/webp or image/gif for blue.moji. The content type is sniffed rather than trusted.",
"encoding": "image/*"
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"emoji": {
"description": "The emoji as stored.",
"ref": "social.colibri.beta.emoji.defs#emojiView",
"type": "ref"
}
},
"required": [
"emoji"
],
"type": "object"
}
},
"parameters": {
"properties": {
"community": {
"description": "The community that owns the emoji.",
"format": "did",
"type": "string"
},
"name": {
"description": "The emoji's name without colons. Lowercase letters, digits and underscores.",
"maxLength": 32,
"minLength": 2,
"type": "string"
},
"pack": {
"description": "A pack of the community to add the emoji to.",
"format": "at-uri",
"type": "string"
},
"provider": {
"description": "The emoji provider that writes the records. Defaults to the AppView's default provider.",
"knownValues": [
"blue.moji"
],
"type": "string"
}
},
"required": [
"community",
"name"
],
"type": "params"
},
"type": "procedure"
}
},
"id": "social.colibri.beta.emoji.upload",
"lexicon": 1
}
Metadata
- DID
-
did:plc:mprdjqjluoswa7awzggaggj3 - CID
-
bafyreihbonovyrdy2ubjdukdzhytuhj5d6qctnbvl3uebob2hmzjse6r74 - Indexed At
- 2026-10-18 08:25 UTC
- AT-URI
-
at://did:plc:mprdjqjluoswa7awzggaggj3/com.atproto.lexicon.schema/social.colibri.beta.emoji.upload
Referenced Schemas (1)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
Creates a pack of a community's custom emoji.
-
Renames a community's custom emoji. Providers that key records by name move the record to a new key and repoint pack memberships, so the emoji's URI changes.
-
Renames a community's pack or replaces its emoji. Omitted fields stay as they are.
-
Deletes a community's custom emoji and removes it from every pack of the community. Copies other people made stay in their repos.
-
social.colibri.beta.community.putImage procedure
Sets a community's picture or banner. The bytes are uploaded to the community's own repo, which is why this goes through the AppView: a community's blobs can only be written with the community credentials the AppView ho…