Bluesky Chat Moderation API

Operations for moderating chat content.

Operations 3

GET /xrpc/chat.bsky.moderation.getActorMetadata Bluesky Operation #
GET /xrpc/chat.bsky.moderation.getMessageContext Bluesky Operation #
POST /xrpc/chat.bsky.moderation.updateActorAccess Bluesky Operation #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bluesky-chat-moderation-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bluesky-chat-moderation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bluesky Social Actor Profiles Chat Moderation API
  description: "The Bluesky Social API provides programmatic access to the Bluesky social network built on the AT Protocol. \n\nThis API enables developers to:\n- Manage user profiles and preferences\n- Create, read, and interact with posts and feeds\n- Handle social graph operations (follows, blocks, mutes)\n- Process notifications and conversations\n- Moderate content and manage labels\n- Synchronize repository data\n\nAuthentication is handled via Bearer tokens. Public endpoints can be accessed directly at https://public.api.bsky.app, while authenticated requests should be made to the user's Personal Data Server (PDS).\n\nFor more information, visit the [Bluesky API Documentation](https://docs.bsky.app)."
  version: 1.0.0
  contact:
    name: Bluesky Support
    url: https://bsky.app
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
- url: https://bsky.social/xrpc
  description: Bluesky Social PDS
- url: https://public.api.bsky.app/xrpc
  description: Public Bluesky AppView API (unauthenticated endpoints)
tags:
- name: Chat Moderation
  description: Operations for moderating chat content.
paths:
  /xrpc/chat.bsky.moderation.getActorMetadata:
    get:
      operationId: chatModerationGetActorMetadata
      summary: Bluesky Operation
      description: '*This endpoint is part of the Bluesky Chat (DMs) APIs. Requests usually require authentication, are directed to the user''s PDS intance, and proxied to the single central chat service by setting the appropriate service DID (`did:web:api.bsky.chat`) in the service proxying header.*


        *To learn more about calling atproto API endpoints like this one, see the [API Hosts and Auth](/docs/advanced-guides/api-directory) guide.*'
      tags:
      - Chat Moderation
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      parameters:
      - name: actor
        in: query
        required: true
        schema:
          type: string
          format: did
        example: did:plc:example123abc
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - day
                - month
                - all
                properties:
                  day:
                    $ref: '#/components/schemas/ChatBskyModerationGetActorMetadataMetadata'
                  month:
                    $ref: '#/components/schemas/ChatBskyModerationGetActorMetadataMetadata'
                  all:
                    $ref: '#/components/schemas/ChatBskyModerationGetActorMetadataMetadata'
              examples:
                ChatModerationGetActorMetadataResponse200Example:
                  $ref: '#/components/examples/ChatModerationGetActorMetadataResponse200Example'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                - message
                properties:
                  error:
                    type: string
                    enum:
                    - InvalidRequest
                    - ExpiredToken
                    - InvalidToken
                  message:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                - message
                properties:
                  error:
                    const: AuthMissing
                  message:
                    type: string
  /xrpc/chat.bsky.moderation.getMessageContext:
    get:
      operationId: chatModerationGetMessageContext
      summary: Bluesky Operation
      description: '*This endpoint is part of the Bluesky Chat (DMs) APIs. Requests usually require authentication, are directed to the user''s PDS intance, and proxied to the single central chat service by setting the appropriate service DID (`did:web:api.bsky.chat`) in the service proxying header.*


        *To learn more about calling atproto API endpoints like this one, see the [API Hosts and Auth](/docs/advanced-guides/api-directory) guide.*'
      tags:
      - Chat Moderation
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      parameters:
      - name: convoId
        in: query
        description: 'Conversation that the message is from. NOTE: this field will eventually be required.'
        required: false
        schema:
          type: string
          description: 'Conversation that the message is from. NOTE: this field will eventually be required.'
        example: example-convoId
      - name: messageId
        in: query
        required: true
        schema:
          type: string
        example: example-messageId
      - name: before
        in: query
        required: false
        schema:
          type: integer
          default: 5
        example: 5
      - name: after
        in: query
        required: false
        schema:
          type: integer
          default: 5
        example: 5
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - messages
                properties:
                  messages:
                    type: array
                    items:
                      oneOf:
                      - $ref: '#/components/schemas/ChatBskyConvoDefsMessageView'
                      - $ref: '#/components/schemas/ChatBskyConvoDefsDeletedMessageView'
              examples:
                ChatModerationGetMessageContextResponse200Example:
                  $ref: '#/components/examples/ChatModerationGetMessageContextResponse200Example'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                - message
                properties:
                  error:
                    type: string
                    enum:
                    - InvalidRequest
                    - ExpiredToken
                    - InvalidToken
                  message:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                - message
                properties:
                  error:
                    const: AuthMissing
                  message:
                    type: string
  /xrpc/chat.bsky.moderation.updateActorAccess:
    post:
      operationId: chatModerationUpdateActorAccess
      summary: Bluesky Operation
      description: '*This endpoint is part of the Bluesky Chat (DMs) APIs. Requests usually require authentication, are directed to the user''s PDS intance, and proxied to the single central chat service by setting the appropriate service DID (`did:web:api.bsky.chat`) in the service proxying header.*


        *To learn more about calling atproto API endpoints like this one, see the [API Hosts and Auth](/docs/advanced-guides/api-directory) guide.*'
      tags:
      - Chat Moderation
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - actor
              - allowAccess
              properties:
                actor:
                  type: string
                  format: did
                allowAccess:
                  type: boolean
                ref:
                  type: string
            examples:
              ChatModerationUpdateActorAccessRequestExample:
                $ref: '#/components/examples/ChatModerationUpdateActorAccessRequestExample'
      responses:
        '200':
          description: OK
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                - message
                properties:
                  error:
                    type: string
                    enum:
                    - InvalidRequest
                    - ExpiredToken
                    - InvalidToken
                  message:
                    type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                - message
                properties:
                  error:
                    const: AuthMissing
                  message:
                    type: string
components:
  schemas:
    ChatBskyConvoDefsMessageView:
      type: object
      required:
      - id
      - rev
      - text
      - sender
      - sentAt
      properties:
        id:
          type: string
        rev:
          type: string
        text:
          type: string
          maxLength: 10000
        facets:
          type: array
          items:
            $ref: '#/components/schemas/AppBskyRichtextFacet'
        embed:
          oneOf:
          - $ref: '#/components/schemas/AppBskyEmbedRecordView'
        sender:
          $ref: '#/components/schemas/ChatBskyConvoDefsMessageViewSender'
        sentAt:
          type: string
          format: date-time
    AppBskyEmbedDefsAspectRatio:
      type: object
      description: width:height represents an aspect ratio. It may be approximate, and may not correspond to absolute dimensions in any given unit.
      required:
      - width
      - height
      properties:
        width:
          type: integer
          minimum: 1
        height:
          type: integer
          minimum: 1
    AppBskyGraphDefsCuratelist:
      type: string
      format: token
      description: A list of actors used for curation purposes such as list feeds or interaction gating.
    AppBskyGraphDefsListView:
      type: object
      required:
      - uri
      - cid
      - creator
      - name
      - purpose
      - indexedAt
      properties:
        uri:
          type: string
          format: at-uri
        cid:
          type: string
          format: cid
        creator:
          $ref: '#/components/schemas/AppBskyActorDefsProfileView'
        name:
          type: string
          minLength: 1
          maxLength: 64
        purpose:
          $ref: '#/components/schemas/AppBskyGraphDefsListPurpose'
        description:
          type: string
          maxLength: 3000
        descriptionFacets:
          type: array
          items:
            $ref: '#/components/schemas/AppBskyRichtextFacet'
        avatar:
          type: string
          format: uri
        listItemCount:
          type: integer
          minimum: 0
        labels:
          type: array
          items:
            $ref: '#/components/schemas/ComAtprotoLabelDefsLabel'
        viewer:
          $ref: '#/components/schemas/AppBskyGraphDefsListViewerState'
        indexedAt:
          type: string
          format: date-time
    AppBskyEmbedImagesView:
      type: object
      required:
      - images
      properties:
        images:
          type: array
          items:
            $ref: '#/components/schemas/AppBskyEmbedImagesViewImage'
          maxItems: 4
    ChatBskyConvoDefsDeletedMessageView:
      type: object
      required:
      - id
      - rev
      - sender
      - sentAt
      properties:
        id:
          type: string
        rev:
          type: string
        sender:
          $ref: '#/components/schemas/ChatBskyConvoDefsMessageViewSender'
        sentAt:
          type: string
          format: date-time
    AppBskyEmbedRecordViewDetached:
      type: object
      required:
      - uri
      - detached
      properties:
        uri:
          type: string
          format: at-uri
        detached:
          type: boolean
          default: true
    AppBskyActorDefsViewerState:
      type: object
      description: Metadata about the requesting account's relationship with the subject account. Only has meaningful content for authed requests.
      properties:
        muted:
          type: boolean
        mutedByList:
          $ref: '#/components/schemas/AppBskyGraphDefsListViewBasic'
        blockedBy:
          type: boolean
        blocking:
          type: string
          format: at-uri
        blockingByList:
          $ref: '#/components/schemas/AppBskyGraphDefsListViewBasic'
        following:
          type: string
          format: at-uri
        followedBy:
          type: string
          format: at-uri
        knownFollowers:
          $ref: '#/components/schemas/AppBskyActorDefsKnownFollowers'
    AppBskyRichtextFacetLink:
      type: object
      description: Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.
      required:
      - uri
      properties:
        uri:
          type: string
          format: uri
    AppBskyActorDefsProfileView:
      type: object
      required:
      - did
      - handle
      properties:
        did:
          type: string
          format: did
        handle:
          type: string
          format: handle
        displayName:
          type: string
          maxLength: 640
        description:
          type: string
          maxLength: 2560
        avatar:
          type: string
          format: uri
        associated:
          $ref: '#/components/schemas/AppBskyActorDefsProfileAssociated'
        indexedAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
        viewer:
          $ref: '#/components/schemas/AppBskyActorDefsViewerState'
        labels:
          type: array
          items:
            $ref: '#/components/schemas/ComAtprotoLabelDefsLabel'
    AppBskyFeedDefsGeneratorView:
      type: object
      required:
      - uri
      - cid
      - did
      - creator
      - displayName
      - indexedAt
      properties:
        uri:
          type: string
          format: at-uri
        cid:
          type: string
          format: cid
        did:
          type: string
          format: did
        creator:
          $ref: '#/components/schemas/AppBskyActorDefsProfileView'
        displayName:
          type: string
        description:
          type: string
          maxLength: 3000
        descriptionFacets:
          type: array
          items:
            $ref: '#/components/schemas/AppBskyRichtextFacet'
        avatar:
          type: string
          format: uri
        likeCount:
          type: integer
          minimum: 0
        acceptsInteractions:
          type: boolean
        labels:
          type: array
          items:
            $ref: '#/components/schemas/ComAtprotoLabelDefsLabel'
        viewer:
          $ref: '#/components/schemas/AppBskyFeedDefsGeneratorViewerState'
        indexedAt:
          type: string
          format: date-time
    AppBskyEmbedRecordViewNotFound:
      type: object
      required:
      - uri
      - notFound
      properties:
        uri:
          type: string
          format: at-uri
        notFound:
          type: boolean
          default: true
    AppBskyEmbedRecordViewBlocked:
      type: object
      required:
      - uri
      - blocked
      - author
      properties:
        uri:
          type: string
          format: at-uri
        blocked:
          type: boolean
          default: true
        author:
          $ref: '#/components/schemas/AppBskyFeedDefsBlockedAuthor'
    AppBskyGraphDefsListViewerState:
      type: object
      properties:
        muted:
          type: boolean
        blocked:
          type: string
          format: at-uri
    AppBskyEmbedRecordWithMediaView:
      type: object
      required:
      - record
      - media
      properties:
        record:
          $ref: '#/components/schemas/AppBskyEmbedRecordView'
        media:
          oneOf:
          - $ref: '#/components/schemas/AppBskyEmbedImagesView'
          - $ref: '#/components/schemas/AppBskyEmbedVideoView'
          - $ref: '#/components/schemas/AppBskyEmbedExternalView'
    AppBskyEmbedExternalViewExternal:
      type: object
      required:
      - uri
      - title
      - description
      properties:
        uri:
          type: string
          format: uri
        title:
          type: string
        description:
          type: string
        thumb:
          type: string
          format: uri
    AppBskyEmbedImagesViewImage:
      type: object
      required:
      - thumb
      - fullsize
      - alt
      properties:
        thumb:
          type: string
          description: Fully-qualified URL where a thumbnail of the image can be fetched. For example, CDN location provided by the App View.
          format: uri
        fullsize:
          type: string
          description: Fully-qualified URL where a large version of the image can be fetched. May or may not be the exact original blob. For example, CDN location provided by the App View.
          format: uri
        alt:
          type: string
          description: Alt text description of the image, for accessibility.
        aspectRatio:
          $ref: '#/components/schemas/AppBskyEmbedDefsAspectRatio'
    AppBskyActorDefsKnownFollowers:
      type: object
      description: The subject's followers whom you also follow
      required:
      - count
      - followers
      properties:
        count:
          type: integer
        followers:
          type: array
          items:
            $ref: '#/components/schemas/AppBskyActorDefsProfileViewBasic'
          maxItems: 5
    ComAtprotoLabelDefsLabel:
      type: object
      description: Metadata tag on an atproto resource (eg, repo or record).
      required:
      - src
      - uri
      - val
      - cts
      properties:
        ver:
          type: integer
        src:
          type: string
          description: DID of the actor who created this label.
          format: did
        uri:
          type: string
          description: AT URI of the record, repository (account), or other resource that this label applies to.
          format: uri
        cid:
          type: string
          description: Optionally, CID specifying the specific version of 'uri' resource this label applies to.
          format: cid
        val:
          type: string
          description: The short string name of the value or type of this label.
          maxLength: 128
        neg:
          type: boolean
          description: If true, this is a negation label, overwriting a previous label.
        cts:
          type: string
          description: Timestamp when this label was created.
          format: date-time
        exp:
          type: string
          description: Timestamp at which this label expires (no longer applies).
          format: date-time
        sig:
          type: string
          format: byte
          description: Signature of dag-cbor encoded label.
    AppBskyActorDefsProfileViewBasic:
      type: object
      required:
      - did
      - handle
      properties:
        did:
          type: string
          format: did
        handle:
          type: string
          format: handle
        displayName:
          type: string
          maxLength: 640
        avatar:
          type: string
          format: uri
        associated:
          $ref: '#/components/schemas/AppBskyActorDefsProfileAssociated'
        viewer:
          $ref: '#/components/schemas/AppBskyActorDefsViewerState'
        labels:
          type: array
          items:
            $ref: '#/components/schemas/ComAtprotoLabelDefsLabel'
        createdAt:
          type: string
          format: date-time
    AppBskyActorDefsProfileAssociatedChat:
      type: object
      required:
      - allowIncoming
      properties:
        allowIncoming:
          type: string
          enum:
          - all
          - none
          - following
    AppBskyFeedDefsBlockedAuthor:
      type: object
      required:
      - did
      properties:
        did:
          type: string
          format: did
        viewer:
          $ref: '#/components/schemas/AppBskyActorDefsViewerState'
    AppBskyActorDefsProfileAssociated:
      type: object
      properties:
        lists:
          type: integer
        feedgens:
          type: integer
        starterPacks:
          type: integer
        labeler:
          type: boolean
        chat:
          $ref: '#/components/schemas/AppBskyActorDefsProfileAssociatedChat'
    AppBskyGraphDefsStarterPackViewBasic:
      type: object
      required:
      - uri
      - cid
      - record
      - creator
      - indexedAt
      properties:
        uri:
          type: string
          format: at-uri
        cid:
          type: string
          format: cid
        record: {}
        creator:
          $ref: '#/components/schemas/AppBskyActorDefsProfileViewBasic'
        listItemCount:
          type: integer
          minimum: 0
        joinedWeekCount:
          type: integer
          minimum: 0
        joinedAllTimeCount:
          type: integer
          minimum: 0
        labels:
          type: array
          items:
            $ref: '#/components/schemas/ComAtprotoLabelDefsLabel'
        indexedAt:
          type: string
          format: date-time
    AppBskyGraphDefsListPurpose:
      oneOf:
      - $ref: '#/components/schemas/AppBskyGraphDefsModlist'
      - $ref: '#/components/schemas/AppBskyGraphDefsCuratelist'
      - $ref: '#/components/schemas/AppBskyGraphDefsReferencelist'
    AppBskyGraphDefsListViewBasic:
      type: object
      required:
      - uri
      - cid
      - name
      - purpose
      properties:
        uri:
          type: string
          format: at-uri
        cid:
          type: string
          format: cid
        name:
          type: string
          minLength: 1
          maxLength: 64
        purpose:
          $ref: '#/components/schemas/AppBskyGraphDefsListPurpose'
        avatar:
          type: string
          format: uri
        listItemCount:
          type: integer
          minimum: 0
        labels:
          type: array
          items:
            $ref: '#/components/schemas/ComAtprotoLabelDefsLabel'
        viewer:
          $ref: '#/components/schemas/AppBskyGraphDefsListViewerState'
        indexedAt:
          type: string
          format: date-time
    ChatBskyConvoDefsMessageViewSender:
      type: object
      required:
      - did
      properties:
        did:
          type: string
          format: did
    AppBskyRichtextFacetTag:
      type: object
      description: Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags').
      required:
      - tag
      properties:
        tag:
          type: string
          maxLength: 640
    AppBskyGraphDefsReferencelist:
      type: string
      format: token
      description: A list of actors used for only for reference purposes such as within a starter pack.
    AppBskyEmbedRecordView:
      type: object
      required:
      - record
      properties:
        record:
          oneOf:
          - $ref: '#/components/schemas/AppBskyEmbedRecordViewRecord'
          - $ref: '#/components/schemas/AppBskyEmbedRecordViewNotFound'
          - $ref: '#/components/schemas/AppBskyEmbedRecordViewBlocked'
          - $ref: '#/components/schemas/AppBskyEmbedRecordViewDetached'
          - $ref: '#/components/schemas/AppBskyFeedDefsGeneratorView'
          - $ref: '#/components/schemas/AppBskyGraphDefsListView'
          - $ref: '#/components/schemas/AppBskyLabelerDefsLabelerView'
          - $ref: '#/components/schemas/AppBskyGraphDefsStarterPackViewBasic'
    AppBskyEmbedExternalView:
      type: object
      required:
      - external
      properties:
        external:
          $ref: '#/components/schemas/AppBskyEmbedExternalViewExternal'
    AppBskyLabelerDefsLabelerView:
      type: object
      required:
      - uri
      - cid
      - creator
      - indexedAt
      properties:
        uri:
          type: string
          format: at-uri
        cid:
          type: string
          format: cid
        creator:
          $ref: '#/components/schemas/AppBskyActorDefsProfileView'
        likeCount:
          type: integer
          minimum: 0
        viewer:
          $ref: '#/components/schemas/AppBskyLabelerDefsLabelerViewerState'
        indexedAt:
          type: string
          format: date-time
        labels:
          type: array
          items:
            $ref: '#/components/schemas/ComAtprotoLabelDefsLabel'
    AppBskyFeedDefsGeneratorViewerState:
      type: object
      properties:
        like:
          type: string
          format: at-uri
    AppBskyEmbedVideoView:
      type: object
      required:
      - cid
      - playlist
      properties:
        cid:
          type: string
          format: cid
        playlist:
          type: string
          format: uri
        thumbnail:
          type: string
          format: uri
        alt:
          type: string
          maxLength: 10000
        aspectRatio:
          $ref: '#/components/schemas/AppBskyEmbedDefsAspectRatio'
    ChatBskyModerationGetActorMetadataMetadata:
      type: object
      required:
      - messagesSent
      - messagesReceived
      - convos
      - convosStarted
      properties:
        messagesSent:
          type: integer
        messagesReceived:
          type: integer
        convos:
          type: integer
        convosStarted:
          type: integer
    AppBskyRichtextFacetByteSlice:
      type: object
      description: 'Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.'
      required:
      - byteStart
      - byteEnd
      properties:
        byteStart:
          type: integer
          minimum: 0
        byteEnd:
          type: integer
          minimum: 0
    AppBskyEmbedRecordViewRecord:
      type: object
      required:
      - uri
      - cid
      - author
      - value
      - indexedAt
      properties:
        uri:
          type: string
          format: at-uri
        cid:
          type: string
          format: cid
        author:
          $ref: '#/components/schemas/AppBskyActorDefsProfileViewBasic'
        value: {}
        labels:
          type: array
          items:
            $ref: '#/components/schemas/ComAtprotoLabelDefsLabel'
        replyCount:
          type: integer
        repostCount:
          type: integer
        likeCount:
          type: integer
        quoteCount:
          type: integer
        embeds:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/AppBskyEmbedImagesView'
            - $ref: '#/components/schemas/AppBskyEmbedVideoView'
            - $ref: '#/components/schemas/AppBskyEmbedExternalView'
            - $ref: '#/components/schemas/AppBskyEmbedRecordView'
            - $ref: '#/components/schemas/AppBskyEmbedRecordWithMediaView'
        indexedAt:
          type: string
          format: date-time
    AppBskyLabelerDefsLabelerViewerState:
      type: object
      properties:
        like:
          type: string
          format: at-uri
    AppBskyRichtextFacetMention:
      type: object
      description: Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.
      required:
      - did
      properties:
        did:
          type: string
          format: did
    AppBskyGraphDefsModlist:
      type: string
      format: token
      description: A list of actors to apply an aggregate moderation action (mute/block) on.
    AppBskyRichtextFacet:
      type: object
      description: Annotation of a sub-string within rich text.
      required:
      - index
      - features
      properties:
        index:
          $ref: '#/components/schemas/AppBskyRichtextFacetByteSlice'
        features:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/AppBskyRichtextFacetMention'
            - $ref: '#/components/schemas/AppBskyRichtextFacetLink'
            - $ref: '#/components/schemas/AppBskyRichtextFacetTag'
  examples:
    ChatModerationUpdateActorAccessRequestExample:
      summary: Example request for chatModerationUpdateActorAccess
      value:
        actor: did:plc:example123abc
        allowAccess: true
        ref: example-ref
    ChatModerationGetActorMetadataResponse200Example:
      summary: Successful response for chatModerationGetActorMetadata
      value:
        day:
          messagesSent: 50
          messagesReceived: 50
          convos: 50
          convosStarted: 50
        month:
          messagesSent: 50
          messagesReceived: 50
          convos: 50
          convosStarted: 50
        all:
          messagesSent: 50
          messagesReceived: 50
          convos: 50
          convosStarted: 50
    ChatModerationGetMessageContextResponse200Example:
      summary: Successful response for chatModerationGetMessageContext
      value:
        messages:
        - id: example-id
          rev: example-rev
          text: Example text content
          sender:
            did: {}
          sentAt: '2024-01-15T12:00:00.000Z'
          facets: []
          embed: {}
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer