Bluesky Ozone Sets API

Ozone set management operations.

OpenAPI Specification

bluesky-ozone-sets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bluesky Social Actor Profiles Ozone Sets 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 Sets
  description: Ozone set management operations.
paths:
  /xrpc/tools.ozone.set.addValues:
    post:
      operationId: ozoneSetAddValues
      summary: Bluesky Add values to a specific set.
      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.*


        Add values to a specific set. Attempting to add values to a set that does not exist will result in an error.'
      tags:
      - Ozone Sets
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              - values
              properties:
                name:
                  type: string
                  description: Name of the set to add values to
                values:
                  type: array
                  items:
                    type: string
                  maxItems: 1000
            examples:
              OzoneSetAddValuesRequestExample:
                $ref: '#/components/examples/OzoneSetAddValuesRequestExample'
      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/tools.ozone.set.deleteSet:
    post:
      operationId: ozoneSetDeleteSet
      summary: Bluesky Delete an entire set.
      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 an entire set. Attempting to delete a set that does not exist will result in an error.'
      tags:
      - Ozone Sets
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              properties:
                name:
                  type: string
                  description: Name of the set to delete
            examples:
              OzoneSetDeleteSetRequestExample:
                $ref: '#/components/examples/OzoneSetDeleteSetRequestExample'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  _unknown_:
                    type: object
                    properties: {}
              examples:
                OzoneSetDeleteSetResponse200Example:
                  $ref: '#/components/examples/OzoneSetDeleteSetResponse200Example'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                - message
                properties:
                  error:
                    type: string
                    enum:
                    - InvalidRequest
                    - ExpiredToken
                    - InvalidToken
                    - SetNotFound
                  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.set.deleteValues:
    post:
      operationId: ozoneSetDeleteValues
      summary: Bluesky Delete values from a specific set.
      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 values from a specific set. Attempting to delete values that are not in the set will not result in an error'
      tags:
      - Ozone Sets
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              - values
              properties:
                name:
                  type: string
                  description: Name of the set to delete values from
                values:
                  type: array
                  items:
                    type: string
            examples:
              OzoneSetDeleteValuesRequestExample:
                $ref: '#/components/examples/OzoneSetDeleteValuesRequestExample'
      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
                    - SetNotFound
                  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.set.getValues:
    get:
      operationId: ozoneSetGetValues
      summary: Bluesky Get a specific set and its values
      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.*


        Get a specific set and its values'
      tags:
      - Ozone Sets
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      parameters:
      - name: name
        in: query
        required: true
        schema:
          type: string
        example: Example Name
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 1000
          default: 100
        example: 100
      - name: cursor
        in: query
        required: false
        schema:
          type: string
        example: eyJsYXN0SWQiOiIxMjM0NTYifQ
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - set
                - values
                properties:
                  set:
                    $ref: '#/components/schemas/ToolsOzoneSetDefsSetView'
                  values:
                    type: array
                    items:
                      type: string
                  cursor:
                    type: string
              examples:
                OzoneSetGetValuesResponse200Example:
                  $ref: '#/components/examples/OzoneSetGetValuesResponse200Example'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                - message
                properties:
                  error:
                    type: string
                    enum:
                    - InvalidRequest
                    - ExpiredToken
                    - InvalidToken
                    - SetNotFound
                  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.set.querySets:
    get:
      operationId: ozoneSetQuerySets
      summary: Bluesky Query available sets
      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.*


        Query available sets'
      tags:
      - Ozone Sets
      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: namePrefix
        in: query
        required: false
        schema:
          type: string
        example: Example Name
      - name: sortBy
        in: query
        required: false
        schema:
          type: string
          default: name
        example: example-sortBy
      - name: sortDirection
        in: query
        description: Defaults to ascending order of name field.
        required: false
        schema:
          type: string
          description: Defaults to ascending order of name field.
          default: asc
        example: example-sortDirection
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - sets
                properties:
                  sets:
                    type: array
                    items:
                      $ref: '#/components/schemas/ToolsOzoneSetDefsSetView'
                  cursor:
                    type: string
              examples:
                OzoneSetQuerySetsResponse200Example:
                  $ref: '#/components/examples/OzoneSetQuerySetsResponse200Example'
        '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.set.upsertSet:
    post:
      operationId: ozoneSetUpsertSet
      summary: Bluesky Create or update set metadata
      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 set metadata'
      tags:
      - Ozone Sets
      x-microcks-operation:
        delay: 100
        dispatcher: FALLBACK
        dispatcherRules: ''
      security:
      - Bearer: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ToolsOzoneSetDefsSet'
            examples:
              OzoneSetUpsertSetRequestExample:
                $ref: '#/components/examples/OzoneSetUpsertSetRequestExample'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ToolsOzoneSetDefsSetView'
              examples:
                OzoneSetUpsertSetResponse200Example:
                  $ref: '#/components/examples/OzoneSetUpsertSetResponse200Example'
        '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:
    OzoneSetUpsertSetResponse200Example:
      summary: Successful response for ozoneSetUpsertSet
      value:
        name: Example Name
        setSize: 50
        createdAt: '2024-01-15T12:00:00.000Z'
        updatedAt: '2024-01-15T12:00:00.000Z'
        description: This is an example description.
    OzoneSetAddValuesRequestExample:
      summary: Example request for ozoneSetAddValues
      value:
        name: Example Name
        values:
        - example-values
    OzoneSetQuerySetsResponse200Example:
      summary: Successful response for ozoneSetQuerySets
      value:
        sets:
        - name: Example Name
          setSize: 50
          createdAt: '2024-01-15T12:00:00.000Z'
          updatedAt: '2024-01-15T12:00:00.000Z'
          description: This is an example description.
        cursor: eyJsYXN0SWQiOiIxMjM0NTYifQ
    OzoneSetUpsertSetRequestExample:
      summary: Example request for ozoneSetUpsertSet
      value:
        name: Example Name
        description: This is an example description.
    OzoneSetGetValuesResponse200Example:
      summary: Successful response for ozoneSetGetValues
      value:
        set:
          name: Example Name
          setSize: 50
          createdAt: '2024-01-15T12:00:00.000Z'
          updatedAt: '2024-01-15T12:00:00.000Z'
          description: This is an example description.
        values:
        - example-values
        cursor: eyJsYXN0SWQiOiIxMjM0NTYifQ
    OzoneSetDeleteSetResponse200Example:
      summary: Successful response for ozoneSetDeleteSet
      value:
        _unknown_: {}
    OzoneSetDeleteSetRequestExample:
      summary: Example request for ozoneSetDeleteSet
      value:
        name: Example Name
    OzoneSetDeleteValuesRequestExample:
      summary: Example request for ozoneSetDeleteValues
      value:
        name: Example Name
        values:
        - example-values
  schemas:
    ToolsOzoneSetDefsSet:
      type: object
      required:
      - name
      properties:
        name:
          type: string
          minLength: 3
          maxLength: 128
        description:
          type: string
          maxLength: 10240
    ToolsOzoneSetDefsSetView:
      type: object
      required:
      - name
      - setSize
      - createdAt
      - updatedAt
      properties:
        name:
          type: string
          minLength: 3
          maxLength: 128
        description:
          type: string
          maxLength: 10240
        setSize:
          type: integer
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer