> ## Documentation Index
> Fetch the complete documentation index at: https://docs.duvo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Process Attribute

> **Beta.** This endpoint is available to teams enrolled in its early-access rollout. Ask your Duvo contact to enable it for your team.

Replace an attribute's definition (an attribute from listProcessAttributes). The body's type must be the attribute's own — a type never changes. A select attribute's values are replaced: a value with an id is kept (and may be renamed or recolored), one without is created, and an existing value left out is deleted, which clears it from every process that held it. Requires the team's Manager role or above. A number attribute takes a new name and unit, a text attribute a new name. Pass the attribute's `revision` as `expected_revision` to fail with 409 rather than overwrite a save made since it was read.



## OpenAPI

````yaml https://api.duvo.ai/v2/documentation/mintlify.json put /v2/process-attributes/{attribute_id}
openapi: 3.0.3
info:
  title: Duvo Public API
  description: >-
    Public API for programmatic access to Duvo. Authenticate with API keys
    created in the Duvo dashboard.


    ## Rate limits


    Requests are counted per API key. Every response advertises the quota with
    the IETF RateLimit fields, so a client can self-throttle without waiting for
    a rejection:


    - `RateLimit-Policy: "default";q=<quota>;w=<window seconds>` — the policy in
    force: `q` requests per `w` seconds.

    - `RateLimit: "default";r=<remaining>;t=<seconds>` — the live state: `r`
    requests left, quota resetting in `t` seconds.

    - Read the quota from the headers rather than hard-coding it; it differs per
    environment.

    - The same numbers are also sent as `ratelimit-limit`, `ratelimit-remaining`
    and `ratelimit-reset`.


    Once the quota is exhausted the API answers `429 Too Many Requests` with
    `Retry-After` set to the seconds to wait; honor it instead of retrying
    immediately.
  version: 1.0.0
servers:
  - url: https://api.duvo.ai
    description: Production server
security: []
tags:
  - name: Runs
    description: Start, monitor, and manage agent runs (Runs in the Duvo UI)
  - name: Sandboxes
    description: Create sandboxes and upload files for agent runs
  - name: Queues
    description: Manage queues and their agent bindings
  - name: Cases
    description: Create, list, and manage cases and their labels within queues
  - name: Case Approvals
    description: Submit decisions on pending case approval requests issued by an agent run
  - name: Case Attachments
    description: Upload, list, download, and remove the files attached to a case
  - name: Automations
    description: >-
      List and manage automations — the workspace container that groups the
      agents and queues making up one end-to-end process
  - name: Agents
    description: Create and manage agents for automation workloads
  - name: Revisions
    description: Create and manage agent revisions — the underlying Setup for an Agent
  - name: Agent Folders
    description: Organize agents into folders
  - name: Agent Memory
    description: Read an agent's memory files (the Memory feature in the Duvo UI)
  - name: Suggestions
    description: >-
      List, apply, and dismiss an Agent's improvement suggestions (the
      suggestions inbox in the Duvo UI)
  - name: Notifications
    description: >-
      List, read, dismiss, and clear the authenticated user's team notifications
      (the Notification Center in the Duvo UI)
  - name: Schedules
    description: List schedules configured for an agent
  - name: Duvo Pulse
    description: >-
      Create, list, iterate on, and delete Duvo Pulse dashboards — live,
      agent-generated visualizations of your Duvo data
  - name: Case Triggers
    description: >-
      Configure case triggers that automatically dispatch agent runs (Runs in
      the Duvo UI) for cases added to a queue
  - name: Triggers
    description: >-
      Configure event triggers that start a Run automatically when an external
      event fires (e.g. an email arrives, a Linear issue is created, or a file
      changes in Google Drive)
  - name: Skills
    description: Manage team and system skills (reusable knowledge packs).
  - name: Files
    description: Manage team files.
  - name: Plugins
    description: Discover plugins that can be referenced from a revision.
  - name: Organizations
    description: Inspect organizations you belong to and the teams within them
  - name: Team
    description: Inspect the team and members associated with the API key
  - name: Invites
    description: >-
      Invite people to a team — one at a time or in bulk, scoped to a Clarity
      process or the whole team — and manage the team's shareable invite link
  - name: Integrations
    description: Browse the team's catalog of available integration types
  - name: Connections
    description: Manage your connected integrations
  - name: Credentials
    description: >-
      Manage logins (domain + username + password + TOTP) used by agents to sign
      in to websites and desktop applications, and attach them to assignment
      revisions
  - name: Secrets
    description: >-
      Manage env-var secrets injected into runs, and attach them to assignment
      revisions. Only metadata is exposed; values are never returned
  - name: Revision Integrations
    description: >-
      Attach integrations to assignment revisions, pin specific connections, and
      link queues
  - name: ClarityV2
    description: >-
      Manage Clarity v2 process snapshots, automation proposals, and the
      extra-capture-request follow-up loop
paths:
  /v2/process-attributes/{attribute_id}:
    put:
      tags:
        - Automations
      summary: Update Process Attribute
      description: >-
        **Beta.** This endpoint is available to teams enrolled in its
        early-access rollout. Ask your Duvo contact to enable it for your team.


        Replace an attribute's definition (an attribute from
        listProcessAttributes). The body's type must be the attribute's own — a
        type never changes. A select attribute's values are replaced: a value
        with an id is kept (and may be renamed or recolored), one without is
        created, and an existing value left out is deleted, which clears it from
        every process that held it. Requires the team's Manager role or above. A
        number attribute takes a new name and unit, a text attribute a new name.
        Pass the attribute's `revision` as `expected_revision` to fail with 409
        rather than overwrite a save made since it was read.
      operationId: updateProcessAttribute
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: attribute_id
          required: true
          description: Process attribute ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - select
                    name:
                      type: string
                      minLength: 1
                      maxLength: 80
                    expected_revision:
                      type: string
                      minLength: 1
                    values:
                      minItems: 1
                      maxItems: 50
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                          value:
                            type: string
                            minLength: 1
                            maxLength: 80
                          color_hue:
                            type: integer
                            minimum: 0
                            maximum: 360
                        required:
                          - value
                          - color_hue
                  required:
                    - type
                    - name
                    - values
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - number
                    name:
                      type: string
                      minLength: 1
                      maxLength: 80
                    expected_revision:
                      type: string
                      minLength: 1
                    unit:
                      nullable: true
                      type: string
                      maxLength: 16
                    is_unit_prefix:
                      default: true
                      type: boolean
                  required:
                    - type
                    - name
                - type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - text
                    name:
                      type: string
                      minLength: 1
                      maxLength: 80
                    expected_revision:
                      type: string
                      minLength: 1
                  required:
                    - type
                    - name
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  attribute:
                    oneOf:
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                          name:
                            type: string
                          process_count:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          show_in_list:
                            default: false
                            type: boolean
                          revision:
                            type: string
                          type:
                            type: string
                            enum:
                              - select
                          values:
                            type: array
                            items:
                              type: object
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                value:
                                  type: string
                                color_hue:
                                  type: integer
                                  minimum: 0
                                  maximum: 360
                              required:
                                - id
                                - value
                                - color_hue
                              additionalProperties: false
                        required:
                          - id
                          - name
                          - process_count
                          - show_in_list
                          - revision
                          - type
                          - values
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                          name:
                            type: string
                          process_count:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          show_in_list:
                            default: false
                            type: boolean
                          revision:
                            type: string
                          type:
                            type: string
                            enum:
                              - number
                          unit:
                            type: string
                            nullable: true
                          is_unit_prefix:
                            type: boolean
                        required:
                          - id
                          - name
                          - process_count
                          - show_in_list
                          - revision
                          - type
                          - unit
                          - is_unit_prefix
                        additionalProperties: false
                      - type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                          name:
                            type: string
                          process_count:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          show_in_list:
                            default: false
                            type: boolean
                          revision:
                            type: string
                          type:
                            type: string
                            enum:
                              - text
                        required:
                          - id
                          - name
                          - process_count
                          - show_in_list
                          - revision
                          - type
                        additionalProperties: false
                required:
                  - attribute
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
                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
        '409':
          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
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key authentication. Get your API key from the Duvo dashboard.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.