> ## 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.

# Create Automation Revision

> Create a draft revision branched from a base revision (defaults to the active revision), copying its agent, queue, and trigger bindings.



## OpenAPI

````yaml https://api.duvo.ai/v2/documentation/mintlify.json post /v2/automations/{automation_id}/revisions
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/automations/{automation_id}/revisions:
    post:
      tags:
        - Automations
      summary: Create Automation Revision
      description: >-
        Create a draft revision branched from a base revision (defaults to the
        active revision), copying its agent, queue, and trigger bindings.
      operationId: createAutomationRevision
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: automation_id
          required: true
          description: Automation ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                base_revision_id:
                  description: Revision to branch from (defaults to the active revision)
                  type: string
                  format: uuid
                name:
                  description: Optional draft name
                  type: string
                  minLength: 1
                  maxLength: 200
                description:
                  description: Optional draft description
                  type: string
                  maxLength: 2000
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  revision:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Unique revision identifier
                      automation_id:
                        type: string
                        format: uuid
                        description: ID of the automation this revision belongs to
                      revision_number:
                        nullable: true
                        description: >-
                          Sequential revision number, assigned on activation
                          (null for a draft)
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      status:
                        type: string
                        enum:
                          - draft
                          - live
                          - historic
                        description: 'Lifecycle status: draft, live, or historic'
                      base_revision_id:
                        nullable: true
                        description: >-
                          Revision this draft was branched from (null when it
                          has no base)
                        type: string
                        format: uuid
                      name:
                        nullable: true
                        description: Optional human-readable revision name
                        type: string
                      description:
                        nullable: true
                        description: Optional revision description
                        type: string
                      is_live:
                        type: boolean
                        description: True when this is the automation's active revision
                      is_stale_base:
                        type: boolean
                        description: >-
                          True when a draft's base is no longer the active
                          revision and must be resolved before activation
                      agent_count:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                        description: Number of agent bindings in the revision
                      queue_count:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                        description: Number of queue bindings in the revision
                      trigger_count:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                        description: Number of trigger bindings in the revision
                      modified_agent_ids:
                        type: array
                        items:
                          type: string
                          format: uuid
                        description: >-
                          Agents whose referenced build differs from the base
                          revision
                      draft_only_agents:
                        description: >-
                          On a draft, the agents it binds that the live revision
                          does not (every agent when nothing is live), sorted by
                          name. Discarding the draft drops them from the
                          automation. Empty on any other revision; absent from a
                          backend that predates the field.
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                            name:
                              type: string
                              nullable: true
                          required:
                            - id
                            - name
                          additionalProperties: false
                      changes:
                        type: array
                        items:
                          type: object
                          properties:
                            entity_kind:
                              type: string
                              enum:
                                - agent
                                - queue
                                - trigger
                                - schedule
                              description: What kind of entity changed
                            entity_id:
                              type: string
                              format: uuid
                              description: >-
                                The affected entity's id (agent, queue, trigger
                                declaration, or schedule declaration)
                            change_kind:
                              type: string
                              enum:
                                - added
                                - modified
                                - removed
                              description: >-
                                Whether the entity was added, modified, or
                                removed
                            name:
                              nullable: true
                              description: >-
                                Display name of the affected entity — the agent
                                or queue name; for triggers and schedules, the
                                name of the agent they route to
                              type: string
                            integration_slug:
                              nullable: true
                              description: >-
                                Integration a changed trigger watches (e.g.
                                `gmail`); null for other entity kinds
                              type: string
                            changed_fields:
                              type: array
                              items:
                                type: string
                                enum:
                                  - build
                                  - routing
                                  - enabled
                                  - disabled
                                  - name
                                  - description
                                  - filter
                                  - cadence
                                  - task
                              description: >-
                                What changed on a modified entity (empty for
                                added/removed entries)
                          required:
                            - entity_kind
                            - entity_id
                            - change_kind
                            - name
                            - integration_slug
                            - changed_fields
                          additionalProperties: false
                        description: >-
                          Per-entity diff against the base revision, agents
                          first (empty for revisions without a base)
                      viewer_can_change:
                        description: >-
                          Whether the caller may activate or discard this
                          revision. Its changes are edits of the agents they
                          touch: a Builder may publish or discard changes to
                          agents they created, and Lead Builder or above may act
                          on any; a change to a queue needs edit rights on the
                          whole automation. Sent by the revision list and detail
                          endpoints; absent elsewhere.
                        type: boolean
                      created_at:
                        type: string
                        description: ISO 8601 creation timestamp
                      updated_at:
                        type: string
                        description: ISO 8601 last-modified timestamp
                    required:
                      - id
                      - automation_id
                      - revision_number
                      - status
                      - base_revision_id
                      - name
                      - description
                      - is_live
                      - is_stale_base
                      - agent_count
                      - queue_count
                      - trigger_count
                      - modified_agent_ids
                      - changes
                      - created_at
                      - updated_at
                    additionalProperties: false
                    description: The revision summary
                required:
                  - revision
                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
        '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.