Skip to content

Lexicons

Colibri defines a set of AT Protocol lexicons for its data types and AppView endpoints. They are grouped below by kind.

Persisted records that live in a user’s or community’s repository.

social.colibri.actor.data

lexicon v1revision 1
mainRECORDkey: literal:self

The main actor data used in Colibri

$typestringformatnsid

The type of the record.

statusstringrequireddefaultmaxLength32

The status for the user, displayed on their profile.

emojistring

The emoji displayed next to status.

communitiesarray<string>required

The DIDs of the communities this user is a member of, in the user's preferred sidebar order. Read back by `social.colibri.actor.listCommunities` to restore ordering.

social.colibri.actor.profile

lexicon v1revision 1
mainRECORDkey: literal:self

A Colibri-specific user profile. Singleton record on the user's own repo, kept separate from app.bsky.actor.profile so Colibri never needs write access to the Bluesky record.

$typestringformatnsid

The type of the record.

displayNamestringmaxLength640maxGraphemes64

The user's display name.

descriptionstringmaxLength2560maxGraphemes256

The user's profile description / bio.

avatarblobacceptimage/jpeg, image/png, image/gif, image/webp

The user's avatar image.

bannerblobacceptimage/jpeg, image/png, image/gif, image/webp

The user's profile banner image.

syncBlueskybooleandefaultfalse

When true, the AppView serves displayName/avatar/banner/description from the user's app.bsky.actor.profile record (Bluesky stays the live source); these mirrored fields may be omitted here.

Colibri-only profile theming. Always sourced from this record regardless of syncBluesky.

presenceServicestringformatdid

DID of the AppView authorized to emit off-protocol presence (status, typing, voice) for this user via Humming. A receiving AppView MUST drop any Hum about this user whose authenticated origin does not equal this value. Absent means the user has not opted into cross-instance presence.

#themeOBJECT

Colibri-only profile theming.

accentColorstringmaxLength7

Accent color as a #rrggbb hex string.

Two-color gradient profile theme.

bannerColorstringmaxLength7

Solid fallback banner color as #rrggbb, used when no banner image is set.

#themeGradientOBJECT

Two-color gradient profile theme.

primarystringmaxLength7

Primary gradient color as #rrggbb.

secondarystringmaxLength7

Secondary gradient color as #rrggbb.

social.colibri.community

lexicon v1revision 4
mainRECORDkey: literal:self

A community, or "server", is where users join to interact with each other on Colibri. Singleton record on the community DID's repo.

$typestringformatnsid

The type of the record.

namestringrequireddefaultNew CommunityminLength1maxLength32

The name of the community.

descriptionstringrequireddefaultmaxLength256

A description of the community.

pictureblobacceptimage/jpeg, image/png, image/gif

An image for the community that will be shown to users.

categoryOrderarray<string>required

The order of the categories in this community.

requiresApprovalToJoinbooleanrequireddefaulttrue

Whether users can chat in this community without the owner having to create an acknowledgement record.

migratedTostringformatat-uri

Set on a legacy community record once it has been migrated. Points at the new community record that replaces it; consumers treat this community as retired and hide it.

migratedFromstringformatat-uri

Set on a community created by migrating a legacy community. Points at the legacy community record this one replaces.

appviewstringformatdid

DID of the AppView that administers this community and acts as its off-protocol hub (Humming presence relay and voice SFU host). Written by the credential-holding AppView. Consumers that find this field absent fall back to did:web:api.colibri.social.

social.colibri.category

lexicon v1revision 1
mainRECORDkey: tid

A category belongs to a community and contains multiple channels on Colibri.

$typestringformatnsid

The type of the record.

namestringrequireddefaultNew categoryminLength1maxLength32

The name of the category.

channelOrderarray<string>required

The order of the channels in this category.

communitystringrequiredformatrecord-key

The community this category belongs to.

social.colibri.channel

lexicon v1revision 4
mainRECORDkey: tid

A channel that belongs to a category on Colibri.

$typestringformatnsid

The type of the record.

namestringrequireddefaultNew channelminLength1maxLength32

The name of the channel.

descriptionstringdefaultmaxLength256

A description of the channel.

typestringrequiredformatnsid

The type of the channel. Colibri provides social.colibri.channel.text, social.colibri.channel.forum, social.colibri.channel.link, and social.colibri.channel.voice.

categorystringrequiredformatrecord-key

The category this channel belongs to.

communitystringrequiredformatrecord-key

The record key of the community this channel belongs to.

ownerOnlybooleandefaultfalse

Whether the owner of the community is the only one allowed to post in the channel or not.

allowedRolesarray<string>

Role record-keys allowed to post in this channel. Empty/absent means no role restriction.

allowedMembersarray<string>

Member DIDs explicitly allowed to post in this channel, in addition to allowedRoles.

migratedFromstringformatat-uri

Set on a channel created by migrating a legacy community. Points at the legacy channel record this one replaces, so message history for the old channel can be surfaced here.

social.colibri.channel.read

lexicon v1revision 1
mainRECORDkey: tid

A read cursor for a Colibri channel, indicating the last read message by a user.

$typestringformatnsid

The type of the record.

channelstringrequiredformatat-uri

The channel this message was sent in.

cursorstringrequiredformatdatetime

The timestamp the channel was last read at.

social.colibri.message

lexicon v1revision 2
mainRECORDkey: tid

A message sent in a channel on Colibri

$typestringformatnsid

The type of the record.

textstringrequiredmaxLength2048

The message content.

facetsarray<richtext.facet>

Annotations of sections of the text.

createdAtstringrequiredformatdatetime

When the message was sent.

channelstringrequiredformatrecord-key

The channel this message was sent in.

editedbooleandefaultfalse

Whether this message has been edited.

parentstringformatrecord-key

The record key of a message this message is replying to.

attachmentsarray<colibri.message#attachment>

An array of attachment objects for this message.

#attachmentOBJECT

A file attached to a message.

blobblobrequired

The attached file.

namestringmaxLength256

The original filename.

social.colibri.reaction

lexicon v1revision 1
mainRECORDkey: tid

A reaction on a Colibri message.

$typestringformatnsid

The type of the record.

emojistringrequired

The emoji of the reaction. This allows for any string to support for custom emojis later down the line.

parentstringrequiredformatrecord-key

The message this relation belongs to.

social.colibri.membership

lexicon v1
mainRECORDkey: tid
communitystringrequiredformatat-uri

AT-URI of the social.colibri.community record being joined

createdAtstringrequiredformatdatetime

social.colibri.approval

lexicon v1
mainRECORDkey: tid
membershipstringrequiredformatat-uri

AT-URI of the user's social.colibri.membership record

communitystringrequiredformatat-uri

AT-URI of the social.colibri.community record

createdAtstringrequiredformatdatetime

social.colibri.role

lexicon v1revision 2
mainRECORDkey: tid

A named bundle of permissions assignable to community members. Lives on the community repo.

$typestringformatnsid

The type of the record.

namestringrequiredminLength1maxLength32

Display name of the role.

colorstring

Optional hex color displayed alongside the role (e.g. '#ff8800').

permissionsarray<string>required

Permission identifiers granted by this role.

positionintegerrequired

Hierarchy position. Higher values sit higher in the role hierarchy and outrank lower values.

hoistedbooleandefaultfalse

Whether members of this role are displayed separately in the member list.

mentionablebooleandefaultfalse

Whether `@role`-style mentions resolve to this role.

protectedbooleandefaultfalse

Whether this role is protected from modification or deletion. Set true for system-managed roles (e.g. the bootstrap 'Owner' role minted by `community.create`).

channelOverridesarray<colibri.role#channelOverride>

Per-channel permission overrides for this role.

#channelOverrideOBJECT

Allow / deny lists scoped to a single channel.

channelstringrequiredformatrecord-key

The channel this override applies to.

allowarray<string>

Permissions granted within this channel.

denyarray<string>

Permissions denied within this channel. Deny wins over base permissions and overrides allow.

social.colibri.member

lexicon v1revision 1
mainRECORDkey: tid

A community-side member record granting a user roles within the community. Lives on the community repo and is written when an admission is finalized.

$typestringformatnsid

The type of the record.

subjectstringrequiredformatdid

DID of the admitted user.

rolesarray<string>

Role record-keys assigned to this member on the same community repo.

joinedAtstringrequiredformatdatetime
nicknamestringmaxLength32

Optional per-community display-name override for this member.

fromMembershipstringformatat-uri

Optional AT-URI of the user's `social.colibri.membership` declaration this admission was based on.

social.colibri.moderation

lexicon v1revision 1
mainRECORDkey: tid

A moderation event scoped to the community that owns this repo. Acts as an append-only audit log; current state is derived from the action history per subject.

$typestringformatnsid

The type of the record.

actionstringrequiredknownban | unban | hideMessage | unhideMessage | kick

The moderation action being recorded.

reasonstringmaxLength512

Optional human-readable reason for the action.

createdBystringrequiredformatdid

DID of the issuer (typically a member with the required permission).

createdAtstringrequiredformatdatetime
#subjectOBJECT

Target of the moderation action. Use `did` for user-targeted actions, `uri` for content-targeted actions.

didstringformatdid
uristringformatat-uri

Reusable object definitions (*.defs) referenced by records, queries, and events across the other lexicons.

social.colibri.richtext.facet

lexicon v1revision 3
#byteSliceOBJECT

Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-based, counting bytes of the UTF-8 encoded text.

byteStartintegerrequiredmin0

The start index of the byte slice (inclusive).

byteEndintegerrequiredmin0

The end index of the byte slice (exclusive).

#channelOBJECT

A facet feature for a channel reference.

channelstringrequiredformatrecord-key

The record key of the referenced channel.

#boldOBJECT

A facet feature for bold text.

#italicOBJECT

A facet feature for italic text.

#underlineOBJECT

A facet feature for underlined text.

#strikethroughOBJECT

A facet feature for strikethrough text.

#codeOBJECT

A facet feature for inline code text.

#codeblockOBJECT

A facet feature for a multi-line code block.

langstring

The language of the code block, if specified.

#quoteOBJECT

A facet feature for a block quote.

#headingOBJECT

A facet feature for a heading line (levels 1–3).

levelintegerrequiredmin1max3

The heading level.

#listOBJECT

A facet feature for a single list item line.

orderedbooleanrequired

Whether the item belongs to an ordered (numbered) list.

#subtextOBJECT

A facet feature for a subtext line (small, muted).

#spoilerOBJECT

A facet feature for inline spoiler text.

#mentionOBJECT

A facet feature for a user mention.

didstringrequiredformatdid

The DID of the mentioned user.

#timeOBJECT

A facet feature for a timestamp.

datetimestringrequiredformatdatetime

The ISO 8601 timestamp.

stylestringknowntime-short | time-long | date-short | date-long | datetime-short | datetime-long | relative

Display style for the timestamp (mirrors Discord-style formats).

social.colibri.actor.defs

lexicon v1
#actorViewOBJECT

A hydrated Colibri actor: identity plus profile data.

didstringrequiredformatdid
handlestringrequiredformathandle
#actorDataOBJECT

The profile and presence data for a Colibri actor.

displayNamestringrequired
avatarblob
bannerblob
descriptionstring
isBotbooleanrequired
onlineStatestringrequiredknownonline | away | dnd | offline
syncBlueskybooleanrequired
#actorStatusOBJECT

A user's Colibri status line.

textstringrequired
emojistring
#profileThemeOBJECT

Colibri-only profile theming.

accentColorstring
bannerColorstring
#profileGradientOBJECT

Two-color gradient profile theme.

primarystring
secondarystring

social.colibri.channel.defs

lexicon v1
#messageOBJECT

A hydrated message as served by the AppView.

uristringrequiredformatat-uri
textstringrequired
facetsarray<richtext.facet>required
channelstringrequiredformatat-uri
communitystringrequiredformatat-uri
authoractor.defs#actorViewrequired

The message this one replies to, if any. Never itself nested (the parent's own parent is omitted).

attachmentsarray<channel.defs#attachment>required
reactionsarray<channel.defs#reactionView>required
createdAtstringrequiredformatdatetime
editedbooleanrequired
#attachmentOBJECT

A file attached to a message.

blobblobrequired
namestring
#reactionViewOBJECT

An aggregated reaction on a message.

emojistringrequired
countintegerrequired
reactorDIDsarray<string>required
#readCursorOBJECT

The authenticated user's read cursor for a channel.

uristringrequiredformatat-uri
cursorstringrequired
channelstringrequiredformatat-uri
#unreadStatusOBJECT

Per-channel unread state for the authenticated user.

channelUristringrequiredformatat-uri
hasUnreadMessagesbooleanrequired
unreadPingCountintegerrequired

social.colibri.community.defs

lexicon v1
#communityInfoOBJECT

Core community record data, hydrated with its AT-URI.

uristringrequiredformatat-uri
namestringrequired
descriptionstringrequired
pictureblob
categoryOrderarray<string>required
requiresApprovalToJoinbooleanrequired
#categoryViewOBJECT
uristringrequiredformatat-uri
namestringrequired
channelOrderarray<string>required
#channelViewOBJECT
uristringrequiredformatat-uri
namestringrequired
typestringrequiredformatnsid
categorystringrequiredformatat-uri
descriptionstring
ownerOnlyboolean
allowedRolesarray<string>
allowedMembersarray<string>
#roleViewOBJECT
uristringrequiredformatat-uri
namestringrequired
colorstring
permissionsarray<string>required
positionintegerrequired
hoistedboolean
mentionableboolean
protectedboolean
channelOverridesarray<community.defs#channelOverrideView>
#channelOverrideViewOBJECT
channelstringrequiredformatat-uri
allowarray<string>
denyarray<string>
#memberViewOBJECT

A community member, hydrated with their actor data.

didstringrequiredformatdid
handlestringrequiredformathandle
rolesarray<string>required
#applicationViewOBJECT

A pending or dismissed membership application.

didstringrequiredformatdid
handlestringrequiredformathandle
membershipstringrequiredformatat-uri
createdAtstringrequiredformatdatetime
#invitationViewOBJECT

An invitation with its creator as a bare DID.

codestringrequired
communitystringrequiredformatat-uri
createdBystringrequiredformatdid
activebooleanrequired
#invitationProfileViewOBJECT

An invitation with its creator hydrated as an actor.

codestringrequired
communitystringrequiredformatat-uri
createdByactor.defs#actorViewrequired
activebooleanrequired
#resolvedInvitationViewOBJECT

An invitation hydrated with its community's public details, for the invite accept screen.

codestringrequired
communitystringrequiredformatat-uri
createdBystringrequiredformatdid
activebooleanrequired
namestringrequired
pictureblob
memberCountintegerrequired
onlineCountintegerrequired
requiresApprovalToJoinbooleanrequired

social.colibri.embed.defs

lexicon v1
#gifItemOBJECT

A single GIF result.

idstringrequired
mediaUrlstringrequiredformaturi
previewUrlstringrequiredformaturi
widthinteger
heightinteger
#embedImageOBJECT

An image referenced by link metadata.

urlstringrequiredformaturi
altstring

social.colibri.notification.defs

lexicon v1
#notificationViewOBJECT

A notification in the authenticated user's feed.

idintegerrequired
recipientDidstringrequiredformatdid
kindstringrequired
messageUristringrequiredformatat-uri
authorDidstringrequiredformatdid
channelUristringrequiredformatat-uri
indexedAtstringrequiredformatdatetime
seenAtstringformatdatetime
#notificationMessageOBJECT

The message a notification refers to.

textstringrequired
facetsarray<richtext.facet>required
createdAtstringrequiredformatdatetime
parentstringformatat-uri
attachmentsarray<channel.defs#attachment>required
editedboolean
#unseenNotificationOBJECT

A minimal unseen-notification pointer.

idintegerrequired
messageUristringrequiredformatat-uri
indexedAtstringrequiredformatdatetime

Read-only GET endpoints served by the AppView.

social.colibri.actor.getData

lexicon v1
mainQUERY

Resolves an identifier (DID or handle) to its hydrated Colibri actor data.

identifierstringrequired

The DID or handle to resolve.

encodingapplication/json

social.colibri.actor.listCommunities

lexicon v1
mainQUERY

Lists the communities the authenticated user is a member of, in their preferred sidebar order.

encodingapplication/json
communitiesarray<actor.listCommunities#communityView>required
#communityViewOBJECT

A community summary as seen from the member's perspective.

namestringrequired
pictureblob
descriptionstring
categoryOrderarray<string>
requiresApprovalToJoinbooleanrequired
uristringformatat-uri
isLegacyboolean
isOwnerboolean

social.colibri.actor.listMutes

lexicon v1
mainQUERY

Lists the subjects the authenticated user has muted.

encodingapplication/json
mutesarray<actor.listMutes#mute>required
#muteOBJECT
uristringrequiredformatat-uri

AT-URI of the mute record.

subjectstringrequired

The muted subject (a DID).

social.colibri.channel.getChannelView

lexicon v1
mainQUERY

Returns the initial view of a channel: recent messages, the read cursor, and unseen notifications.

channelstringrequiredformatat-uri
limitinteger
encodingapplication/json
cursorstring
messagesarray<channel.defs#message>required

social.colibri.channel.getReadCursor

lexicon v1
mainQUERY

Returns the authenticated user's read cursor for a channel.

channelstringrequiredformatat-uri
encodingapplication/json

social.colibri.channel.listMessages

lexicon v1
mainQUERY

Lists messages in a channel, newest first, paginated.

channelstringrequiredformatat-uri
limitinteger
cursorstring
allboolean

Include hidden (moderated) messages.

encodingapplication/json
cursorstring
messagesarray<channel.defs#message>required

social.colibri.channel.listReactions

lexicon v1
mainQUERY

Lists the aggregated reactions on a message.

messagestringrequiredformatat-uri
encodingapplication/json
reactionsarray<channel.defs#reactionView>required

social.colibri.channel.listUnreadStatus

lexicon v1
mainQUERY

Lists the unread status of every channel in a community for the authenticated user.

communitystringrequiredformatat-uri
encodingapplication/json
channelsarray<channel.defs#unreadStatus>required

social.colibri.community.getData

lexicon v1
mainQUERY

Returns the full state of a community: metadata, categories, channels, roles, and members.

communitystringrequiredformatat-uri
encodingapplication/json
categoriesarray<community.defs#categoryView>required
channelsarray<community.defs#channelView>required
rolesarray<community.defs#roleView>required
membersarray<community.defs#memberView>required
didstringrequiredformatdid

social.colibri.community.listCategories

lexicon v1
mainQUERY

Lists the categories of a community.

communitystringrequiredformatat-uri
encodingapplication/json
categoriesarray<community.defs#categoryView>required

social.colibri.community.listChannels

lexicon v1
mainQUERY

Lists the channels of a community.

communitystringrequiredformatat-uri
encodingapplication/json
channelsarray<community.defs#channelView>required

social.colibri.community.listMembers

lexicon v1
mainQUERY

Lists the members of a community.

communitystringrequiredformatat-uri
encodingapplication/json
membersarray<community.defs#memberView>required

social.colibri.community.listRoles

lexicon v1
mainQUERY

Lists the roles of a community.

communitystringrequiredformatat-uri
encodingapplication/json
rolesarray<community.defs#roleView>required

social.colibri.community.listApplications

lexicon v1
mainQUERY

Lists pending and dismissed membership applications for a community.

communitystringrequiredformatat-uri
encodingapplication/json
applicationsarray<community.defs#applicationView>required
dismissedApplicationsarray<community.defs#applicationView>required

social.colibri.community.listBannedUsers

lexicon v1
mainQUERY

Lists the banned users of a community.

communitystringrequiredformatat-uri
encodingapplication/json
usersarray<actor.defs#actorView>required

social.colibri.community.getInvitation

lexicon v1
mainQUERY

Resolves an invitation code to its community, hydrated with the community's public details for the invite accept screen.

codestringrequired

social.colibri.embed.getMetadata

lexicon v1
mainQUERY

Fetches Open Graph-style link preview metadata for a URL.

uristringrequired
encodingapplication/json
titlestring
descriptionstring
siteNamestring
themeColorstring
imagearray<embed.defs#embedImage>required
largeImageboolean

social.colibri.embed.getImage

lexicon v1
mainQUERY

Proxies and returns an external image, guarding against SSRF.

urlstringrequiredformaturi
encoding*/*The proxied image bytes (Content-Type is image/*).

social.colibri.embed.searchGifs

lexicon v1
mainQUERY

Searches GIFs by query.

qstringrequired
pageinteger
encodingapplication/json
itemsarray<embed.defs#gifItem>required
pageintegerrequired
hasNextbooleanrequired

social.colibri.embed.trendingGifs

lexicon v1
mainQUERY

Returns trending GIFs.

pageinteger
encodingapplication/json
itemsarray<embed.defs#gifItem>required
pageintegerrequired
hasNextbooleanrequired

social.colibri.embed.gifCategories

lexicon v1
mainQUERY

Lists GIF categories for the picker.

encodingapplication/json
categoriesarray<embed.gifCategories#gifCategory>required
#gifCategoryOBJECT
namestringrequired
querystring
previewUrlstringformaturi

social.colibri.notification.listNotifications

lexicon v1
mainQUERY

Lists the authenticated user's notifications, paginated.

limitinteger
cursorstring
encodingapplication/json
cursorstring
notificationsarray<notification.defs#notificationView>required

social.colibri.notification.getUnreadCount

lexicon v1
mainQUERY

Returns the count of unread notifications.

encodingapplication/json
countintegerrequired

social.colibri.notification.getUnseen

lexicon v1
mainQUERY

Returns unseen notifications for a specific channel.

channelstringrequiredformatat-uri
encodingapplication/json
notificationsarray<notification.defs#unseenNotification>required

social.colibri.server.describeServer

lexicon v1
mainQUERY

Returns metadata describing the Colibri AppView deployment. Public and side-effect free.

encodingapplication/json
softwarestringrequired
flavorstringrequired
versionstringrequired

Mutating POST endpoints served by the AppView.

social.colibri.actor.setState

lexicon v1
mainPROCEDURE

Sets the authenticated user's online presence state.

statestringrequiredknownonline | away | dnd | offline

The presence state to set.

encodingapplication/json
onlineStatestringrequired

social.colibri.channel.create

lexicon v1
mainPROCEDURE

Creates a channel in a category of a community.

communitystringrequiredformatat-uri
categorystringrequiredformatat-uri
namestringrequired
typestringrequiredformatnsid

The channel type, e.g. social.colibri.channel.text.

descriptionstring
allowedRolesarray<string>
allowedMembersarray<string>
encodingapplication/json
uristringrequiredformatat-uri

social.colibri.channel.update

lexicon v1
mainPROCEDURE

Updates a channel's settings.

channelstringrequiredformatat-uri
namestring
descriptionstring
ownerOnlyboolean
allowedRolesarray<string>
clearAllowedRolesboolean
allowedMembersarray<string>
clearAllowedMembersboolean
encodingapplication/json
uristringrequiredformatat-uri

social.colibri.channel.delete

lexicon v1
mainPROCEDURE

Deletes a channel.

channelstringrequiredformatat-uri
encodingapplication/json
uristringrequiredformatat-uri

social.colibri.channel.getVoiceToken

lexicon v1
mainPROCEDURE

Mints a voice session token and server URL for joining a voice channel.

channelstringrequiredformatat-uri
encodingapplication/json
tokenstringrequired
urlstringrequiredformaturi

social.colibri.community.create

lexicon v1
mainPROCEDURE

Creates a community, bootstrapping its DID repo with a default category, channel, owner role, and member record.

namestringrequired
descriptionstring
requiresApprovalToJoinboolean
mimeTypestring

MIME type of the picture body, if provided.

pdsstring

Bring-your-own PDS endpoint.

identifierstring

Bring-your-own DID or handle.

passwordstring

Bring-your-own account password.

encoding*/*Optional community picture image bytes.
encodingapplication/json
didstringrequiredformatdid
communitystringrequiredformatat-uri
categorystringrequiredformatat-uri
channelstringrequiredformatat-uri
ownerRolestringrequiredformatat-uri
memberstringrequiredformatat-uri

social.colibri.community.migrate

lexicon v1
mainPROCEDURE

Migrates a source record into a fresh community, cloning its structure and importing its members. The 'kind' discriminator selects the migration; today only legacy communities are supported, but the endpoint is designed to host future migrations. Provisioning mirrors community.create (managed when no PDS credentials are supplied, bring-your-own otherwise).

kindstringrequiredknownlegacy-community

The migration to run. 'legacy-community' migrates a pre-rework community record.

sourcestringrequiredformatat-uri

The record being migrated (e.g. the legacy community).

namestring
descriptionstring
requiresApprovalToJoinboolean
mimeTypestring

MIME type of the picture body, if provided.

pdsstring

Bring-your-own PDS endpoint.

identifierstring

Bring-your-own DID or handle.

passwordstring

Bring-your-own account password.

encoding*/*Optional replacement community picture image bytes.
encodingapplication/json
didstringrequiredformatdid
communitystringrequiredformatat-uri
channelMaparray<community.migrate#channelMapping>required

Maps each cloned channel from its old AT-URI to its new AT-URI.

#channelMappingOBJECT

A single channel's old AT-URI mapped to its new AT-URI.

oldstringrequiredformatat-uri
newstringrequiredformatat-uri

social.colibri.community.update

lexicon v1
mainPROCEDURE

Updates a community's metadata and optionally its picture.

communitystringrequiredformatat-uri
namestring
descriptionstring
mimeTypestring
requiresApprovalToJoinboolean
encoding*/*Optional replacement community picture image bytes.
encodingapplication/json
uristringrequiredformatat-uri

social.colibri.community.delete

lexicon v1
mainPROCEDURE

Deletes a community.

communitystringrequiredformatat-uri
encodingapplication/json
didstringrequiredformatdid

social.colibri.community.approveMembership

lexicon v1
mainPROCEDURE

Approves a pending membership application, minting the member record.

membershipstringrequiredformatat-uri
encodingapplication/json
didstringrequiredformatdid
communitystringrequiredformatat-uri
memberstringformatat-uri

social.colibri.community.dismissApplication

lexicon v1
mainPROCEDURE

Dismisses a membership application without approving it.

communitystringrequiredformatat-uri
didstringrequiredformatdid
encodingapplication/json
didstringrequiredformatdid
communitystringrequiredformatat-uri

social.colibri.community.undismissApplication

lexicon v1
mainPROCEDURE

Restores a previously dismissed membership application.

communitystringrequiredformatat-uri
didstringrequiredformatdid
encodingapplication/json
didstringrequiredformatdid
communitystringrequiredformatat-uri

social.colibri.community.registerCredentials

lexicon v1
mainPROCEDURE

Registers bring-your-own PDS credentials for a community DID.

didstringrequiredformatdid
pdsstringrequired
identifierstringrequired
passwordstringrequired
encodingapplication/json
didstringrequiredformatdid
sourcestringrequired

social.colibri.community.setMemberRoles

lexicon v1
mainPROCEDURE

Replaces the set of roles assigned to a member.

communitystringrequiredformatat-uri
memberstringrequiredformatdid
rolesarray<string>required
encodingapplication/json
didstringrequiredformatdid
rolesarray<string>required

social.colibri.community.reorderChannels

lexicon v1
mainPROCEDURE

Reorders the channels within a category.

categorystringrequiredformatat-uri
channelOrderarray<string>required
encodingapplication/json
uristringrequiredformatat-uri

social.colibri.community.reorderCategories

lexicon v1
mainPROCEDURE

Reorders the categories within a community.

communitystringrequiredformatat-uri
categoryOrderarray<string>required
encodingapplication/json
uristringrequiredformatat-uri

social.colibri.community.banUser

lexicon v1
mainPROCEDURE

Bans a user from a community.

communitystringrequiredformatat-uri
identifierstringrequired

DID or handle of the user to ban.

encodingapplication/json
didstringrequiredformatdid
handlestringrequiredformathandle

social.colibri.community.unbanUser

lexicon v1
mainPROCEDURE

Lifts a ban on a user.

communitystringrequiredformatat-uri
identifierstringrequired

DID or handle of the user to unban.

encodingapplication/json
didstringrequiredformatdid
handlestringrequiredformathandle

social.colibri.community.kickUser

lexicon v1
mainPROCEDURE

Kicks a user from a community by DID or handle.

communitystringrequiredformatat-uri
identifierstringrequired

DID or handle of the user to kick.

encodingapplication/json
didstringrequiredformatdid
handlestringrequiredformathandle

social.colibri.community.kick

lexicon v1
mainPROCEDURE

Kicks a member from a community by member record.

communitystringrequiredformatat-uri
memberstringrequiredformatat-uri
encodingapplication/json
didstringrequiredformatdid
handlestringrequiredformathandle

social.colibri.community.blockMessage

lexicon v1
mainPROCEDURE

Hides (moderates) a message within a community.

communitystringrequiredformatat-uri
messagestringrequiredformatat-uri
encodingapplication/json
messagestringrequiredformatat-uri

social.colibri.community.createInvitation

lexicon v1
mainPROCEDURE

Creates an invitation code for a community.

communitystringrequiredformatat-uri
encodingapplication/json

social.colibri.community.listInvitations

lexicon v1
mainPROCEDURE

Lists the active invitations of a community.

uristringrequiredformatat-uri
encodingapplication/json

social.colibri.community.deleteInvitation

lexicon v1
mainPROCEDURE

Deletes an invitation code.

uristringrequiredformatat-uri
codestringrequired
encodingapplication/json
codestringrequired

social.colibri.community.leave

lexicon v1
mainPROCEDURE

Leaves a community, removing the authenticated user's membership.

communitystringrequiredformatat-uri
encodingapplication/json

social.colibri.category.create

lexicon v1
mainPROCEDURE

Creates a category in a community.

communitystringrequiredformatat-uri
namestringrequired
encodingapplication/json
uristringrequiredformatat-uri

social.colibri.category.update

lexicon v1
mainPROCEDURE

Renames a category.

categorystringrequiredformatat-uri
namestring
encodingapplication/json
uristringrequiredformatat-uri

social.colibri.category.delete

lexicon v1
mainPROCEDURE

Deletes a category.

categorystringrequiredformatat-uri
encodingapplication/json
uristringrequiredformatat-uri

social.colibri.role.create

lexicon v1
mainPROCEDURE

Creates a role in a community.

communitystringrequiredformatat-uri
namestringrequired
colorstring
permissionsarray<string>required
positionintegerrequired
hoistedboolean
mentionableboolean
encodingapplication/json
uristringrequiredformatat-uri

social.colibri.role.update

lexicon v1
mainPROCEDURE

Updates a role.

rolestringrequiredformatat-uri
namestring
colorstring
permissionsarray<string>
positioninteger
hoistedboolean
mentionableboolean
encodingapplication/json
uristringrequiredformatat-uri

social.colibri.role.delete

lexicon v1
mainPROCEDURE

Deletes a role.

rolestringrequiredformatat-uri
encodingapplication/json
uristringrequiredformatat-uri

social.colibri.notification.updateSeen

lexicon v1
mainPROCEDURE

Marks all notifications up to a timestamp as seen.

seenAtstringformatdatetime

Defaults to now if omitted.

encodingapplication/json
updatedintegerrequired

social.colibri.notification.updateSeenForMessage

lexicon v1
mainPROCEDURE

Marks notifications for a specific message as seen.

messagestringrequiredformatat-uri
encodingapplication/json
updatedintegerrequired

social.colibri.notification.registerPush

lexicon v1
mainPROCEDURE

Registers a Web Push subscription for the authenticated user.

encodingapplication/json
platformstringrequiredknownweb | tauri
endpointstringrequiredformaturi
encodingapplication/json
registeredbooleanrequired
#pushKeysOBJECT

Web Push subscription keys.

p256dhstringrequired
authstringrequired

social.colibri.notification.unregisterPush

lexicon v1
mainPROCEDURE

Removes a Web Push subscription.

encodingapplication/json
endpointstringrequiredformaturi
encodingapplication/json
unregisteredbooleanrequired

social.colibri.sync.sendHum

lexicon v1
mainPROCEDURE

Informs this AppView of an off-protocol event that occurred on a peer AppView. Requires inter-service auth: a JWT signed by the caller's AppView signing key, aud = this AppView's did:web, lxm = social.colibri.sync.sendHum. The receiver drops the Hum unless the JWT issuer equals both the envelope `origin` and the `subject`'s declared presenceService.

encodingapplication/json
AuthRequired

Missing or invalid service-auth JWT.

Forbidden

A trust-model check failed (origin is not the subject's declared presenceService, subject is not a community member, origin is not an AppView, or a channel does not belong to the community).

UnsupportedEvent

Event type is not an off-protocol Hum event.

RateLimited

The peer exceeded its per-peer sendHum rate budget.

NotEnabled

Humming is disabled on this AppView.

WebSocket event streams.

social.colibri.sync.subscribeEvents

lexicon v1revision 1
#ackOBJECT

Sent in response to a heartbeat message.

typestringrequiredconstack
#communityEventOBJECT

Sent when a community has been updated or deleted.

typestringrequiredconstcommunity_event
#communityEventDataOBJECT
eventstringrequiredknownupsert | delete
uristringrequiredformatat-uri
namestring
descriptionstring
pictureblob
categoryOrderarray<string>
#memberEventOBJECT

Sent when a member has joined or left a community.

typestringrequiredconstmember_event
#memberEventDataOBJECT
eventstringrequiredknownjoin | leave
communitystringrequiredformatat-uri
membershipstringrequiredformatat-uri
#categoryEventOBJECT

Sent when a category has been created, updated, or deleted.

typestringrequiredconstcategory_event
#categoryEventDataOBJECT
eventstringrequiredknownupsert | delete
uristringrequiredformatat-uri
communitystringrequiredformatat-uri
namestring
channelOrderarray<string>
#channelEventOBJECT

Sent when a channel has been created, updated, or deleted.

typestringrequiredconstchannel_event
#channelEventDataOBJECT
eventstringrequiredknownupsert | delete
uristringrequiredformatat-uri
communitystringrequiredformatat-uri
namestring
descriptionstring
typestring
#messageEventOBJECT

Sent when a message has been sent, edited, or deleted.

typestringrequiredconstmessage_event
#messageEventDataOBJECT
eventstringrequiredknownupsert | delete
uristringrequiredformatat-uri
channelstringrequiredformatat-uri
textstring
facetsarray<richtext.facet>
createdAtstringformatdatetime
indexedAtstringformatdatetime
editedboolean
parentstringformatat-uri
attachmentsarray<blob>
#reactionEventOBJECT

Sent when a reaction has been added to or removed from a message.

typestringrequiredconstreaction_event
#reactionEventDataOBJECT
eventstringrequiredknownadded | removed
uristringrequiredformatat-uri
emojistringrequired
targetstringrequiredformatat-uri
channelstringrequiredformatat-uri
#userEventOBJECT

Sent when a known user has updated their profile or Colibri status.

typestringrequiredconstuser_event
#userEventDataOBJECT
didstringrequiredformatdid
#userStatusOBJECT
emojistring
textstringrequired
statestringrequiredknownonline | away | dnd | offline
#userProfileOBJECT
displayNamestring
avatarblob
bannerblob
descriptionstring
handlestringrequiredformathandle
#typingEventOBJECT

Sent when a user is typing in a channel the client is viewing.

typestringrequiredconsttyping_event
#typingEventDataOBJECT
eventstringrequiredknownstart | stop
channelstringrequiredformatat-uri
didstringrequiredformatdid
#voicePresenceEventOBJECT

Sent when a user joins or leaves a voice channel.

typestringrequiredconstvoice_presence_event
#voicePresenceEventDataOBJECT
eventstringrequiredknownjoin | leave
channelstringrequiredformatat-uri
didstringrequiredformatdid
#humEnvelopeOBJECT

An off-protocol event relayed between AppViews. The authenticated sender (inter-service auth JWT: aud = receiving AppView did:web, lxm = social.colibri.sync.sendHum) is the origin of record; `origin` is echoed for relay/loop control and MUST match the JWT issuer. Only off-protocol event types are permitted — on-protocol events are never carried by a Hum and are derived from the firehose instead.

originstringrequiredformatdid

DID of the AppView that first emitted this Hum.

idstringrequiredmaxLength64

Unique id for this Hum, used by receivers to dedup across relay paths.

ttlintegerrequiredmin0max8

Remaining relay hops. Decremented on each forward; a Hum at ttl 0 is delivered locally but never relayed.

subjectstringrequiredformatdid

The user this event is about. Receiver MUST verify origin equals subject's declared presenceService before trusting or relaying.

communitystringrequiredformatat-uri

Community the event is scoped to. Receiver relays to local clients only if they are members of this community.

Ephemeral event payload. Only off-protocol types are permitted.

social.colibri.sync.subscribeHums

lexicon v1
mainSUBSCRIPTION

Egress-only WebSocket stream of Hums this AppView is relaying. Peers subscribe to receive off-protocol events for shared communities, optionally narrowing to declared `communities` (repeated query param). Requires inter-service auth (subprotocol-carried, as with subscribeEvents). Clients cannot send messages on this stream.

AuthRequired
NotEnabled

Humming is disabled on this AppView.

TooManySubscribers

The hub is at its subscribeHums connection limit.

OAuth permission sets bundling the scopes a client can request.

social.colibri.permissionAccount

lexicon v1
mainPERMISSION-SETAccount & profile

Manage your Colibri profile, status, and mutes, and receive realtime updates.

repocreateupdatedelete
  • social.colibri.actor.data
  • social.colibri.actor.profile
  • social.colibri.actor.mute
  • social.colibri.actor.gifFavorites
rpcinheritAud
  • social.colibri.actor.getData
  • social.colibri.actor.listCommunities
  • social.colibri.actor.listMutes
  • social.colibri.actor.setState
  • social.colibri.sync.subscribeEvents
  • social.colibri.sync.sendHum

social.colibri.permissionCommunity

lexicon v1
mainPERMISSION-SETCommunities & channels

Create and manage communities, categories, channels, and roles, including moderation and invitations.

repocreateupdatedelete
  • social.colibri.community
  • social.colibri.category
  • social.colibri.channel
  • social.colibri.role
repocreateupdate
  • social.colibri.channel.read
rpcinheritAud
  • social.colibri.community.create
  • social.colibri.community.migrate
  • social.colibri.community.update
  • social.colibri.community.delete
  • social.colibri.community.registerCredentials
  • social.colibri.community.approveMembership
  • social.colibri.community.listApplications
  • social.colibri.community.dismissApplication
  • social.colibri.community.undismissApplication
  • social.colibri.community.kick
  • social.colibri.community.kickUser
  • social.colibri.community.setMemberRoles
  • social.colibri.community.leave
  • social.colibri.community.reorderChannels
  • social.colibri.community.reorderCategories
  • social.colibri.community.blockMessage
  • social.colibri.community.banUser
  • social.colibri.community.unbanUser
  • social.colibri.community.createInvitation
  • social.colibri.community.listInvitations
  • social.colibri.community.deleteInvitation
  • social.colibri.category.create
  • social.colibri.category.update
  • social.colibri.category.delete
  • social.colibri.channel.create
  • social.colibri.channel.update
  • social.colibri.channel.delete
  • social.colibri.channel.getReadCursor
  • social.colibri.channel.listUnreadStatus
  • social.colibri.channel.getVoiceToken
  • social.colibri.role.create
  • social.colibri.role.update
  • social.colibri.role.delete
  • social.colibri.embed.getMetadata
  • social.colibri.embed.searchGifs
  • social.colibri.embed.trendingGifs
  • social.colibri.embed.gifCategories
  • social.colibri.community.getData
  • social.colibri.community.listBannedUsers
  • social.colibri.community.listCategories
  • social.colibri.community.listChannels
  • social.colibri.community.listMembers
  • social.colibri.community.listRoles
  • social.colibri.community.getInvitation
  • social.colibri.channel.listMessages
  • social.colibri.channel.getChannelView

social.colibri.permissionMessaging

lexicon v1
mainPERMISSION-SETMessages & membership

Send and edit messages, react, join communities, and submit membership applications.

repocreateupdatedelete
  • social.colibri.message
repocreatedelete
  • social.colibri.membership
  • social.colibri.approval
  • social.colibri.reaction
rpcinheritAud
  • social.colibri.channel.listReactions

social.colibri.permissionNotification

lexicon v1
mainPERMISSION-SETNotifications

Read your notifications and mark them as seen.

rpcinheritAud
  • social.colibri.notification.listNotifications
  • social.colibri.notification.getUnreadCount
  • social.colibri.notification.updateSeen
  • social.colibri.notification.updateSeenForMessage
  • social.colibri.notification.getUnseen

social.colibri.permissionPush

lexicon v1
mainPERMISSION-SETPush notifications

Manage your push notification subscriptions.

rpcinheritAud
  • social.colibri.notification.registerPush
  • social.colibri.notification.unregisterPush