Duvo Ai Clarity API

The Clarity API from Duvo Ai — 17 operation(s) for clarity.

Operations 22

GET /v2/clarity/processes/{id} Get Legacy Clarity Process #
PATCH /v2/organizations/{orgId}/clarity/hierarchy/nodes/{nodeId} Update Clarity Landscape Node #
DELETE /v2/organizations/{orgId}/clarity/hierarchy/nodes/{nodeId} Delete Clarity Landscape Node #
PUT /v2/organizations/{orgId}/clarity/hierarchy/nodes/{nodeId}/placement Set Clarity Landscape Node Placement #
POST /v2/organizations/{orgId}/clarity/hierarchy/proposed-processes Propose Clarity Landscape Process #
GET /v2/organizations/{orgId}/clarity/hierarchy/tree Get Clarity Process Tree #
GET /v2/organizations/{orgId}/clarity/hierarchy/landscape Get Clarity Process Landscape #
GET /v2/organizations/{orgId}/clarity/hierarchy/captures List Clarity Landscape Captures #
POST /v2/organizations/{orgId}/clarity/hierarchy/landscape/generate Generate Clarity Process Landscape #
POST /v2/organizations/{orgId}/clarity/hierarchy/nodes Create Clarity Landscape Node #
GET /v2/organizations/{orgId}/clarity/process-labels List Clarity Process Labels #
POST /v2/organizations/{orgId}/clarity/process-labels Create Clarity Process Label #
PATCH /v2/organizations/{orgId}/clarity/process-labels/{labelId} Update Clarity Process Label #
DELETE /v2/organizations/{orgId}/clarity/process-labels/{labelId} Delete Clarity Process Label #
GET /v2/clarity/processes/{id}/labels List Clarity Process Assigned Labels #
POST /v2/clarity/processes/{id}/labels/assign Assign Clarity Process Labels #
POST /v2/clarity/processes/{id}/labels/unlink Unlink Clarity Process Labels #
GET /v2/clarity/processes/{id}/available-labels List Available Clarity Process Labels #

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/duvo-ai-clarity-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

duvo-ai-clarity-api-openapi.yml Raw ↑
openapi: 3.2.0
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: {}
                  generationError:
                    type:
                    - string
                    - 'null'
                  customPrompt:
                    type:
                    - string
                    - 'null'
                  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:
                          type:
                          - string
                          - 'null'
                        videoTranscript:
                          type:
                          - string
                          - 'null'
                        documentFileName:
                          type:
                          - string
                          - 'null'
                        documentTextMetadata:
                          type:
                          - object
                          - 'null'
                          properties:
                            pages:
                              type: array
                              items:
                                type: object
                                properties:
                                  pageNumber:
                                    type: integer
                                    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
                                          maximum: 9007199254740991
                                        lineNumber:
                                          type: integer
                                          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:
                          type:
                          - array
                          - 'null'
                          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:
                    type:
                    - object
                    - 'null'
                    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:
                    type:
                    - string
                    - 'null'
                  transformationGuidanceAuthor:
                    type:
                    - string
                    - 'null'
                  transformationGuidanceDate:
                    type:
                    - string
                    - 'null'
                  usedGuidanceMessages:
                    type: array
                    items:
                      type: object
                      properties:
                        content:
                          type: string
                        author:
                          type:
                          - string
                          - 'null'
                        date:
                          type:
                          - string
                          - 'null'
                      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:
                  type:
                  - string
                  - 'null'
                  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:
                    type:
                    - string
                    - 'null'
                    format: uuid
                  processId:
                    type:
                    - string
                    - 'null'
                    format: uuid
                  name:
                    type: string
                  ownerLabel:
                    type:
                    - string
                    - 'null'
                  sortOrder:
                    type: number
                  existence:
                    type: string
                    enum:
                    - proposed
                    - active
                  contentConfirmedAt:
                    type:
                    - string
                    - 'null'
                  existenceConfirmedAt:
                    type:
                    - string
                    - 'null'
                  source:
                    type: string
                    enum:
                    - ai
                    - human
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  team:
                    type:
                    - object
                    - 'null'
                    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:
                  type:
                  - string
                  - 'null'
                  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:
                    type:
                    - string
                    - 'null'
                    format: uuid
                  processId:
                    type:
                    - string
                    - 'null'
                    format: uuid
                  name:
                    type: string
                  ownerLabel:
                    type:
                    - string
                    - 'null'
                  sortOrder:
                    type: number
                  existence:
                    type: string
                    enum:
                    - proposed
                    - active
                  contentConfirmedAt:
                    type:
                    - string
                    - 'null'
                  existenceConfirmedAt:
                    type:
                    - string
                    - 'null'
                  source:
                    type: string
                    enum:
                    - ai
                    - human
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  team:
                    type:
                    - object
                    - 'null'
                    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.'
                  type:
                  - string
                  - 'null'
                  maxLength: 5000
                parentId:
                  default: null
                  type:
                  - string
                  - 'null'
                  format: uuid
                teamId:
                  default: null
                  type:
                  - string
                  - 'null'
                  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:
                    type:
                    - string
                    - 'null'
                    format: uuid
                  processId:
                    type:
                    - string
                    - 'null'
                    format: uuid
                  name:
                    type: string
                  ownerLabel:
                    type:
                    - string
                    - 'null'
                  sortOrder:
                    type: number
                  existence:
                    type: string
                    enum:
                    - proposed
                    - active
                  contentConfirmedAt:
                    type:
                    - string
                    - 'null'
                  existenceConfirmedAt:
                    type:
                    - string
                    - 'null'
                  source:
                    type: string
                    enum:
                    - ai
                    - human
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  team:
                    type:
                    - object
                    - 'null'
                    properties:
                      id:
                        type: string
                        format: uuid
                      name:
                        type: string
                    required:
                    - id
           

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