Bluesky Actor Profiles API

Operations for managing user profiles, preferences, and actor information.

Operations 7

GET /xrpc/app.bsky.actor.getPreferences Bluesky Get private preferences attached to the current account. #
GET /xrpc/app.bsky.actor.getProfile Bluesky Get detailed profile view of an actor. #
GET /xrpc/app.bsky.actor.getProfiles Bluesky Get detailed profile views of multiple actors. #
GET /xrpc/app.bsky.actor.getSuggestions Bluesky Get a list of suggested actors. #
POST /xrpc/app.bsky.actor.putPreferences Bluesky Set the private preferences attached to the account. #
GET /xrpc/app.bsky.actor.searchActors Bluesky Find actors (profiles) matching search criteria. #
GET /xrpc/app.bsky.actor.searchActorsTypeahead Bluesky Find actor suggestions for a prefix search term. #

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-actor-profiles-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-actor-profiles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bluesky Social Actor Profiles 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: Actor Profiles
  description: Operations for managing user profiles, preferences, and actor information.
paths:
  /xrpc/app.bsky.actor.getPreferences:
    get:
      operationId: actorGetPreferences
      summary: Bluesky Get private preferences attached to the current account.
      description: '*This endpoint is part of the Bluesky application Lexicon APIs (`app.bsky.*`). Public endpoints which don''t require authentication can be made directly against the public Bluesky AppView API: https://public.api.bsky.app. Authenticated requests are usually made to the user''s PDS, with automatic service proxying. Authenticated requests can be used for both public and non-public endpoints.*


        *To learn more about calling atproto API endpoints like this one, see the [API Hosts and Auth](/docs/advanced-guides/api-directory) guide.*


        Get private preferences attached to the current account. Expected use is synchronization between multiple devices, and import/export during account migration. Requires auth.'
      tags:
      - Actor Profiles
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - preferences
                properties:
                  preferences:
                    $ref: '#/components/schemas/AppBskyActorDefsPreferences'
              examples:
                ActorGetPreferencesResponse200Example:
                  $ref: '#/components/examples/ActorGetPreferencesResponse200Example'
        '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/app.bsky.actor.getProfile:
    get:
      operationId: actorGetProfile
      summary: Bluesky Get detailed profile view of an actor.
      description: '*This endpoint is part of the Bluesky application Lexicon APIs (`app.bsky.*`). Public endpoints which don''t require authentication can be made directly against the public Bluesky AppView API: https://public.api.bsky.app. Authenticated requests are usually made to the user''s PDS, with automatic service proxying. Authenticated requests can be used for both public and non-public endpoints.*


        *To learn more about calling atproto API endpoints like this one, see the [API Hosts and Auth](/docs/advanced-guides/api-directory) guide.*


        Get detailed profile view of an actor. Does not require auth, but contains relevant metadata with auth.'
      tags:
      - Actor Profiles
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      parameters:
      - name: actor
        in: query
        description: Handle or DID of account to fetch profile of.
        required: true
        schema:
          type: string
          description: Handle or DID of account to fetch profile of.
          format: at-identifier
        example: user.bsky.social
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppBskyActorDefsProfileViewDetailed'
              examples:
                ActorGetProfileResponse200Example:
                  $ref: '#/components/examples/ActorGetProfileResponse200Example'
        '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/app.bsky.actor.getProfiles:
    get:
      operationId: actorGetProfiles
      summary: Bluesky Get detailed profile views of multiple actors.
      description: '*This endpoint is part of the Bluesky application Lexicon APIs (`app.bsky.*`). Public endpoints which don''t require authentication can be made directly against the public Bluesky AppView API: https://public.api.bsky.app. Authenticated requests are usually made to the user''s PDS, with automatic service proxying. Authenticated requests can be used for both public and non-public endpoints.*


        *To learn more about calling atproto API endpoints like this one, see the [API Hosts and Auth](/docs/advanced-guides/api-directory) guide.*


        Get detailed profile views of multiple actors.'
      tags:
      - Actor Profiles
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      parameters:
      - name: actors
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
            format: at-identifier
          maxItems: 25
        example:
        - user.bsky.social
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - profiles
                properties:
                  profiles:
                    type: array
                    items:
                      $ref: '#/components/schemas/AppBskyActorDefsProfileViewDetailed'
              examples:
                ActorGetProfilesResponse200Example:
                  $ref: '#/components/examples/ActorGetProfilesResponse200Example'
        '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/app.bsky.actor.getSuggestions:
    get:
      operationId: actorGetSuggestions
      summary: Bluesky Get a list of suggested actors.
      description: '*This endpoint is part of the Bluesky application Lexicon APIs (`app.bsky.*`). Public endpoints which don''t require authentication can be made directly against the public Bluesky AppView API: https://public.api.bsky.app. Authenticated requests are usually made to the user''s PDS, with automatic service proxying. Authenticated requests can be used for both public and non-public endpoints.*


        *To learn more about calling atproto API endpoints like this one, see the [API Hosts and Auth](/docs/advanced-guides/api-directory) guide.*


        Get a list of suggested actors. Expected use is discovery of accounts to follow during new account onboarding.'
      tags:
      - Actor Profiles
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 50
        example: 50
      - name: cursor
        in: query
        required: false
        schema:
          type: string
        example: eyJsYXN0SWQiOiIxMjM0NTYifQ
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - actors
                properties:
                  cursor:
                    type: string
                  actors:
                    type: array
                    items:
                      $ref: '#/components/schemas/AppBskyActorDefsProfileView'
              examples:
                ActorGetSuggestionsResponse200Example:
                  $ref: '#/components/examples/ActorGetSuggestionsResponse200Example'
        '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/app.bsky.actor.putPreferences:
    post:
      operationId: actorPutPreferences
      summary: Bluesky Set the private preferences attached to the account.
      description: '*This endpoint is part of the Bluesky application Lexicon APIs (`app.bsky.*`). Public endpoints which don''t require authentication can be made directly against the public Bluesky AppView API: https://public.api.bsky.app. Authenticated requests are usually made to the user''s PDS, with automatic service proxying. Authenticated requests can be used for both public and non-public endpoints.*


        *To learn more about calling atproto API endpoints like this one, see the [API Hosts and Auth](/docs/advanced-guides/api-directory) guide.*


        Set the private preferences attached to the account.'
      tags:
      - Actor Profiles
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - preferences
              properties:
                preferences:
                  $ref: '#/components/schemas/AppBskyActorDefsPreferences'
            examples:
              ActorPutPreferencesRequestExample:
                $ref: '#/components/examples/ActorPutPreferencesRequestExample'
      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
  /xrpc/app.bsky.actor.searchActors:
    get:
      operationId: actorSearchActors
      summary: Bluesky Find actors (profiles) matching search criteria.
      description: '*This endpoint is part of the Bluesky application Lexicon APIs (`app.bsky.*`). Public endpoints which don''t require authentication can be made directly against the public Bluesky AppView API: https://public.api.bsky.app. Authenticated requests are usually made to the user''s PDS, with automatic service proxying. Authenticated requests can be used for both public and non-public endpoints.*


        *To learn more about calling atproto API endpoints like this one, see the [API Hosts and Auth](/docs/advanced-guides/api-directory) guide.*


        Find actors (profiles) matching search criteria. Does not require auth.'
      tags:
      - Actor Profiles
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      parameters:
      - name: q
        in: query
        description: Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.
        required: false
        schema:
          type: string
          description: Search query string. Syntax, phrase, boolean, and faceting is unspecified, but Lucene query syntax is recommended.
        example: example-q
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 25
        example: 25
      - name: cursor
        in: query
        required: false
        schema:
          type: string
        example: eyJsYXN0SWQiOiIxMjM0NTYifQ
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - actors
                properties:
                  cursor:
                    type: string
                  actors:
                    type: array
                    items:
                      $ref: '#/components/schemas/AppBskyActorDefsProfileView'
              examples:
                ActorSearchActorsResponse200Example:
                  $ref: '#/components/examples/ActorSearchActorsResponse200Example'
        '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/app.bsky.actor.searchActorsTypeahead:
    get:
      operationId: actorSearchActorsTypeahead
      summary: Bluesky Find actor suggestions for a prefix search term.
      description: '*This endpoint is part of the Bluesky application Lexicon APIs (`app.bsky.*`). Public endpoints which don''t require authentication can be made directly against the public Bluesky AppView API: https://public.api.bsky.app. Authenticated requests are usually made to the user''s PDS, with automatic service proxying. Authenticated requests can be used for both public and non-public endpoints.*


        *To learn more about calling atproto API endpoints like this one, see the [API Hosts and Auth](/docs/advanced-guides/api-directory) guide.*


        Find actor suggestions for a prefix search term. Expected use is for auto-completion during text field entry. Does not require auth.'
      tags:
      - Actor Profiles
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      parameters:
      - name: q
        in: query
        description: Search query prefix; not a full query string.
        required: false
        schema:
          type: string
          description: Search query prefix; not a full query string.
        example: example-q
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 10
        example: 10
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - actors
                properties:
                  actors:
                    type: array
                    items:
                      $ref: '#/components/schemas/AppBskyActorDefsProfileViewBasic'
              examples:
                ActorSearchActorsTypeaheadResponse200Example:
                  $ref: '#/components/examples/ActorSearchActorsTypeaheadResponse200Example'
        '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:
    AppBskyActorDefsAdultContentPref:
      type: object
      required:
      - enabled
      properties:
        enabled:
          type: boolean
    AppBskyGraphDefsCuratelist:
      type: string
      format: token
      description: A list of actors used for curation purposes such as list feeds or interaction gating.
    AppBskyActorDefsHiddenPostsPref:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          items:
            type: string
            format: at-uri
    AppBskyActorDefsMutedWordsPref:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/AppBskyActorDefsMutedWord'
    AppBskyActorDefsSavedFeedsPref:
      type: object
      required:
      - pinned
      - saved
      properties:
        pinned:
          type: array
          items:
            type: string
            format: at-uri
        saved:
          type: array
          items:
            type: string
            format: at-uri
        timelineIndex:
          type: integer
    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'
    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'
    AppBskyActorDefsPersonalDetailsPref:
      type: object
      properties:
        birthDate:
          type: string
          description: The birth date of account owner.
          format: date-time
    AppBskyGraphDefsListViewerState:
      type: object
      properties:
        muted:
          type: boolean
        blocked:
          type: string
          format: at-uri
    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.
    AppBskyActorDefsThreadViewPref:
      type: object
      properties:
        sort:
          type: string
          description: Sorting mode for threads.
          enum:
          - oldest
          - newest
          - most-likes
          - random
        prioritizeFollowedUsers:
          type: boolean
          description: Show followed users at the top of all replies.
    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
    AppBskyActorDefsBskyAppStatePref:
      type: object
      description: A grab bag of state that's specific to the bsky.app program. Third-party apps shouldn't use this.
      properties:
        activeProgressGuide:
          $ref: '#/components/schemas/AppBskyActorDefsBskyAppProgressGuide'
        queuedNudges:
          type: array
          items:
            type: string
            maxLength: 100
          maxItems: 1000
        nuxs:
          type: array
          items:
            $ref: '#/components/schemas/AppBskyActorDefsNux'
          maxItems: 100
    AppBskyActorDefsLabelersPref:
      type: object
      required:
      - labelers
      properties:
        labelers:
          type: array
          items:
            $ref: '#/components/schemas/AppBskyActorDefsLabelerPrefItem'
    AppBskyActorDefsMutedWordTarget:
      type: string
      maxLength: 640
      enum:
      - content
      - tag
    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
    AppBskyActorDefsProfileAssociated:
      type: object
      properties:
        lists:
          type: integer
        feedgens:
          type: integer
        starterPacks:
          type: integer
        labeler:
          type: boolean
        chat:
          $ref: '#/components/schemas/AppBskyActorDefsProfileAssociatedChat'
    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
    AppBskyActorDefsInterestsPref:
      type: object
      required:
      - tags
      properties:
        tags:
          type: array
          items:
            type: string
            maxLength: 640
          maxItems: 100
    AppBskyGraphDefsReferencelist:
      type: string
      format: token
      description: A list of actors used for only for reference purposes such as within a starter pack.
    AppBskyActorDefsPreferences:
      type: array
      items:
        oneOf:
        - $ref: '#/components/schemas/AppBskyActorDefsAdultContentPref'
        - $ref: '#/components/schemas/AppBskyActorDefsContentLabelPref'
        - $ref: '#/components/schemas/AppBskyActorDefsSavedFeedsPref'
        - $ref: '#/components/schemas/AppBskyActorDefsSavedFeedsPrefV2'
        - $ref: '#/components/schemas/AppBskyActorDefsPersonalDetailsPref'
        - $ref: '#/components/schemas/AppBskyActorDefsFeedViewPref'
        - $ref: '#/components/schemas/AppBskyActorDefsThreadViewPref'
        - $ref: '#/components/schemas/AppBskyActorDefsInterestsPref'
        - $ref: '#/components/schemas/AppBskyActorDefsMutedWordsPref'
        - $ref: '#/components/schemas/AppBskyActorDefsHiddenPostsPref'
        - $ref: '#/components/schemas/AppBskyActorDefsBskyAppStatePref'
        - $ref: '#/components/schemas/AppBskyActorDefsLabelersPref'
    ComAtprotoRepoStrongRef:
      type: object
      required:
      - uri
      - cid
      properties:
        uri:
          type: string
          format: at-uri
        cid:
          type: string
          format: cid
    AppBskyActorDefsSavedFeedsPrefV2:
      type: object
      required:
      - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/AppBskyActorDefsSavedFeed'
    AppBskyActorDefsMutedWord:
      type: object
      description: A word that the account owner has muted.
      required:
      - value
      - targets
      properties:
        id:
          type: string
        value:
          type: string
          description: The muted word itself.
          maxLength: 10000
        targets:
          type: array
          items:
            $ref: '#/components/schemas/AppBskyActorDefsMutedWordTarget'
        actorTarget:
          type: string
          description: Groups of users to apply the muted word to. If undefined, applies to all users.
          default: all
          enum:
          - all
          - exclude-following
        expiresAt:
          type: string
          description: The date and time at which the muted word will expire and no longer be applied.
          format: date-time
    AppBskyActorDefsContentLabelPref:
      type: object
      required:
      - label
      - visibility
      properties:
        labelerDid:
          type: string
          description: Which labeler does this preference apply to? If undefined, applies globally.
          format: did
        

# --- truncated at 32 KB (39 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bluesky/refs/heads/main/openapi/bluesky-actor-profiles-api-openapi.yml