social.colibri.sync.subscribeEvents
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"ack": {
"description": "Sent in response to a heartbeat message.",
"properties": {
"type": {
"const": "ack",
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"categoryEvent": {
"description": "Sent when a category has been created, updated, or deleted.",
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#categoryEventData",
"type": "ref"
},
"type": {
"const": "category_event",
"type": "string"
}
},
"required": [
"type",
"data"
],
"type": "object"
},
"categoryEventData": {
"properties": {
"channelOrder": {
"items": {
"format": "at-uri",
"type": "string"
},
"type": "array"
},
"community": {
"format": "at-uri",
"type": "string"
},
"event": {
"knownValues": [
"upsert",
"delete"
],
"type": "string"
},
"name": {
"type": "string"
},
"uri": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"event",
"uri",
"community"
],
"type": "object"
},
"channelEvent": {
"description": "Sent when a channel has been created, updated, or deleted.",
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#channelEventData",
"type": "ref"
},
"type": {
"const": "channel_event",
"type": "string"
}
},
"required": [
"type",
"data"
],
"type": "object"
},
"channelEventData": {
"properties": {
"category": {
"format": "at-uri",
"type": "string"
},
"community": {
"format": "at-uri",
"type": "string"
},
"description": {
"type": "string"
},
"event": {
"knownValues": [
"upsert",
"delete"
],
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"uri": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"event",
"uri",
"community"
],
"type": "object"
},
"communityEvent": {
"description": "Sent when a community has been updated or deleted.",
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#communityEventData",
"type": "ref"
},
"type": {
"const": "community_event",
"type": "string"
}
},
"required": [
"type",
"data"
],
"type": "object"
},
"communityEventData": {
"properties": {
"banner": {
"type": "blob"
},
"categoryOrder": {
"items": {
"format": "at-uri",
"type": "string"
},
"type": "array"
},
"description": {
"type": "string"
},
"event": {
"knownValues": [
"upsert",
"delete"
],
"type": "string"
},
"name": {
"type": "string"
},
"picture": {
"type": "blob"
},
"requiresApprovalToJoin": {
"type": "boolean"
},
"uri": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"event",
"uri"
],
"type": "object"
},
"humEnvelope": {
"description": "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.",
"properties": {
"community": {
"description": "Community the event is scoped to. Receiver relays to local clients only if they are members of this community.",
"format": "at-uri",
"type": "string"
},
"event": {
"description": "Ephemeral event payload. Only off-protocol types are permitted.",
"refs": [
"lex:social.colibri.sync.subscribeEvents#userEvent",
"lex:social.colibri.sync.subscribeEvents#typingEvent",
"lex:social.colibri.sync.subscribeEvents#voicePresenceEvent",
"lex:social.colibri.sync.subscribeEvents#voiceStateEvent"
],
"type": "union"
},
"id": {
"description": "Unique id for this Hum, used by receivers to dedup across relay paths.",
"maxLength": 64,
"type": "string"
},
"origin": {
"description": "DID of the AppView that first emitted this Hum.",
"format": "did",
"type": "string"
},
"subject": {
"description": "The user this event is about. Receiver MUST verify origin equals subject's declared presenceService before trusting or relaying.",
"format": "did",
"type": "string"
},
"ttl": {
"description": "Remaining relay hops. Decremented on each forward; a Hum at ttl 0 is delivered locally but never relayed.",
"maximum": 8,
"minimum": 0,
"type": "integer"
}
},
"required": [
"origin",
"id",
"ttl",
"subject",
"community",
"event"
],
"type": "object"
},
"main": {
"description": "Opens a WebSocket stream that transmits relevant events for the authenticated user.",
"errors": [
{
"name": "AuthRequired"
}
],
"message": {
"schema": {
"refs": [
"lex:social.colibri.sync.subscribeEvents#ack",
"lex:social.colibri.sync.subscribeEvents#communityEvent",
"lex:social.colibri.sync.subscribeEvents#memberEvent",
"lex:social.colibri.sync.subscribeEvents#categoryEvent",
"lex:social.colibri.sync.subscribeEvents#channelEvent",
"lex:social.colibri.sync.subscribeEvents#messageEvent",
"lex:social.colibri.sync.subscribeEvents#reactionEvent",
"lex:social.colibri.sync.subscribeEvents#userEvent",
"lex:social.colibri.sync.subscribeEvents#typingEvent",
"lex:social.colibri.sync.subscribeEvents#voicePresenceEvent",
"lex:social.colibri.sync.subscribeEvents#voiceStateEvent"
],
"type": "union"
}
},
"type": "subscription"
},
"memberEvent": {
"description": "Sent when a member has joined or left a community.",
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#memberEventData",
"type": "ref"
},
"type": {
"const": "member_event",
"type": "string"
}
},
"required": [
"type",
"data"
],
"type": "object"
},
"memberEventData": {
"properties": {
"community": {
"format": "at-uri",
"type": "string"
},
"event": {
"knownValues": [
"join",
"leave",
"roles_updated"
],
"type": "string"
},
"member": {
"description": "The affected member, hydrated. Present on `join` and `roles_updated`.",
"ref": "lex:social.colibri.sync.subscribeEvents#memberEventMember",
"type": "ref"
},
"memberDid": {
"description": "DID of the member who left. Present on `leave`.",
"format": "did",
"type": "string"
},
"membership": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"event",
"community"
],
"type": "object"
},
"memberEventMember": {
"description": "The affected member as carried by a member event. Mirrors `social.colibri.community.defs#memberView`, including the member's current voice channel state so a receiving client can place them in a voice channel without refetching.",
"properties": {
"data": {
"ref": "lex:social.colibri.actor.defs#actorData",
"type": "ref"
},
"did": {
"format": "did",
"type": "string"
},
"handle": {
"format": "handle",
"type": "string"
},
"joinedAt": {
"format": "datetime",
"type": "string"
},
"nickname": {
"type": "string"
},
"roles": {
"items": {
"format": "at-uri",
"type": "string"
},
"type": "array"
},
"vc": {
"description": "AT-URI of the voice channel the member is currently connected to, if any. Only set when that channel belongs to `community`.",
"format": "at-uri",
"type": "string"
},
"vcDeafened": {
"type": "boolean"
},
"vcMuted": {
"type": "boolean"
}
},
"required": [
"did",
"handle",
"roles",
"data"
],
"type": "object"
},
"messageEvent": {
"description": "Sent when a message has been sent, edited, or deleted.",
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#messageEventData",
"type": "ref"
},
"type": {
"const": "message_event",
"type": "string"
}
},
"required": [
"type",
"data"
],
"type": "object"
},
"messageEventData": {
"properties": {
"attachments": {
"items": {
"type": "blob"
},
"type": "array"
},
"channel": {
"format": "at-uri",
"type": "string"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"edited": {
"type": "boolean"
},
"event": {
"knownValues": [
"upsert",
"delete"
],
"type": "string"
},
"facets": {
"items": {
"ref": "lex:social.colibri.richtext.facet",
"type": "ref"
},
"type": "array"
},
"indexedAt": {
"format": "datetime",
"type": "string"
},
"parent": {
"format": "at-uri",
"type": "string"
},
"text": {
"type": "string"
},
"uri": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"event",
"uri",
"channel"
],
"type": "object"
},
"reactionEvent": {
"description": "Sent when a reaction has been added to or removed from a message.",
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#reactionEventData",
"type": "ref"
},
"type": {
"const": "reaction_event",
"type": "string"
}
},
"required": [
"type",
"data"
],
"type": "object"
},
"reactionEventData": {
"properties": {
"channel": {
"format": "at-uri",
"type": "string"
},
"emoji": {
"type": "string"
},
"event": {
"knownValues": [
"added",
"removed"
],
"type": "string"
},
"target": {
"format": "at-uri",
"type": "string"
},
"uri": {
"format": "at-uri",
"type": "string"
}
},
"required": [
"event",
"uri",
"emoji",
"target",
"channel"
],
"type": "object"
},
"typingEvent": {
"description": "Sent when a user is typing in a channel the client is viewing.",
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#typingEventData",
"type": "ref"
},
"type": {
"const": "typing_event",
"type": "string"
}
},
"required": [
"type",
"data"
],
"type": "object"
},
"typingEventData": {
"properties": {
"channel": {
"format": "at-uri",
"type": "string"
},
"did": {
"format": "did",
"type": "string"
},
"event": {
"knownValues": [
"start",
"stop"
],
"type": "string"
}
},
"required": [
"event",
"channel",
"did"
],
"type": "object"
},
"userEvent": {
"description": "Sent when a known user has updated their profile or Colibri status.",
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#userEventData",
"type": "ref"
},
"type": {
"const": "user_event",
"type": "string"
}
},
"required": [
"type",
"data"
],
"type": "object"
},
"userEventData": {
"properties": {
"did": {
"format": "did",
"type": "string"
},
"profile": {
"ref": "lex:social.colibri.sync.subscribeEvents#userProfile",
"type": "ref"
},
"status": {
"ref": "lex:social.colibri.sync.subscribeEvents#userStatus",
"type": "ref"
}
},
"required": [
"did",
"profile"
],
"type": "object"
},
"userProfile": {
"properties": {
"avatar": {
"type": "blob"
},
"banner": {
"type": "blob"
},
"description": {
"type": "string"
},
"displayName": {
"type": "string"
},
"handle": {
"format": "handle",
"type": "string"
}
},
"required": [
"handle"
],
"type": "object"
},
"userStatus": {
"properties": {
"emoji": {
"type": "string"
},
"state": {
"knownValues": [
"online",
"away",
"dnd",
"offline"
],
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"state",
"text"
],
"type": "object"
},
"voicePresenceEvent": {
"description": "Sent when a user joins or leaves a voice channel.",
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#voicePresenceEventData",
"type": "ref"
},
"type": {
"const": "voice_presence_event",
"type": "string"
}
},
"required": [
"type",
"data"
],
"type": "object"
},
"voicePresenceEventData": {
"properties": {
"channel": {
"format": "at-uri",
"type": "string"
},
"did": {
"format": "did",
"type": "string"
},
"event": {
"knownValues": [
"join",
"leave"
],
"type": "string"
}
},
"required": [
"event",
"channel",
"did"
],
"type": "object"
},
"voiceStateEvent": {
"description": "Sent when a user's voice state changes within a voice channel. `muted` and `deafened` are the user's own choices; `serverMuted` and `serverDeafened` are moderator-applied and enforced by the SFU. Each field is absent when unchanged.",
"properties": {
"data": {
"ref": "lex:social.colibri.sync.subscribeEvents#voiceStateEventData",
"type": "ref"
},
"type": {
"const": "voice_state_event",
"type": "string"
}
},
"required": [
"type",
"data"
],
"type": "object"
},
"voiceStateEventData": {
"properties": {
"channel": {
"format": "at-uri",
"type": "string"
},
"deafened": {
"type": "boolean"
},
"did": {
"format": "did",
"type": "string"
},
"muted": {
"type": "boolean"
},
"serverDeafened": {
"type": "boolean"
},
"serverMuted": {
"type": "boolean"
}
},
"required": [
"channel",
"did"
],
"type": "object"
}
},
"id": "social.colibri.sync.subscribeEvents",
"lexicon": 1,
"revision": 1
}
Metadata
- DID
-
did:plc:mprdjqjluoswa7awzggaggj3 - CID
-
bafyreiezrugguvgpwugvfcfaxau3gpwrctyu4zro5f7xmsd7bw5djfdfsq - Indexed At
- 2026-07-29 16:12 UTC
- AT-URI
-
at://did:plc:mprdjqjluoswa7awzggaggj3/com.atproto.lexicon.schema/social.colibri.sync.subscribeEvents
Version History (6 versions)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
Answers a heartbeat.
-
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…
-
chat.bsky.moderation.subscribeModEvents subscription
Subscribe to stream of chat events targeted to moderation. Private endpoint.