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.