duvo.ai Queues API

Manage queues and their agent bindings

OpenAPI Specification

duvoai-queues-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Duvo Public Agent Folders Queues 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: Queues
  description: Manage queues and their agent bindings
paths:
  /v2/queues/{queue_id}:
    get:
      operationId: getQueue
      tags:
      - Queues
      description: Get a queue by ID.
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: queue_id
        required: true
        description: The queue's unique identifier
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  queue:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      name:
                        type: string
                      description:
                        nullable: true
                        type: string
                      folder_id:
                        nullable: true
                        type: string
                        format: uuid
                      automation_id:
                        nullable: true
                        type: string
                        format: uuid
                      team_id:
                        nullable: true
                        type: string
                      created_at:
                        type: string
                      has_approvals:
                        type: boolean
                    required:
                    - id
                    - name
                    - description
                    - folder_id
                    - created_at
                    - has_approvals
                    additionalProperties: false
                required:
                - queue
                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
        '404':
          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: Get Queue
    patch:
      operationId: updateQueue
      tags:
      - Queues
      description: Update a queue.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  description: New queue name. Must be unique within the team.
                  type: string
                  minLength: 1
                  maxLength: 100
                description:
                  description: New description, or null to clear.
                  nullable: true
                  type: string
                  maxLength: 500
                folder_id:
                  description: New folder id, or null to move to the root.
                  nullable: true
                  type: string
                  format: uuid
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: queue_id
        required: true
        description: The queue's unique identifier
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  queue:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      name:
                        type: string
                      description:
                        nullable: true
                        type: string
                      folder_id:
                        nullable: true
                        type: string
                        format: uuid
                      automation_id:
                        nullable: true
                        type: string
                        format: uuid
                      team_id:
                        nullable: true
                        type: string
                      created_at:
                        type: string
                      has_approvals:
                        type: boolean
                    required:
                    - id
                    - name
                    - description
                    - folder_id
                    - created_at
                    - has_approvals
                    additionalProperties: false
                required:
                - queue
                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
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: Update Queue
    delete:
      operationId: deleteQueue
      tags:
      - Queues
      description: Delete a queue. Interrupts all associated active runs first and returns the number of deleted cases plus the IDs of runs that were stopped.
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: queue_id
        required: true
        description: The queue's unique identifier
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  deleted_case_count:
                    type: number
                  interrupted_run_ids:
                    type: array
                    items:
                      type: string
                      format: uuid
                required:
                - success
                - deleted_case_count
                - interrupted_run_ids
                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
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: Delete Queue
  /v2/queues/{queue_id}/agents:
    get:
      operationId: listQueueAgents
      tags:
      - Queues
      description: List agents bound to a queue as producers (agents that push cases into the queue) or consumers (agents triggered by cases in the queue).
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: queue_id
        required: true
        description: The queue's unique identifier
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  queue_name:
                    type: string
                  producers:
                    type: array
                    items:
                      type: object
                      properties:
                        agent_id:
                          type: string
                          format: uuid
                        agent_name:
                          type: string
                        case_trigger_enabled:
                          type: boolean
                        case_trigger_queue_name:
                          nullable: true
                          type: string
                        problems:
                          type: array
                          items:
                            type: string
                            enum:
                            - multiple_triggers
                            - producer_consumer_mix
                      required:
                      - agent_id
                      - agent_name
                      - case_trigger_enabled
                      - case_trigger_queue_name
                      - problems
                      additionalProperties: false
                  consumers:
                    type: array
                    items:
                      type: object
                      properties:
                        agent_id:
                          type: string
                          format: uuid
                        agent_name:
                          type: string
                        case_trigger_enabled:
                          type: boolean
                        is_handover_target:
                          type: boolean
                        problems:
                          type: array
                          items:
                            type: string
                            enum:
                            - multiple_triggers
                            - producer_consumer_mix
                        concurrency_limit:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        at_concurrency_limit:
                          type: boolean
                      required:
                      - agent_id
                      - agent_name
                      - case_trigger_enabled
                      - is_handover_target
                      - problems
                      additionalProperties: false
                required:
                - queue_name
                - producers
                - consumers
                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
        '404':
          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: List Queue Agents
  /v2/teams/{teamId}/queues:
    get:
      operationId: listQueues
      tags:
      - Queues
      description: List queues for your team.
      parameters:
      - schema:
          default: 250
          type: integer
          minimum: 1
          maximum: 250
        in: query
        name: limit
        required: false
        description: Number of queues per page (1-250, default 250)
      - schema:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        in: query
        name: offset
        required: false
        description: Number of queues to skip
      - schema:
          type: string
          format: uuid
        in: query
        name: automation_id
        required: false
        description: Only return queues belonging to this automation.
      - schema:
          type: string
        in: path
        name: teamId
        required: true
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  queues:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                        name:
                          type: string
                        description:
                          nullable: true
                          type: string
                        folder_id:
                          nullable: true
                          type: string
                          format: uuid
                        automation_id:
                          nullable: true
                          type: string
                          format: uuid
                        team_id:
                          nullable: true
                          type: string
                        created_at:
                          type: string
                        has_approvals:
                          type: boolean
                      required:
                      - id
                      - name
                      - description
                      - folder_id
                      - created_at
                      - has_approvals
                      additionalProperties: false
                  total:
                    type: number
                  limit:
                    type: number
                  offset:
                    type: number
                required:
                - queues
                - total
                - limit
                - offset
                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
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: List Queues
    post:
      operationId: createQueue
      tags:
      - Queues
      description: Create a new queue.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  maxLength: 100
                  description: Queue name. Must be unique within the team.
                description:
                  description: Optional human-readable description.
                  nullable: true
                  type: string
                  maxLength: 500
                folder_id:
                  description: Optional folder to nest the queue under.
                  nullable: true
                  type: string
                  format: uuid
                automation_id:
                  description: Automation this queue belongs to. Optional for teams not yet migrated to Automations; required once a team has migrated.
                  nullable: true
                  type: string
                  format: uuid
              required:
              - name
      security:
      - bearerAuth: []
      parameters:
      - schema:
          type: string
        in: path
        name: teamId
        required: true
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  queue:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      name:
                        type: string
                      description:
                        nullable: true
                        type: string
                      folder_id:
                        nullable: true
                        type: string
                        format: uuid
                      automation_id:
                        nullable: true
                        type: string
                        format: uuid
                      team_id:
                        nullable: true
                        type: string
                      created_at:
                        type: string
                      has_approvals:
                        type: boolean
                    required:
                    - id
                    - name
                    - description
                    - folder_id
                    - created_at
                    - has_approvals
                    additionalProperties: false
                required:
                - queue
                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
        '409':
          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: Create Queue
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key authentication. Get your API key from the Duvo dashboard.