chat.bsky.moderation.subscribeModEvents

bsky-lexicons.bsky.social

Documentation

Subscribe to stream of chat events targeted to moderation. Private endpoint.

main subscription

Subscribe to stream of chat events targeted to moderation. Private endpoint.

Parameters

cursor string Optional

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.

Message Types

Errors

FutureCursor
ConsumerTooSlow If the consumer of the stream can not keep up with events, and a backlog gets too large, the server will drop the connection.
View raw schema
{
  "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"
}
eventChatAccepted object

Fired when a user accepts a chat convo, either explicitly or by sending a message.

Properties

actorDid string did Required

The DID of the person accepting the convo.

convoCreatedAt string datetime Required

When the convo was originally created.

convoId string Required

No description available.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

groupMemberCount integer Optional

Current member count at the time of the event. Only present for group convos.

groupName string Optional

The name of the group chat. Only present for group convos.

method string Required

How the convo was accepted.

Known values: explicit, message
ownerDid string did Optional

The DID of the group chat owner. Only present for group convos.

rev string Required

No description available.

View raw schema
{
  "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 object

Fired when the first message was sent on a convo.

Properties

convoId string Required

No description available.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

messageId string Optional

No description available.

recipients array of stringdid Required

The list of DIDs message recipients. Does not include the sender, which is in the `user` field

rev string Required

No description available.

user string did Required

The DID of the message author.

View raw schema
{
  "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 object

Fire when a group chat is created.

Properties

actorDid string did Required

The DID of the actor performing the action. For this event, same as ownerDid.

convoCreatedAt string datetime Required

When the group was originally created.

convoId string Required

No description available.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

groupMemberCount integer Required

Current member count at the time of the event.

groupName string Required

The name set at creation time.

initialMemberDids array of stringdid Required

DIDs of everyone added at creation time.

ownerDid string did Required

The DID of the group chat owner.

rev string Required

No description available.

View raw schema
{
  "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 object

Fired when a user requests to join a group chat via an join link that requires approval.

Properties

actorDid string did Required

The DID of the person requesting to join.

convoCreatedAt string datetime Required

When the group was originally created.

convoId string Required

No description available.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

groupMemberCount integer Required

Current member count at the time of the event.

groupName string Required

No description available.

joinLinkCode string Required

The code of the join link used to request joining.

ownerDid string did Required

The DID of the group chat owner.

rev string Required

No description available.

subjectFollowsOwner boolean Required

Whether the requesting member follows the group owner.

View raw schema
{
  "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 object

Fired when a join request is approved by the group owner.

Properties

actorDid string did Required

The DID of the owner approving the request.

convoCreatedAt string datetime Required

When the group was originally created.

convoId string Required

No description available.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

groupMemberCount integer Required

Current member count at the time of the event.

groupName string Required

No description available.

ownerDid string did Required

The DID of the group chat owner.

rev string Required

No description available.

subjectDid string did Required

The DID of the member whose request was approved.

View raw schema
{
  "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 object

Fired when a join request is rejected by the group owner.

Properties

actorDid string did Required

The DID of the owner rejecting the request.

convoCreatedAt string datetime Required

When the group was originally created.

convoId string Required

No description available.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

groupMemberCount integer Required

Current member count at the time of the event.

groupName string Required

No description available.

ownerDid string did Required

The DID of the group chat owner.

rev string Required

No description available.

subjectDid string did Required

The DID of the member whose request was rejected.

View raw schema
{
  "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 object

Fired when a member is added to a group chat. Note that members are added in the 'request' state.

Properties

actorDid string did Required

The DID of the actor performing the action. For this event, same as ownerDid.

convoCreatedAt string datetime Required

When the group was originally created.

convoId string Required

No description available.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

groupMemberCount integer Required

Current member count at the time of the event.

groupName string Required

No description available.

ownerDid string did Required

The DID of the group chat owner.

requestMembersCount integer Required

The number of members who have not yet accepted the convo.

rev string Required

No description available.

subjectDid string did Required

The DID of the member who was added.

subjectFollowsOwner boolean Required

Whether the added member follows the group owner.

View raw schema
{
  "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 object

Fired when a member joins a group chat via an join link that does not require approval.

Properties

actorDid string did Required

The DID of the person joining.

convoCreatedAt string datetime Required

When the group was originally created.

convoId string Required

No description available.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

groupMemberCount integer Required

Current member count at the time of the event.

groupName string Required

No description available.

joinLinkCode string Required

The code of the join link used to join.

ownerDid string did Required

The DID of the group chat owner.

rev string Required

No description available.

subjectFollowsOwner boolean Required

Whether the joining member follows the group owner.

View raw schema
{
  "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 object

Fired when a member leaves or is removed from a group chat.

Properties

actorDid string did Required

The DID of the actor. For voluntary: the person leaving. For kicked: the owner.

convoCreatedAt string datetime Required

When the group was originally created.

convoId string Required

No description available.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

groupMemberCount integer Required

Current member count at the time of the event.

groupName string Required

No description available.

leaveMethod string Required

How the member left.

Known values: voluntary, kicked
ownerDid string did Required

The DID of the group chat owner.

rev string Required

No description available.

subjectDid string did Required

The DID of the member who left or was removed.

View raw schema
{
  "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 object

Fired when a group chat's metadata or status changes.

Properties

actorDid string did Required

The DID of the actor performing the action (the owner).

convoCreatedAt string datetime Required

When the group was originally created.

convoId string Required

No description available.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

groupMemberCount integer Required

Current member count at the time of the event.

groupName string Required

Current group name.

joinLinkCode string Optional

The code of the join link. Only present when updateType is join-link-related.

joinLinkFollowersOnly boolean Optional

Whether the join link is restricted to followers of the owner. Only present when updateType is join-link-related.

joinLinkRequiresApproval boolean Optional

Whether the join link requires owner approval to join. Only present when updateType is join-link-related.

lockReason string Optional

Why the group was locked. Only present when updateType is 'locked'.

Known values: owner_action, owner_left, owner_deactivated, owner_deleted, owner_suspended, owner_taken_down, label_applied, convo_taken_down
newName string Optional

The new group name. Only present when updateType is 'name_changed'.

oldName string Optional

The previous group name. Only present when updateType is 'name_changed'.

ownerDid string did Required

The DID of the group chat owner.

rev string Required

No description available.

updateType string Required

What changed.

Known values: name_changed, locked, locked_permanently, unlocked, join_link_created, join_link_disabled, join_link_settings_changed
View raw schema
{
  "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 object

Fired when a user exceeds a rate limit.

Properties

actorDid string did Required

The DID of the user who hit the rate limit.

createdAt string datetime Required

An RFC 3339 formatted timestamp.

endpoint string Required

The NSID of the endpoint that was rate limited.

rev string Required

No description available.

View raw schema
{
  "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"
}

Lexicon Garden

@