duvo.ai Triggers API

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)

OpenAPI Specification

duvoai-triggers-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Duvo Public Agent Folders Triggers 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: 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)
paths:
  /v2/triggers/{agentId}:
    get:
      operationId: listAgentTriggers
      tags:
      - Triggers
      description: List the trigger definitions the authenticated user owns on an agent (Agent in the Duvo UI). Triggers start a Run automatically when an external event fires (e.g. an email arrives or a Linear issue is created).
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: agentId
        required: true
        description: The agent's unique identifier
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  triggers:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        agent_id:
                          type: string
                        user_id:
                          type: string
                        integration_slug:
                          type: string
                        trigger_type:
                          type: string
                        filter_config:
                          type: object
                          additionalProperties: {}
                        integration_instance_id:
                          type: string
                        enabled:
                          type: boolean
                        auto_disabled_at:
                          nullable: true
                          type: string
                        auto_disabled_reason:
                          nullable: true
                          type: string
                        consecutive_missing_connection_failures:
                          type: integer
                          minimum: 0
                          maximum: 9007199254740991
                        first_missing_connection_failure_at:
                          nullable: true
                          type: string
                        last_missing_connection_failure_at:
                          nullable: true
                          type: string
                        created_at:
                          type: string
                        updated_at:
                          type: string
                      required:
                      - id
                      - agent_id
                      - user_id
                      - integration_slug
                      - trigger_type
                      - filter_config
                      - integration_instance_id
                      - enabled
                      - auto_disabled_at
                      - auto_disabled_reason
                      - consecutive_missing_connection_failures
                      - first_missing_connection_failure_at
                      - last_missing_connection_failure_at
                      - created_at
                      - updated_at
                      additionalProperties: false
                required:
                - triggers
                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
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: List Agent Triggers
    put:
      operationId: upsertAgentTrigger
      tags:
      - Triggers
      description: 'Create or update the authenticated user''s trigger for an integration on an agent. The integration must already be connected to the agent (its OAuth connection set up in the Duvo dashboard). Set `enabled: false` to pause a trigger without deleting it.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                integration_slug:
                  type: string
                  description: Integration slug the trigger fires for (e.g. `gmail`, `outlook`, `linear-native`, `google-drive`).
                trigger_type:
                  type: string
                  description: Trigger type within the integration (e.g. `email_received`). Discover valid values via the trigger types endpoint.
                filter_config:
                  description: Integration-specific filter config (e.g. sender/subject filters). Shape comes from the integration's filter schema.
                  default: {}
                  type: object
                  additionalProperties: {}
                enabled:
                  default: true
                  description: Whether the trigger is active. Defaults to true.
                  type: boolean
              required:
              - integration_slug
              - trigger_type
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: agentId
        required: true
        description: The agent's unique identifier
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  agent_id:
                    type: string
                  user_id:
                    type: string
                  integration_slug:
                    type: string
                  trigger_type:
                    type: string
                  filter_config:
                    type: object
                    additionalProperties: {}
                  integration_instance_id:
                    type: string
                  enabled:
                    type: boolean
                  auto_disabled_at:
                    nullable: true
                    type: string
                  auto_disabled_reason:
                    nullable: true
                    type: string
                  consecutive_missing_connection_failures:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  first_missing_connection_failure_at:
                    nullable: true
                    type: string
                  last_missing_connection_failure_at:
                    nullable: true
                    type: string
                  created_at:
                    type: string
                  updated_at:
                    type: string
                required:
                - id
                - agent_id
                - user_id
                - integration_slug
                - trigger_type
                - filter_config
                - integration_instance_id
                - enabled
                - auto_disabled_at
                - auto_disabled_reason
                - consecutive_missing_connection_failures
                - first_missing_connection_failure_at
                - last_missing_connection_failure_at
                - created_at
                - updated_at
                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: Upsert Agent Trigger
  /v2/trigger-config/{agentId}:
    get:
      operationId: listAgentTriggerTypes
      tags:
      - Triggers
      description: List the trigger types available for an agent, grouped by integration. Use the returned `integration_slug` and `trigger_type` values when creating a trigger.
      parameters:
      - schema:
          type: string
          format: uuid
        in: path
        name: agentId
        required: true
        description: The agent's unique identifier
      security:
      - bearerAuth: []
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  trigger_types:
                    type: array
                    items:
                      type: object
                      properties:
                        integration_slug:
                          type: string
                        integration_name:
                          type: string
                        icon_url:
                          type: string
                        trigger_type:
                          type: string
                        label:
                          type: string
                        description:
                          type: string
                        filter_schema:
                          type: object
                          additionalProperties: {}
                      required:
                      - integration_slug
                      - integration_name
                      - icon_url
                      - trigger_type
                      - label
                      - description
                      - filter_schema
                      additionalProperties: false
                required:
                - trigger_types
                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
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
                additionalProperties: false
      summary: List Agent Trigger Types
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key authentication. Get your API key from the Duvo dashboard.