social.colibri.sync.subscribeEvents

colibri.social

Documentation

Opens a WebSocket stream that transmits relevant events for the authenticated user.

main subscription

Opens a WebSocket stream that transmits relevant events for the authenticated user.

Message Types

Errors

AuthRequired Missing, malformed, or unverifiable service auth.
View raw schema
{
  "type": "subscription",
  "errors": [
    {
      "name": "AuthRequired",
      "description": "Missing, malformed, or unverifiable service auth."
    }
  ],
  "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"
    }
  },
  "description": "Opens a WebSocket stream that transmits relevant events for the authenticated user."
}
ack object

Sent in response to a heartbeat message.

Properties

type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type"
  ],
  "properties": {
    "type": {
      "type": "string",
      "const": "ack"
    }
  },
  "description": "Sent in response to a heartbeat message."
}
categoryEvent object

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

Properties

type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type",
    "data"
  ],
  "properties": {
    "data": {
      "ref": "lex:social.colibri.sync.subscribeEvents#categoryEventData",
      "type": "ref"
    },
    "type": {
      "type": "string",
      "const": "category_event"
    }
  },
  "description": "Sent when a category has been created, updated, or deleted."
}
categoryEventData object

No description available.

Properties

channelOrder array of stringat-uri Optional

No description available.

community string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

event string Required

No description available.

Known values: upsert, delete
name string Optional

No description available.

uri string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

View raw schema
{
  "type": "object",
  "required": [
    "event",
    "uri",
    "community"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "format": "at-uri"
    },
    "name": {
      "type": "string"
    },
    "event": {
      "type": "string",
      "knownValues": [
        "upsert",
        "delete"
      ]
    },
    "community": {
      "type": "string",
      "format": "at-uri"
    },
    "channelOrder": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "at-uri"
      }
    }
  }
}
channelEvent object

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

Properties

type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type",
    "data"
  ],
  "properties": {
    "data": {
      "ref": "lex:social.colibri.sync.subscribeEvents#channelEventData",
      "type": "ref"
    },
    "type": {
      "type": "string",
      "const": "channel_event"
    }
  },
  "description": "Sent when a channel has been created, updated, or deleted."
}
channelEventData object

No description available.

Properties

category string at-uri Optional

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

community string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

description string Optional

No description available.

event string Required

No description available.

Known values: upsert, delete
name string Optional

No description available.

type string Optional

No description available.

uri string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

View raw schema
{
  "type": "object",
  "required": [
    "event",
    "uri",
    "community"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "format": "at-uri"
    },
    "name": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "event": {
      "type": "string",
      "knownValues": [
        "upsert",
        "delete"
      ]
    },
    "category": {
      "type": "string",
      "format": "at-uri"
    },
    "community": {
      "type": "string",
      "format": "at-uri"
    },
    "description": {
      "type": "string"
    }
  }
}
communityEvent object

Sent when a community has been updated or deleted.

Properties

type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type",
    "data"
  ],
  "properties": {
    "data": {
      "ref": "lex:social.colibri.sync.subscribeEvents#communityEventData",
      "type": "ref"
    },
    "type": {
      "type": "string",
      "const": "community_event"
    }
  },
  "description": "Sent when a community has been updated or deleted."
}
communityEventData object

No description available.

Properties

banner blob Optional

No description available.

categoryOrder array of stringat-uri Optional

No description available.

description string Optional

No description available.

event string Required

No description available.

Known values: upsert, delete
name string Optional

No description available.

picture blob Optional

No description available.

requiresApprovalToJoin boolean Optional

No description available.

uri string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

View raw schema
{
  "type": "object",
  "required": [
    "event",
    "uri"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "format": "at-uri"
    },
    "name": {
      "type": "string"
    },
    "event": {
      "type": "string",
      "knownValues": [
        "upsert",
        "delete"
      ]
    },
    "banner": {
      "type": "blob"
    },
    "picture": {
      "type": "blob"
    },
    "description": {
      "type": "string"
    },
    "categoryOrder": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "at-uri"
      }
    },
    "requiresApprovalToJoin": {
      "type": "boolean"
    }
  }
}
humEnvelope object

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 string at-uri Required

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

id string Required

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

maxLength: 64 bytes
origin string did Required

DID of the AppView that first emitted this Hum.

subject string did Required

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

ttl integer Required

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

minimum: 0maximum: 8
View raw schema
{
  "type": "object",
  "required": [
    "origin",
    "id",
    "ttl",
    "subject",
    "community",
    "event"
  ],
  "properties": {
    "id": {
      "type": "string",
      "maxLength": 64,
      "description": "Unique id for this Hum, used by receivers to dedup across relay paths."
    },
    "ttl": {
      "type": "integer",
      "maximum": 8,
      "minimum": 0,
      "description": "Remaining relay hops. Decremented on each forward; a Hum at ttl 0 is delivered locally but never relayed."
    },
    "event": {
      "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",
      "description": "Ephemeral event payload. Only off-protocol types are permitted."
    },
    "origin": {
      "type": "string",
      "format": "did",
      "description": "DID of the AppView that first emitted this Hum."
    },
    "subject": {
      "type": "string",
      "format": "did",
      "description": "The user this event is about. Receiver MUST verify origin equals subject's declared presenceService before trusting or relaying."
    },
    "community": {
      "type": "string",
      "format": "at-uri",
      "description": "Community the event is scoped to. Receiver relays to local clients only if they are members of this community."
    }
  },
  "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."
}
memberEvent object

Sent when a member has joined or left a community.

Properties

type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type",
    "data"
  ],
  "properties": {
    "data": {
      "ref": "lex:social.colibri.sync.subscribeEvents#memberEventData",
      "type": "ref"
    },
    "type": {
      "type": "string",
      "const": "member_event"
    }
  },
  "description": "Sent when a member has joined or left a community."
}
memberEventData object

No description available.

Properties

community string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

event string Required

No description available.

Known values: join, leave, roles_updated
memberDid string did Optional

DID of the member who left. Present on `leave`.

membership string at-uri Optional

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

View raw schema
{
  "type": "object",
  "required": [
    "event",
    "community"
  ],
  "properties": {
    "event": {
      "type": "string",
      "knownValues": [
        "join",
        "leave",
        "roles_updated"
      ]
    },
    "member": {
      "ref": "lex:social.colibri.sync.subscribeEvents#memberEventMember",
      "type": "ref",
      "description": "The affected member, hydrated. Present on `join` and `roles_updated`."
    },
    "community": {
      "type": "string",
      "format": "at-uri"
    },
    "memberDid": {
      "type": "string",
      "format": "did",
      "description": "DID of the member who left. Present on `leave`."
    },
    "membership": {
      "type": "string",
      "format": "at-uri"
    }
  }
}
memberEventMember object

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

did string did Required

A decentralized identifier (DID).

handle string handle Required

An AT Protocol handle (e.g., alice.bsky.social).

joinedAt string datetime Optional

An RFC 3339 formatted timestamp.

nickname string Optional

No description available.

roles array of stringat-uri Required

No description available.

vc string at-uri Optional

AT-URI of the voice channel the member is currently connected to, if any. Only set when that channel belongs to `community`.

vcDeafened boolean Optional

No description available.

vcMuted boolean Optional

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "did",
    "handle",
    "roles",
    "data"
  ],
  "properties": {
    "vc": {
      "type": "string",
      "format": "at-uri",
      "description": "AT-URI of the voice channel the member is currently connected to, if any. Only set when that channel belongs to `community`."
    },
    "did": {
      "type": "string",
      "format": "did"
    },
    "data": {
      "ref": "lex:social.colibri.actor.defs#actorData",
      "type": "ref"
    },
    "roles": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "at-uri"
      }
    },
    "handle": {
      "type": "string",
      "format": "handle"
    },
    "vcMuted": {
      "type": "boolean"
    },
    "joinedAt": {
      "type": "string",
      "format": "datetime"
    },
    "nickname": {
      "type": "string"
    },
    "vcDeafened": {
      "type": "boolean"
    }
  },
  "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."
}
messageEvent object

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

Properties

type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type",
    "data"
  ],
  "properties": {
    "data": {
      "ref": "lex:social.colibri.sync.subscribeEvents#messageEventData",
      "type": "ref"
    },
    "type": {
      "type": "string",
      "const": "message_event"
    }
  },
  "description": "Sent when a message has been sent, edited, or deleted."
}
messageEventData object

No description available.

Properties

attachments array of blob Optional

No description available.

channel string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

createdAt string datetime Optional

An RFC 3339 formatted timestamp.

edited boolean Optional

No description available.

event string Required

No description available.

Known values: upsert, delete
indexedAt string datetime Optional

An RFC 3339 formatted timestamp.

live boolean Optional

No description available.

parent string at-uri Optional

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

text string Optional

No description available.

uri string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

View raw schema
{
  "type": "object",
  "required": [
    "event",
    "uri",
    "channel"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "format": "at-uri"
    },
    "live": {
      "type": "boolean"
    },
    "text": {
      "type": "string"
    },
    "event": {
      "type": "string",
      "knownValues": [
        "upsert",
        "delete"
      ]
    },
    "edited": {
      "type": "boolean"
    },
    "facets": {
      "type": "array",
      "items": {
        "ref": "lex:social.colibri.richtext.facet",
        "type": "ref"
      }
    },
    "parent": {
      "type": "string",
      "format": "at-uri"
    },
    "channel": {
      "type": "string",
      "format": "at-uri"
    },
    "createdAt": {
      "type": "string",
      "format": "datetime"
    },
    "indexedAt": {
      "type": "string",
      "format": "datetime"
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "blob"
      }
    }
  }
}
reactionEvent object

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

Properties

type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type",
    "data"
  ],
  "properties": {
    "data": {
      "ref": "lex:social.colibri.sync.subscribeEvents#reactionEventData",
      "type": "ref"
    },
    "type": {
      "type": "string",
      "const": "reaction_event"
    }
  },
  "description": "Sent when a reaction has been added to or removed from a message."
}
reactionEventData object

No description available.

Properties

channel string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

emoji string Required

No description available.

event string Required

No description available.

Known values: added, removed
target string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

uri string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

View raw schema
{
  "type": "object",
  "required": [
    "event",
    "uri",
    "emoji",
    "target",
    "channel"
  ],
  "properties": {
    "uri": {
      "type": "string",
      "format": "at-uri"
    },
    "emoji": {
      "type": "string"
    },
    "event": {
      "type": "string",
      "knownValues": [
        "added",
        "removed"
      ]
    },
    "target": {
      "type": "string",
      "format": "at-uri"
    },
    "channel": {
      "type": "string",
      "format": "at-uri"
    }
  }
}
typingEvent object

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

Properties

type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type",
    "data"
  ],
  "properties": {
    "data": {
      "ref": "lex:social.colibri.sync.subscribeEvents#typingEventData",
      "type": "ref"
    },
    "type": {
      "type": "string",
      "const": "typing_event"
    }
  },
  "description": "Sent when a user is typing in a channel the client is viewing."
}
typingEventData object

No description available.

Properties

channel string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

did string did Required

A decentralized identifier (DID).

event string Required

No description available.

Known values: start, stop
View raw schema
{
  "type": "object",
  "required": [
    "event",
    "channel",
    "did"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did"
    },
    "event": {
      "type": "string",
      "knownValues": [
        "start",
        "stop"
      ]
    },
    "channel": {
      "type": "string",
      "format": "at-uri"
    }
  }
}
userEvent object

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

Properties

type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type",
    "data"
  ],
  "properties": {
    "data": {
      "ref": "lex:social.colibri.sync.subscribeEvents#userEventData",
      "type": "ref"
    },
    "type": {
      "type": "string",
      "const": "user_event"
    }
  },
  "description": "Sent when a known user has updated their profile or Colibri status."
}
userEventData object

No description available.

Properties

did string did Required

A decentralized identifier (DID).

View raw schema
{
  "type": "object",
  "required": [
    "did",
    "profile"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did"
    },
    "status": {
      "ref": "lex:social.colibri.sync.subscribeEvents#userStatus",
      "type": "ref"
    },
    "profile": {
      "ref": "lex:social.colibri.sync.subscribeEvents#userProfile",
      "type": "ref"
    }
  }
}
userProfile object

No description available.

Properties

avatar blob Optional

No description available.

banner blob Optional

No description available.

description string Optional

No description available.

displayName string Optional

No description available.

handle string handle Required

An AT Protocol handle (e.g., alice.bsky.social).

View raw schema
{
  "type": "object",
  "required": [
    "handle"
  ],
  "properties": {
    "avatar": {
      "type": "blob"
    },
    "banner": {
      "type": "blob"
    },
    "handle": {
      "type": "string",
      "format": "handle"
    },
    "description": {
      "type": "string"
    },
    "displayName": {
      "type": "string"
    }
  }
}
userStatus object

No description available.

Properties

emoji string Optional

No description available.

state string Required

No description available.

Known values: online, away, dnd, offline
text string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "state",
    "text"
  ],
  "properties": {
    "text": {
      "type": "string"
    },
    "emoji": {
      "type": "string"
    },
    "state": {
      "type": "string",
      "knownValues": [
        "online",
        "away",
        "dnd",
        "offline"
      ]
    }
  }
}
voicePresenceEvent object

Sent when a user joins or leaves a voice channel.

Properties

type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type",
    "data"
  ],
  "properties": {
    "data": {
      "ref": "lex:social.colibri.sync.subscribeEvents#voicePresenceEventData",
      "type": "ref"
    },
    "type": {
      "type": "string",
      "const": "voice_presence_event"
    }
  },
  "description": "Sent when a user joins or leaves a voice channel."
}
voicePresenceEventData object

No description available.

Properties

channel string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

did string did Required

A decentralized identifier (DID).

event string Required

No description available.

Known values: join, leave
View raw schema
{
  "type": "object",
  "required": [
    "event",
    "channel",
    "did"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did"
    },
    "event": {
      "type": "string",
      "knownValues": [
        "join",
        "leave"
      ]
    },
    "channel": {
      "type": "string",
      "format": "at-uri"
    }
  }
}
voiceStateEvent object

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

type string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "type",
    "data"
  ],
  "properties": {
    "data": {
      "ref": "lex:social.colibri.sync.subscribeEvents#voiceStateEventData",
      "type": "ref"
    },
    "type": {
      "type": "string",
      "const": "voice_state_event"
    }
  },
  "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."
}
voiceStateEventData object

No description available.

Properties

channel string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

deafened boolean Optional

No description available.

did string did Required

A decentralized identifier (DID).

muted boolean Optional

No description available.

serverDeafened boolean Optional

No description available.

serverMuted boolean Optional

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "channel",
    "did"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did"
    },
    "muted": {
      "type": "boolean"
    },
    "channel": {
      "type": "string",
      "format": "at-uri"
    },
    "deafened": {
      "type": "boolean"
    },
    "serverMuted": {
      "type": "boolean"
    },
    "serverDeafened": {
      "type": "boolean"
    }
  }
}

Lexicon Garden

@