chat.bsky.moderation.subscribeModEvents

bsky-lexicons.bsky.social

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "eventChatAccepted": {
      "description": "Fired when a user accepts a chat convo, either explicitly or by sending a message.",
      "properties": {
        "actorDid": {
          "description": "The DID of the person accepting the convo.",
          "format": "did",
          "type": "string"
        },
        "convoCreatedAt": {
          "description": "When the convo was originally created.",
          "format": "datetime",
          "type": "string"
        },
        "convoId": {
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "groupMemberCount": {
          "description": "Current member count at the time of the event. Only present for group convos.",
          "type": "integer"
        },
        "groupName": {
          "description": "The name of the group chat. Only present for group convos.",
          "type": "string"
        },
        "method": {
          "description": "How the convo was accepted.",
          "knownValues": [
            "explicit",
            "message"
          ],
          "type": "string"
        },
        "ownerDid": {
          "description": "The DID of the group chat owner. Only present for group convos.",
          "format": "did",
          "type": "string"
        },
        "rev": {
          "type": "string"
        }
      },
      "required": [
        "actorDid",
        "convoCreatedAt",
        "convoId",
        "createdAt",
        "method",
        "rev"
      ],
      "type": "object"
    },
    "eventConvoFirstMessage": {
      "description": "Fired when the first message was sent on a convo.",
      "properties": {
        "convoId": {
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "messageId": {
          "type": "string"
        },
        "recipients": {
          "description": "The list of DIDs message recipients. Does not include the sender, which is in the `user` field",
          "items": {
            "format": "did",
            "type": "string"
          },
          "type": "array"
        },
        "rev": {
          "type": "string"
        },
        "user": {
          "description": "The DID of the message author.",
          "format": "did",
          "type": "string"
        }
      },
      "required": [
        "createdAt",
        "rev",
        "convoId",
        "user",
        "recipients"
      ],
      "type": "object"
    },
    "eventGroupChatCreated": {
      "description": "Fire when a group chat is created.",
      "properties": {
        "actorDid": {
          "description": "The DID of the actor performing the action. For this event, same as ownerDid.",
          "format": "did",
          "type": "string"
        },
        "convoCreatedAt": {
          "description": "When the group was originally created.",
          "format": "datetime",
          "type": "string"
        },
        "convoId": {
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "groupMemberCount": {
          "description": "Current member count at the time of the event.",
          "type": "integer"
        },
        "groupName": {
          "description": "The name set at creation time.",
          "type": "string"
        },
        "initialMemberDids": {
          "description": "DIDs of everyone added at creation time.",
          "items": {
            "format": "did",
            "type": "string"
          },
          "type": "array"
        },
        "ownerDid": {
          "description": "The DID of the group chat owner.",
          "format": "did",
          "type": "string"
        },
        "rev": {
          "type": "string"
        }
      },
      "required": [
        "actorDid",
        "convoCreatedAt",
        "convoId",
        "createdAt",
        "groupMemberCount",
        "groupName",
        "initialMemberDids",
        "ownerDid",
        "rev"
      ],
      "type": "object"
    },
    "eventGroupChatJoinRequest": {
      "description": "Fired when a user requests to join a group chat via an join link that requires approval.",
      "properties": {
        "actorDid": {
          "description": "The DID of the person requesting to join.",
          "format": "did",
          "type": "string"
        },
        "convoCreatedAt": {
          "description": "When the group was originally created.",
          "format": "datetime",
          "type": "string"
        },
        "convoId": {
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "groupMemberCount": {
          "description": "Current member count at the time of the event.",
          "type": "integer"
        },
        "groupName": {
          "type": "string"
        },
        "joinLinkCode": {
          "description": "The code of the join link used to request joining.",
          "type": "string"
        },
        "ownerDid": {
          "description": "The DID of the group chat owner.",
          "format": "did",
          "type": "string"
        },
        "rev": {
          "type": "string"
        },
        "subjectFollowsOwner": {
          "description": "Whether the requesting member follows the group owner.",
          "type": "boolean"
        }
      },
      "required": [
        "actorDid",
        "convoCreatedAt",
        "convoId",
        "createdAt",
        "groupMemberCount",
        "groupName",
        "joinLinkCode",
        "ownerDid",
        "rev",
        "subjectFollowsOwner"
      ],
      "type": "object"
    },
    "eventGroupChatJoinRequestApproved": {
      "description": "Fired when a join request is approved by the group owner.",
      "properties": {
        "actorDid": {
          "description": "The DID of the owner approving the request.",
          "format": "did",
          "type": "string"
        },
        "convoCreatedAt": {
          "description": "When the group was originally created.",
          "format": "datetime",
          "type": "string"
        },
        "convoId": {
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "groupMemberCount": {
          "description": "Current member count at the time of the event.",
          "type": "integer"
        },
        "groupName": {
          "type": "string"
        },
        "ownerDid": {
          "description": "The DID of the group chat owner.",
          "format": "did",
          "type": "string"
        },
        "rev": {
          "type": "string"
        },
        "subjectDid": {
          "description": "The DID of the member whose request was approved.",
          "format": "did",
          "type": "string"
        }
      },
      "required": [
        "actorDid",
        "convoCreatedAt",
        "convoId",
        "createdAt",
        "groupMemberCount",
        "groupName",
        "ownerDid",
        "rev",
        "subjectDid"
      ],
      "type": "object"
    },
    "eventGroupChatJoinRequestRejected": {
      "description": "Fired when a join request is rejected by the group owner.",
      "properties": {
        "actorDid": {
          "description": "The DID of the owner rejecting the request.",
          "format": "did",
          "type": "string"
        },
        "convoCreatedAt": {
          "description": "When the group was originally created.",
          "format": "datetime",
          "type": "string"
        },
        "convoId": {
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "groupMemberCount": {
          "description": "Current member count at the time of the event.",
          "type": "integer"
        },
        "groupName": {
          "type": "string"
        },
        "ownerDid": {
          "description": "The DID of the group chat owner.",
          "format": "did",
          "type": "string"
        },
        "rev": {
          "type": "string"
        },
        "subjectDid": {
          "description": "The DID of the member whose request was rejected.",
          "format": "did",
          "type": "string"
        }
      },
      "required": [
        "actorDid",
        "convoCreatedAt",
        "convoId",
        "createdAt",
        "groupMemberCount",
        "groupName",
        "ownerDid",
        "rev",
        "subjectDid"
      ],
      "type": "object"
    },
    "eventGroupChatMemberAdded": {
      "description": "Fired when a member is added to a group chat. Note that members are added in the 'request' state.",
      "properties": {
        "actorDid": {
          "description": "The DID of the actor performing the action. For this event, same as ownerDid.",
          "format": "did",
          "type": "string"
        },
        "convoCreatedAt": {
          "description": "When the group was originally created.",
          "format": "datetime",
          "type": "string"
        },
        "convoId": {
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "groupMemberCount": {
          "description": "Current member count at the time of the event.",
          "type": "integer"
        },
        "groupName": {
          "type": "string"
        },
        "ownerDid": {
          "description": "The DID of the group chat owner.",
          "format": "did",
          "type": "string"
        },
        "requestMembersCount": {
          "description": "The number of members who have not yet accepted the convo.",
          "type": "integer"
        },
        "rev": {
          "type": "string"
        },
        "subjectDid": {
          "description": "The DID of the member who was added.",
          "format": "did",
          "type": "string"
        },
        "subjectFollowsOwner": {
          "description": "Whether the added member follows the group owner.",
          "type": "boolean"
        }
      },
      "required": [
        "actorDid",
        "convoCreatedAt",
        "convoId",
        "createdAt",
        "groupMemberCount",
        "groupName",
        "ownerDid",
        "requestMembersCount",
        "rev",
        "subjectDid",
        "subjectFollowsOwner"
      ],
      "type": "object"
    },
    "eventGroupChatMemberJoined": {
      "description": "Fired when a member joins a group chat via an join link that does not require approval.",
      "properties": {
        "actorDid": {
          "description": "The DID of the person joining.",
          "format": "did",
          "type": "string"
        },
        "convoCreatedAt": {
          "description": "When the group was originally created.",
          "format": "datetime",
          "type": "string"
        },
        "convoId": {
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "groupMemberCount": {
          "description": "Current member count at the time of the event.",
          "type": "integer"
        },
        "groupName": {
          "type": "string"
        },
        "joinLinkCode": {
          "description": "The code of the join link used to join.",
          "type": "string"
        },
        "ownerDid": {
          "description": "The DID of the group chat owner.",
          "format": "did",
          "type": "string"
        },
        "rev": {
          "type": "string"
        },
        "subjectFollowsOwner": {
          "description": "Whether the joining member follows the group owner.",
          "type": "boolean"
        }
      },
      "required": [
        "actorDid",
        "convoCreatedAt",
        "convoId",
        "createdAt",
        "groupMemberCount",
        "groupName",
        "joinLinkCode",
        "ownerDid",
        "rev",
        "subjectFollowsOwner"
      ],
      "type": "object"
    },
    "eventGroupChatMemberLeft": {
      "description": "Fired when a member leaves or is removed from a group chat.",
      "properties": {
        "actorDid": {
          "description": "The DID of the actor. For voluntary: the person leaving. For kicked: the owner.",
          "format": "did",
          "type": "string"
        },
        "convoCreatedAt": {
          "description": "When the group was originally created.",
          "format": "datetime",
          "type": "string"
        },
        "convoId": {
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "groupMemberCount": {
          "description": "Current member count at the time of the event.",
          "type": "integer"
        },
        "groupName": {
          "type": "string"
        },
        "leaveMethod": {
          "description": "How the member left.",
          "knownValues": [
            "voluntary",
            "kicked"
          ],
          "type": "string"
        },
        "ownerDid": {
          "description": "The DID of the group chat owner.",
          "format": "did",
          "type": "string"
        },
        "rev": {
          "type": "string"
        },
        "subjectDid": {
          "description": "The DID of the member who left or was removed.",
          "format": "did",
          "type": "string"
        }
      },
      "required": [
        "actorDid",
        "convoCreatedAt",
        "convoId",
        "createdAt",
        "groupMemberCount",
        "groupName",
        "leaveMethod",
        "ownerDid",
        "rev",
        "subjectDid"
      ],
      "type": "object"
    },
    "eventGroupChatUpdated": {
      "description": "Fired when a group chat's metadata or status changes.",
      "properties": {
        "actorDid": {
          "description": "The DID of the actor performing the action (the owner).",
          "format": "did",
          "type": "string"
        },
        "convoCreatedAt": {
          "description": "When the group was originally created.",
          "format": "datetime",
          "type": "string"
        },
        "convoId": {
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "groupMemberCount": {
          "description": "Current member count at the time of the event.",
          "type": "integer"
        },
        "groupName": {
          "description": "Current group name.",
          "type": "string"
        },
        "joinLinkCode": {
          "description": "The code of the join link. Only present when updateType is join-link-related.",
          "type": "string"
        },
        "joinLinkFollowersOnly": {
          "description": "Whether the join link is restricted to followers of the owner. Only present when updateType is join-link-related.",
          "type": "boolean"
        },
        "joinLinkRequiresApproval": {
          "description": "Whether the join link requires owner approval to join. Only present when updateType is join-link-related.",
          "type": "boolean"
        },
        "lockReason": {
          "description": "Why the group was locked. Only present when updateType is 'locked'.",
          "knownValues": [
            "owner_action",
            "owner_left",
            "owner_deactivated",
            "owner_deleted",
            "owner_suspended",
            "owner_taken_down",
            "label_applied",
            "convo_taken_down"
          ],
          "type": "string"
        },
        "newName": {
          "description": "The new group name. Only present when updateType is 'name_changed'.",
          "type": "string"
        },
        "oldName": {
          "description": "The previous group name. Only present when updateType is 'name_changed'.",
          "type": "string"
        },
        "ownerDid": {
          "description": "The DID of the group chat owner.",
          "format": "did",
          "type": "string"
        },
        "rev": {
          "type": "string"
        },
        "updateType": {
          "description": "What changed.",
          "knownValues": [
            "name_changed",
            "locked",
            "locked_permanently",
            "unlocked",
            "join_link_created",
            "join_link_disabled",
            "join_link_settings_changed"
          ],
          "type": "string"
        }
      },
      "required": [
        "actorDid",
        "convoCreatedAt",
        "convoId",
        "createdAt",
        "groupMemberCount",
        "groupName",
        "ownerDid",
        "rev",
        "updateType"
      ],
      "type": "object"
    },
    "eventRateLimitExceeded": {
      "description": "Fired when a user exceeds a rate limit.",
      "properties": {
        "actorDid": {
          "description": "The DID of the user who hit the rate limit.",
          "format": "did",
          "type": "string"
        },
        "createdAt": {
          "format": "datetime",
          "type": "string"
        },
        "endpoint": {
          "description": "The NSID of the endpoint that was rate limited.",
          "type": "string"
        },
        "rev": {
          "type": "string"
        }
      },
      "required": [
        "actorDid",
        "createdAt",
        "endpoint",
        "rev"
      ],
      "type": "object"
    },
    "main": {
      "description": "Subscribe to stream of chat events targeted to moderation. Private endpoint.",
      "errors": [
        {
          "name": "FutureCursor"
        },
        {
          "description": "If the consumer of the stream can not keep up with events, and a backlog gets too large, the server will drop the connection.",
          "name": "ConsumerTooSlow"
        }
      ],
      "message": {
        "schema": {
          "refs": [
            "#eventConvoFirstMessage",
            "#eventGroupChatCreated",
            "#eventGroupChatMemberAdded",
            "#eventGroupChatMemberJoined",
            "#eventGroupChatJoinRequest",
            "#eventGroupChatJoinRequestApproved",
            "#eventGroupChatJoinRequestRejected",
            "#eventChatAccepted",
            "#eventGroupChatMemberLeft",
            "#eventGroupChatUpdated",
            "#eventRateLimitExceeded"
          ],
          "type": "union"
        }
      },
      "parameters": {
        "properties": {
          "cursor": {
            "description": "The last known event seq number to backfill from. Use '2222222222222' to backfill from the beginning. Don't specify a cursor to listen only for new events.",
            "type": "string"
          }
        },
        "type": "params"
      },
      "type": "subscription"
    }
  },
  "id": "chat.bsky.moderation.subscribeModEvents",
  "lexicon": 1
}

Validate Record

Validate a record against chat.bsky.moderation.subscribeModEvents

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:4v4y5r3lwsbtmsxhile2ljac
CID
bafyreifb7xeucadmhsbzezibkn4hxyezzajfydjfyy3tjmwm7bwjmiam3u
Indexed At
2026-07-16 14:58 UTC
AT-URI
at://did:plc:4v4y5r3lwsbtmsxhile2ljac/com.atproto.lexicon.schema/chat.bsky.moderation.subscribeModEvents

Version History (2 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Event indicating the viewer accepted a convo, and it can be moved out of the request inbox. Can be direct or group.

  • A view of a conversation for moderation purposes. Unlike chat.bsky.convo.defs#convoView, it does not include viewer-specific data (such as muted, unreadCount, status, lastMessage, lastReaction), since the requester is a…

  • social.colibri.sync.subscribeEvents subscriptionnot from the namespace authority

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

Lexicon Garden

@