duvo.ai Clarity API

The Clarity API from duvo.ai — 17 operation(s) for clarity.

OpenAPI Specification

duvoai-clarity-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Duvo Public Agent Folders Clarity API
  description: Public API for programmatic access to Duvo. Authenticate with API keys created in the Duvo dashboard.
  version: 1.0.0
servers:
- url: https://api.duvo.ai
  description: Production server
tags:
- name: Clarity
paths:
  /v2/clarity/processes/{id}:
    get:
      operationId: getLegacyClarityProcess
      tags:
      - Clarity
      description: Get a legacy v1 Clarity process with process metadata, generated analysis, transformation guidance, generation progress, and captures. Use this for rows from listClarityProcesses where version=1; v2 rows should use getClarityProcess and snapshot detail tools.
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: id
        required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                  teamId:
                    type: string
                    format: uuid
                  userId:
                    type: string
                    format: uuid
                  name:
                    type: string
                  status:
                    type: string
                    enum:
                    - draft
                    - collecting
                    - generating
                    - generating-current-process
                    - generating-transformation-proposal
                    - review
                    - complete
                    - generation_failed
                  visibility:
                    type: string
                    enum:
                    - team
                    - restricted
                  version:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  analysis:
                    nullable: true
                  generationError:
                    nullable: true
                    type: string
                  customPrompt:
                    nullable: true
                    type: string
                  createdAt:
                    type: string
                    format: date-time
                  updatedAt:
                    type: string
                    format: date-time
                  captures:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        processId:
                          type: string
                          format: uuid
                        userId:
                          type: string
                          format: uuid
                        userName:
                          type: string
                        type:
                          type: string
                          x-extensible-enum:
                          - video
                          - interview
                          - document
                          - screenshare
                          - meeting
                        videoUrl:
                          nullable: true
                          type: string
                        videoTranscript:
                          nullable: true
                          type: string
                        documentFileName:
                          nullable: true
                          type: string
                        documentTextMetadata:
                          nullable: true
                          type: object
                          properties:
                            pages:
                              type: array
                              items:
                                type: object
                                properties:
                                  pageNumber:
                                    type: integer
                                    exclusiveMinimum: true
                                    maximum: 9007199254740991
                                  startOffset:
                                    type: integer
                                    minimum: 0
                                    maximum: 9007199254740991
                                  endOffset:
                                    type: integer
                                    minimum: 0
                                    maximum: 9007199254740991
                                  lines:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        pageNumber:
                                          type: integer
                                          exclusiveMinimum: true
                                          maximum: 9007199254740991
                                        lineNumber:
                                          type: integer
                                          exclusiveMinimum: true
                                          maximum: 9007199254740991
                                        startOffset:
                                          type: integer
                                          minimum: 0
                                          maximum: 9007199254740991
                                        endOffset:
                                          type: integer
                                          minimum: 0
                                          maximum: 9007199254740991
                                      required:
                                      - pageNumber
                                      - lineNumber
                                      - startOffset
                                      - endOffset
                                      additionalProperties: false
                                required:
                                - pageNumber
                                - startOffset
                                - endOffset
                                - lines
                                additionalProperties: false
                          required:
                          - pages
                          additionalProperties: false
                        transcript:
                          nullable: true
                          type: array
                          items:
                            type: object
                            properties:
                              source:
                                type: string
                                enum:
                                - ai
                                - user
                                - interviewer
                              speakerName:
                                type: string
                              message:
                                type: string
                                minLength: 1
                              timestamp:
                                type: number
                            required:
                            - source
                            - message
                            additionalProperties: false
                        hasTranscript:
                          type: boolean
                        hasVideoTranscript:
                          type: boolean
                        transcriptQuestionCount:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        status:
                          type: string
                          enum:
                          - pending
                          - recording
                          - processing
                          - complete
                          - failed
                        createdAt:
                          type: string
                          format: date-time
                        updatedAt:
                          type: string
                          format: date-time
                      required:
                      - id
                      - processId
                      - userId
                      - type
                      - videoUrl
                      - videoTranscript
                      - transcript
                      - status
                      - createdAt
                      - updatedAt
                      additionalProperties: false
                  createdByName:
                    type: string
                  creatorUserId:
                    type: string
                    format: uuid
                  generationProgress:
                    nullable: true
                    type: object
                    properties:
                      steps:
                        type: array
                        items:
                          type: object
                          properties:
                            key:
                              type: string
                            label:
                              type: string
                            status:
                              type: string
                              enum:
                              - pending
                              - in_progress
                              - complete
                            order:
                              type: number
                            count:
                              type: number
                          required:
                          - key
                          - label
                          - status
                          - order
                          additionalProperties: false
                    required:
                    - steps
                    additionalProperties: false
                  transformationGuidance:
                    nullable: true
                    type: string
                  transformationGuidanceAuthor:
                    nullable: true
                    type: string
                  transformationGuidanceDate:
                    nullable: true
                    type: string
                  usedGuidanceMessages:
                    type: array
                    items:
                      type: object
                      properties:
                        content:
                          type: string
                        author:
                          nullable: true
                          type: string
                        date:
                          nullable: true
                          type: string
                      required:
                      - content
                      - author
                      - date
                      additionalProperties: false
                required:
                - id
                - teamId
                - userId
                - name
                - status
                - visibility
                - version
                - analysis
                - generationError
                - customPrompt
                - createdAt
                - updatedAt
                - captures
                - creatorUserId
                - generationProgress
                - transformationGuidance
                - transformationGuidanceAuthor
                - transformationGuidanceDate
                - usedGuidanceMessages
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: Get Legacy Clarity Process
  /v2/organizations/{orgId}/clarity/hierarchy/nodes/{nodeId}:
    patch:
      operationId: updateClarityLandscapeNode
      tags:
      - Clarity
      description: Rename a process landscape node or update its owner label (team manager or above for team processes; organization admin for areas)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                ownerLabel:
                  nullable: true
                  type: string
                  maxLength: 200
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: orgId
        required: true
      - schema:
          type: string
          format: uuid
        in: path
        name: nodeId
        required: true
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                  parentId:
                    nullable: true
                    type: string
                    format: uuid
                  processId:
                    nullable: true
                    type: string
                    format: uuid
                  name:
                    type: string
                  ownerLabel:
                    nullable: true
                    type: string
                  sortOrder:
                    type: number
                  existence:
                    type: string
                    enum:
                    - proposed
                    - active
                  contentConfirmedAt:
                    nullable: true
                    type: string
                  existenceConfirmedAt:
                    nullable: true
                    type: string
                  source:
                    type: string
                    enum:
                    - ai
                    - human
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  team:
                    nullable: true
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      name:
                        type: string
                    required:
                    - id
                    - name
                    additionalProperties: false
                required:
                - id
                - parentId
                - processId
                - name
                - ownerLabel
                - sortOrder
                - existence
                - contentConfirmedAt
                - existenceConfirmedAt
                - source
                - createdAt
                - updatedAt
                - team
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '422':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: Update Clarity Landscape Node
    delete:
      operationId: deleteClarityLandscapeNode
      tags:
      - Clarity
      description: Soft-delete a tree node and its descendants. Organization admins may delete any subtree; team managers may delete a childless process node owned by their team. The targeted node's linked clarity process and captures are deleted, while nested processes detach to the Unsorted bag.
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: orgId
        required: true
      - schema:
          type: string
          format: uuid
        in: path
        name: nodeId
        required: true
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  deletedCount:
                    type: number
                  detachedCount:
                    type: number
                required:
                - deletedCount
                - detachedCount
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '409':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '422':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: Delete Clarity Landscape Node
  /v2/organizations/{orgId}/clarity/hierarchy/nodes/{nodeId}/placement:
    put:
      operationId: setClarityLandscapeNodePlacement
      tags:
      - Clarity
      description: Move a process landscape node (team manager or above for team processes; organization admin for areas)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                parentId:
                  nullable: true
                  type: string
                  format: uuid
              required:
              - parentId
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: orgId
        required: true
      - schema:
          type: string
          format: uuid
        in: path
        name: nodeId
        required: true
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                  parentId:
                    nullable: true
                    type: string
                    format: uuid
                  processId:
                    nullable: true
                    type: string
                    format: uuid
                  name:
                    type: string
                  ownerLabel:
                    nullable: true
                    type: string
                  sortOrder:
                    type: number
                  existence:
                    type: string
                    enum:
                    - proposed
                    - active
                  contentConfirmedAt:
                    nullable: true
                    type: string
                  existenceConfirmedAt:
                    nullable: true
                    type: string
                  source:
                    type: string
                    enum:
                    - ai
                    - human
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  team:
                    nullable: true
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      name:
                        type: string
                    required:
                    - id
                    - name
                    additionalProperties: false
                required:
                - id
                - parentId
                - processId
                - name
                - ownerLabel
                - sortOrder
                - existence
                - contentConfirmedAt
                - existenceConfirmedAt
                - source
                - createdAt
                - updatedAt
                - team
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '409':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '422':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: Set Clarity Landscape Node Placement
  /v2/organizations/{orgId}/clarity/hierarchy/proposed-processes:
    post:
      operationId: proposeClarityLandscapeProcess
      tags:
      - Clarity
      description: Create a manual process in the organization's Process Landscape, either as an unassigned proposal or atomically assigned to an eligible team.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                description:
                  description: 'One short paragraph (1-3 sentences) saying why this process belongs in the landscape. Use only what you saw in the captures. Say what the process is (don''t just repeat the name), show proof it really happens, and name where you heard it - be as specific as the captures allow, like "a warehouse lead said so in their interview" or "it came up in two returns recordings". Use only facts from the captures: never make up sources, people, dates, quotes, or numbers, and don''t stretch what was said. If you have no real proof the process happens, don''t propose it.'
                  nullable: true
                  type: string
                  maxLength: 5000
                parentId:
                  default: null
                  nullable: true
                  type: string
                  format: uuid
                teamId:
                  default: null
                  nullable: true
                  type: string
                  format: uuid
              required:
              - name
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: orgId
        required: true
      security:
      - bearerAuth: []
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                  parentId:
                    nullable: true
                    type: string
                    format: uuid
                  processId:
                    nullable: true
                    type: string
                    format: uuid
                  name:
                    type: string
                  ownerLabel:
                    nullable: true
                    type: string
                  sortOrder:
                    type: number
                  existence:
                    type: string
                    enum:
                    - proposed
                    - active
                  contentConfirmedAt:
                    nullable: true
                    type: string
                  existenceConfirmedAt:
                    nullable: true
                    type: string
                  source:
                    type: string
                    enum:
                    - ai
                    - human
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  team:
                    nullable: true
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      name:
                        type: string
                    required:
                    - id
                    - name
                    additionalProperties: false
                required:
                - id
                - parentId
                - processId
                - name
                - ownerLabel
                - sortOrder
                - existence
                - contentConfirmedAt
                - existenceConfirmedAt
                - source
            

# --- truncated at 32 KB (141 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/duvoai/refs/heads/main/openapi/duvoai-clarity-api-openapi.yml