Bluesky Ozone Settings API

Ozone settings management operations.

OpenAPI Specification

bluesky-ozone-settings-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bluesky Social Actor Profiles Ozone Settings 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: Ozone Settings
  description: Ozone settings management operations.
paths:
  /xrpc/tools.ozone.setting.listOptions:
    get:
      operationId: ozoneSettingListOptions
      summary: Bluesky List settings with optional filtering
      description: '*This endpoint is part of the [Ozone moderation service](https://ozone.tools/) APIs. Requests usually require authentication, are directed to the user''s PDS intance, and proxied to the Ozone instance indicated by the DID in the service proxying header. Admin authenentication may also be possible, with request sent directly to the Ozone instance.*


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


        List settings with optional filtering'
      tags:
      - Ozone Settings
      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
      - name: scope
        in: query
        required: false
        schema:
          type: string
          default: instance
          enum:
          - instance
          - personal
        example: instance
      - name: prefix
        in: query
        description: Filter keys by prefix
        required: false
        schema:
          type: string
          description: Filter keys by prefix
        example: example-prefix
      - name: keys
        in: query
        description: Filter for only the specified keys. Ignored if prefix is provided
        required: false
        schema:
          type: array
          items:
            type: string
            format: nsid
          maxItems: 100
        example:
        - app.bsky.feed.post
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - options
                properties:
                  cursor:
                    type: string
                  options:
                    type: array
                    items:
                      $ref: '#/components/schemas/ToolsOzoneSettingDefsOption'
              examples:
                OzoneSettingListOptionsResponse200Example:
                  $ref: '#/components/examples/OzoneSettingListOptionsResponse200Example'
        '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/tools.ozone.setting.removeOptions:
    post:
      operationId: ozoneSettingRemoveOptions
      summary: Bluesky Delete settings by key
      description: '*This endpoint is part of the [Ozone moderation service](https://ozone.tools/) APIs. Requests usually require authentication, are directed to the user''s PDS intance, and proxied to the Ozone instance indicated by the DID in the service proxying header. Admin authenentication may also be possible, with request sent directly to the Ozone instance.*


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


        Delete settings by key'
      tags:
      - Ozone Settings
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - keys
              - scope
              properties:
                keys:
                  type: array
                  items:
                    type: string
                    format: nsid
                  maxItems: 200
                scope:
                  type: string
                  enum:
                  - instance
                  - personal
            examples:
              OzoneSettingRemoveOptionsRequestExample:
                $ref: '#/components/examples/OzoneSettingRemoveOptionsRequestExample'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '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/tools.ozone.setting.upsertOption:
    post:
      operationId: ozoneSettingUpsertOption
      summary: Bluesky Create or update setting option
      description: '*This endpoint is part of the [Ozone moderation service](https://ozone.tools/) APIs. Requests usually require authentication, are directed to the user''s PDS intance, and proxied to the Ozone instance indicated by the DID in the service proxying header. Admin authenentication may also be possible, with request sent directly to the Ozone instance.*


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


        Create or update setting option'
      tags:
      - Ozone Settings
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - key
              - scope
              - value
              properties:
                key:
                  type: string
                  format: nsid
                scope:
                  type: string
                  enum:
                  - instance
                  - personal
                value: {}
                description:
                  type: string
                  maxLength: 2000
                managerRole:
                  type: string
                  enum:
                  - tools.ozone.team.defs#roleModerator
                  - tools.ozone.team.defs#roleTriage
                  - tools.ozone.team.defs#roleAdmin
            examples:
              OzoneSettingUpsertOptionRequestExample:
                $ref: '#/components/examples/OzoneSettingUpsertOptionRequestExample'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - option
                properties:
                  option:
                    $ref: '#/components/schemas/ToolsOzoneSettingDefsOption'
              examples:
                OzoneSettingUpsertOptionResponse200Example:
                  $ref: '#/components/examples/OzoneSettingUpsertOptionResponse200Example'
        '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:
  examples:
    OzoneSettingRemoveOptionsRequestExample:
      summary: Example request for ozoneSettingRemoveOptions
      value:
        keys:
        - app.bsky.feed.post
        scope: instance
    OzoneSettingUpsertOptionRequestExample:
      summary: Example request for ozoneSettingUpsertOption
      value:
        key: app.bsky.feed.post
        scope: instance
        value: {}
        description: This is an example description.
        managerRole: tools.ozone.team.defs#roleModerator
    OzoneSettingListOptionsResponse200Example:
      summary: Successful response for ozoneSettingListOptions
      value:
        options:
        - key: app.bsky.feed.post
          value: {}
          did: did:plc:example123abc
          scope: instance
          createdBy: did:plc:example123abc
          lastUpdatedBy: did:plc:example123abc
          description: This is an example description.
          createdAt: '2024-01-15T12:00:00.000Z'
        cursor: eyJsYXN0SWQiOiIxMjM0NTYifQ
    OzoneSettingUpsertOptionResponse200Example:
      summary: Successful response for ozoneSettingUpsertOption
      value:
        option:
          key: app.bsky.feed.post
          value: {}
          did: did:plc:example123abc
          scope: instance
          createdBy: did:plc:example123abc
          lastUpdatedBy: did:plc:example123abc
          description: This is an example description.
          createdAt: '2024-01-15T12:00:00.000Z'
  schemas:
    ToolsOzoneSettingDefsOption:
      type: object
      required:
      - key
      - value
      - did
      - scope
      - createdBy
      - lastUpdatedBy
      properties:
        key:
          type: string
          format: nsid
        did:
          type: string
          format: did
        value: {}
        description:
          type: string
          maxLength: 10240
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        managerRole:
          type: string
          enum:
          - tools.ozone.team.defs#roleModerator
          - tools.ozone.team.defs#roleTriage
          - tools.ozone.team.defs#roleAdmin
        scope:
          type: string
          enum:
          - instance
          - personal
        createdBy:
          type: string
          format: did
        lastUpdatedBy:
          type: string
          format: did
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer