chat.bsky.moderation.subscribeModEvents

bsky-lexicons.bsky.social

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

Lexicon Garden

@