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

# List automations

> List all automations for the organization, newest first.

Supports `metadata.<key>=<value>` query parameters to filter on
metadata labels (exact match; multiple filters AND together).

`agent_types` filters to automations containing at least one action of a
given agent type; repeat the parameter to match any of several types
(OR). Action payloads live in customer-data storage rather than
queryable columns, so this filter scans pages server-side. `total` is
only returned when a single unfiltered scan covered the whole result set
(first page, no further pages, nothing hidden); otherwise it is omitted
rather than reporting a count that includes automations the API will
never return.

## Permissions

Requires a [service user](/api-reference/v3/service-users/members-service-users) or [personal access token](/api-reference/personal-access-tokens) with the `ViewOrgAutomations` permission at the organization level.

## Filtering

Supports filtering by `search`, `creator_id`, `enabled`, `event_type`, and `agent_types` (repeat to match any of several types). `metadata.<key>=<value>` query parameters filter on metadata labels (exact match; multiple filters AND together).

Results are newest first with cursor-based pagination (`after`, `first`). `total` is only returned when a single unfiltered scan covered the whole result set.


## OpenAPI

````yaml v3-openapi.yaml GET /v3/organizations/{org_id}/automations
openapi: 3.1.0
info:
  description: Devin v3 API with Service User authentication and RBAC
  title: Devin API v3
  version: 3.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v3/organizations/{org_id}/automations:
    get:
      tags:
        - automations
      summary: List automations
      description: |-
        List all automations for the organization, newest first.

        Supports `metadata.<key>=<value>` query parameters to filter on
        metadata labels (exact match; multiple filters AND together).

        `agent_types` filters to automations containing at least one action of a
        given agent type; repeat the parameter to match any of several types
        (OR). Action payloads live in customer-data storage rather than
        queryable columns, so this filter scans pages server-side. `total` is
        only returned when a single unfiltered scan covered the whole result set
        (first page, no further pages, nothing hidden); otherwise it is omitted
        rather than reporting a count that includes automations the API will
        never return.
      operationId: handle_list_automations_v3_organizations__org_id__automations_get
      parameters:
        - description: 'Organization ID (prefix: org-)'
          in: path
          name: org_id
          required: true
          schema:
            example: org-abc123def456
            title: Org Id
            type: string
        - in: query
          name: after
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: After
        - in: query
          name: first
          required: false
          schema:
            default: 100
            maximum: 200
            minimum: 1
            title: First
            type: integer
        - in: query
          name: search
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Search
        - in: query
          name: creator_id
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Creator Id
        - in: query
          name: enabled
          required: false
          schema:
            anyOf:
              - type: boolean
              - type: 'null'
            title: Enabled
        - in: query
          name: event_type
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Event Type
        - in: query
          name: agent_types
          required: false
          schema:
            anyOf:
              - items:
                  enum:
                    - new_session
                    - long_running
                    - auto_triage
                    - remediate_finding
                    - triage_session
                    - generic_assistant
                    - incident_session
                    - code_scan
                  type: string
                type: array
              - type: 'null'
            title: Agent Types
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_AutomationResponse_'
          description: Successful Response
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Unprocessable Content
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Too Many Requests
components:
  schemas:
    PaginatedResponse_AutomationResponse_:
      properties:
        end_cursor:
          anyOf:
            - type: string
            - type: 'null'
          description: Cursor to fetch the next page, or None if this is the last page.
          title: End Cursor
        has_next_page:
          default: false
          description: Whether there are more items available after this page.
          title: Has Next Page
          type: boolean
        items:
          items:
            $ref: '#/components/schemas/AutomationResponse'
          title: Items
          type: array
        total:
          anyOf:
            - type: integer
            - type: 'null'
          description: Optional total count (can be omitted for performance).
          title: Total
      required:
        - items
      title: PaginatedResponse[AutomationResponse]
      type: object
    ProblemDetail:
      description: >-
        RFC 9457 application/problem+json error body for the v3 API.


        detail is retained from the legacy {"detail": ...} body for back-compat;
        the

        other members are additive. errors carries field-level validation
        failures

        (422 only).
      properties:
        detail:
          anyOf:
            - type: string
            - type: 'null'
          description: A human-readable explanation specific to this occurrence.
          title: Detail
        error_code:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Machine-readable code for blocked-action refusals (e.g.
            "user_frozen", "migrated_session").
          title: Error Code
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          description: Field-level validation errors (422 responses only).
          title: Errors
        instance:
          anyOf:
            - type: string
            - type: 'null'
          description: A URI reference (the request path) for this occurrence.
          title: Instance
        status:
          description: The HTTP status code.
          title: Status
          type: integer
        title:
          description: A short, human-readable summary of the problem type.
          title: Title
          type: string
        type:
          default: about:blank
          description: A URI reference identifying the problem type.
          title: Type
          type: string
      required:
        - title
        - status
      title: ProblemDetail
      type: object
    AutomationResponse:
      additionalProperties: false
      properties:
        actions:
          items:
            discriminator:
              mapping:
                message_session: '#/components/schemas/AutomationMessageSessionAction'
                monitor_session: '#/components/schemas/AutomationMonitorSessionAction'
                start_session: '#/components/schemas/AutomationStartSessionAction-Output'
              propertyName: type
            oneOf:
              - $ref: '#/components/schemas/AutomationStartSessionAction-Output'
              - $ref: '#/components/schemas/AutomationMessageSessionAction'
              - $ref: '#/components/schemas/AutomationMonitorSessionAction'
          title: Actions
          type: array
        automation_id:
          title: Automation Id
          type: string
        concurrency:
          anyOf:
            - $ref: '#/components/schemas/AutomationConcurrency'
            - type: 'null'
        created_at:
          title: Created At
          type: integer
        created_by:
          $ref: '#/components/schemas/ActorResponse'
        enabled:
          title: Enabled
          type: boolean
        last_edited_by:
          anyOf:
            - $ref: '#/components/schemas/ActorResponse'
            - type: 'null'
        last_invocation:
          anyOf:
            - $ref: '#/components/schemas/AutomationLastInvocation'
            - type: 'null'
        limits:
          anyOf:
            - $ref: '#/components/schemas/AutomationLimits'
            - type: 'null'
        metadata:
          additionalProperties:
            type: string
          default: {}
          title: Metadata
          type: object
        name:
          title: Name
          type: string
        next_run_at:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            When the automation's schedule triggers next fire. null when it has
            no schedule trigger, is disabled, or every schedule has passed its
            end date.
          title: Next Run At
        notifications:
          anyOf:
            - $ref: '#/components/schemas/AutomationNotifications'
            - type: 'null'
        run_as:
          description: >-
            Identity the spawned sessions run under. organization: the org's
            automation identity. When the organization has a default service
            user for automations, sessions run as that service user and the
            response returns run_as service_user with its id; saving requires
            every permission that service user holds. Otherwise it is the System
            User in the app — sessions use system permissions, so MCP servers
            installed with a personal (user-scoped) connection cannot be
            selected, and switching an automation to organization removes them
            from its selection. creator: personal automation — runs with the
            creator's own permissions and is visible only to the creator and org
            admins; rejected for service-user-created automations. service_user:
            runs as the given service user, with its roles, grants and ACU
            limits; requires permission to manage that service user. Required on
            create; null on update resets to organization.
          discriminator:
            mapping:
              creator: '#/components/schemas/AutomationRunAsCreator'
              organization: '#/components/schemas/AutomationRunAsOrganization'
              service_user: '#/components/schemas/AutomationRunAsServiceUser'
            propertyName: type
          oneOf:
            - $ref: '#/components/schemas/AutomationRunAsOrganization'
            - $ref: '#/components/schemas/AutomationRunAsCreator'
            - $ref: '#/components/schemas/AutomationRunAsServiceUser'
          title: Run As
        security_profile:
          anyOf:
            - $ref: '#/components/schemas/AutomationSecurityProfileResponse'
            - type: 'null'
          description: >-
            The automation's security-profile binding and the resolved governing
            profiles. null when security profiles are not enabled for the
            organization.
        session_settings:
          anyOf:
            - $ref: '#/components/schemas/AutomationSessionSettings-Output'
            - type: 'null'
        slack_reply_access:
          default: slack_users
          description: >-
            Who may reply into existing sessions from Slack threads: devin_users
            (linked Devin accounts only), slack_users (anyone in the
            organization's connected Slack workspaces), or external_slack_users
            (also Slack Connect users). Does not affect who can trigger the
            automation.
          enum:
            - devin_users
            - slack_users
            - external_slack_users
          title: Slack Reply Access
          type: string
        teams_reply_access:
          default: teams_users
          description: >-
            Who may reply into existing sessions from Microsoft Teams threads:
            devin_users (linked Devin accounts only) or teams_users (anyone in
            the organization's connected Microsoft tenant; the default). Does
            not affect who can trigger the automation.
          enum:
            - devin_users
            - teams_users
          title: Teams Reply Access
          type: string
        template_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Template Id
        tools:
          anyOf:
            - $ref: '#/components/schemas/AutomationTools'
            - type: 'null'
        triggers:
          items:
            $ref: '#/components/schemas/AutomationTriggerResponse'
          title: Triggers
          type: array
        updated_at:
          title: Updated At
          type: integer
      required:
        - automation_id
        - name
        - enabled
        - triggers
        - actions
        - created_by
        - created_at
        - updated_at
      title: AutomationResponse
      type: object
    AutomationMessageSessionAction:
      additionalProperties: false
      properties:
        auto_create:
          default: false
          description: >-
            When true, the first trigger creates a new long-running session
            owned by the automation and subsequent triggers message it.
          title: Auto Create
          type: boolean
        prompt:
          description: The triggering event's payload is appended automatically.
          title: Prompt
          type: string
        target_devin_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Must belong to the org; editing an automation containing this action
            requires write access to the target session (enable/disable-only
            edits exempt). Required unless auto_create is true, in which case it
            is set server-side once the first trigger creates the session;
            client-supplied values are ignored.
          title: Target Devin Id
        type:
          const: message_session
          default: message_session
          title: Type
          type: string
      required:
        - prompt
      title: AutomationMessageSessionAction
      type: object
    AutomationMonitorSessionAction:
      additionalProperties: false
      properties:
        setup_prompt:
          description: >-
            Injected into the session's system prompt. Same reference-token
            grammar as prompt.
          title: Setup Prompt
          type: string
        slack_monitor_config:
          $ref: '#/components/schemas/AutomationSlackMonitorConfig'
          description: Requires exactly one slack:message trigger on the same channel.
        type:
          const: monitor_session
          default: monitor_session
          title: Type
          type: string
      required:
        - setup_prompt
        - slack_monitor_config
      title: AutomationMonitorSessionAction
      type: object
    AutomationStartSessionAction-Output:
      additionalProperties: false
      properties:
        prompt:
          description: >-
            The single source of truth: plain text with inline reference tokens
            (@{owner}/{repo}, @{path}, @playbook:{id}, @skills:{name}, !{macro},
            ${SECRET_NAME}). Kind-prefixed tokens are validated at save; unknown
            ids are a 400. The triggering event's payload is appended
            automatically.
          title: Prompt
          type: string
        session:
          $ref: '#/components/schemas/AutomationSessionConfig-Output'
          description: Config for the spawned session.
        type:
          const: start_session
          default: start_session
          title: Type
          type: string
      required:
        - prompt
      title: AutomationStartSessionAction
      type: object
    AutomationConcurrency:
      additionalProperties: false
      properties:
        max_concurrent_runs:
          anyOf:
            - minimum: 1
              type: integer
            - type: 'null'
          description: >-
            Maximum in-flight runs for this automation; further triggered events
            wait in its queue. A run stops counting toward the limit once its
            session finishes and is awaiting further instructions, not only when
            the session stops. null = unlimited.
          title: Max Concurrent Runs
        max_queue_depth:
          anyOf:
            - minimum: 0
              type: integer
            - type: 'null'
          description: >-
            Maximum triggered events waiting in the automation's queue to run;
            events beyond this are dropped. Requires max_concurrent_runs to be
            set. null = unlimited.
          title: Max Queue Depth
      title: AutomationConcurrency
      type: object
    ActorResponse:
      description: A user or service-user principal attributed to an action or resource.
      properties:
        id:
          description: User id or service-user id.
          title: Id
          type: string
        name:
          anyOf:
            - type: string
            - type: 'null'
          description: Display name, resolved server-side; null when deleted.
          title: Name
        type:
          description: Kind of principal.
          enum:
            - user
            - service_user
          title: Type
          type: string
      required:
        - type
        - id
      title: ActorResponse
      type: object
    AutomationLastInvocation:
      additionalProperties: false
      properties:
        fired_at:
          title: Fired At
          type: integer
        status:
          description: >-
            succeeded | failed | skipped — open enum, clients must tolerate new
            values.
          title: Status
          type: string
      required:
        - fired_at
        - status
      title: AutomationLastInvocation
      type: object
    AutomationLimits:
      additionalProperties: false
      properties:
        invocations:
          anyOf:
            - $ref: '#/components/schemas/AutomationInvocationLimits'
            - type: 'null'
          description: Rate-limits the automation's own firing.
        max_acu_limit:
          anyOf:
            - maximum: 1000
              minimum: 1
              type: integer
            - type: 'null'
          description: Per spawned session (same name as the sessions API).
          title: Max Acu Limit
      title: AutomationLimits
      type: object
    AutomationNotifications:
      additionalProperties: false
      properties:
        email:
          anyOf:
            - $ref: '#/components/schemas/AutomationEmailNotification'
            - type: 'null'
        slack:
          anyOf:
            - $ref: '#/components/schemas/AutomationSlackNotification'
            - type: 'null'
      title: AutomationNotifications
      type: object
    AutomationRunAsCreator:
      additionalProperties: false
      properties:
        type:
          const: creator
          default: creator
          title: Type
          type: string
      title: AutomationRunAsCreator
      type: object
    AutomationRunAsOrganization:
      additionalProperties: false
      properties:
        type:
          const: organization
          default: organization
          title: Type
          type: string
      title: AutomationRunAsOrganization
      type: object
    AutomationRunAsServiceUser:
      additionalProperties: false
      properties:
        service_user_id:
          title: Service User Id
          type: string
        type:
          const: service_user
          default: service_user
          title: Type
          type: string
      required:
        - service_user_id
      title: AutomationRunAsServiceUser
      type: object
    AutomationSecurityProfileResponse:
      additionalProperties: false
      properties:
        profile_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Profile Id
        selection:
          description: >-
            The automation's own binding: inherit (no binding), none (explicit
            opt-out), or profile (pins profile_id). Sessions resolve the full
            enterprise -> org -> automation chain: the automation's network
            policy only ever narrows the governing profiles' policies, and an
            opt-out cannot escape a mandatory org/enterprise profile.
          enum:
            - inherit
            - none
            - profile
          title: Selection
          type: string
        warnings:
          default: []
          description: >-
            Non-blocking configuration conflicts, e.g. a recommended MCP server
            whose endpoint hostname the governing profile blocks (spawned
            sessions will not be able to connect to that server). Only remote
            MCP endpoint hostnames are checked; an empty list does not guarantee
            every MCP or network destination will work. Populated on
            single-automation reads and writes; empty in list responses.
          items:
            type: string
          title: Warnings
          type: array
      required:
        - selection
      title: AutomationSecurityProfileResponse
      type: object
    AutomationSessionSettings-Output:
      additionalProperties: false
      description: |-
        Applied to every session this automation spawns (including monitor
        sessions).
      properties:
        devin_mode:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            null = org default. One of normal, fast, lite, ultra, fusion, or a
            research preview the organization can use (see
            schemas.available_devin_modes). Research previews require
            fallback_devin_mode; a stored preview the organization can no longer
            use stays stored (unrelated edits preserve it) and its sessions
            start on fallback_devin_mode.
          title: Devin Mode
        fallback_devin_mode:
          anyOf:
            - enum:
                - normal
                - fast
                - lite
                - ultra
                - fusion
              type: string
            - type: 'null'
          description: >-
            Stable mode sessions start in when devin_mode is a research preview
            that is unavailable at run time. Required with a preview devin_mode
            (see schemas.default_fallback_devin_mode), rejected with a stable or
            null devin_mode; cleared with devin_mode.
          title: Fallback Devin Mode
        net_policy:
          anyOf:
            - $ref: '#/components/schemas/AutomationNetPolicy'
            - type: 'null'
      title: AutomationSessionSettings
      type: object
    AutomationTools:
      additionalProperties: false
      properties:
        jira_projects:
          anyOf:
            - items:
                type: string
              minItems: 1
              type: array
            - type: 'null'
          description: >-
            Jira project ids the session's Jira tools are limited to. Null (the
            default) allows every project the run identity can access. Projects
            required by the automation's Jira triggers are always included.
            While a project list is set, the Atlassian MCP server is not loaded,
            since it cannot be limited to projects. On update, omitting this
            member keeps the stored list; send null to clear it.
          title: Jira Projects
        linear_enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          description: Grant Linear tools.
          title: Linear Enabled
        mcp_servers:
          default: []
          description: >-
            Marketplace slugs (the slug field of the mcp-servers resource, e.g.
            'github', 'notion') enabled for spawned sessions. Servers installed
            with a personal (user-scoped) connection require run_as creator;
            selecting them with run_as organization is rejected since the
            Automations service identity has no personal token for them, and
            switching an automation's run_as to organization removes them from
            the stored selection.
          items:
            type: string
          title: Mcp Servers
          type: array
        slack_channels:
          default: []
          description: Channels the session's Slack tools may post to.
          items:
            $ref: '#/components/schemas/AutomationSlackChannel'
          title: Slack Channels
          type: array
        slack_dm_scope:
          anyOf:
            - enum:
                - org_members
                - workspace
              type: string
            - type: 'null'
          description: >-
            Allow spawned sessions to open 1:1 Slack DMs in the organization's
            connected workspaces. 'org_members' (enterprise accounts only)
            restricts DM targets to members of the organization; 'workspace'
            (non-enterprise accounts only) allows any eligible workspace member.
            Omit or null to disable DMs.
          title: Slack Dm Scope
        teams_channels:
          default: []
          description: >-
            Microsoft Teams channels the session's Teams tool may read and post
            to. Teams must have the Devin app installed. A single {team_id: '*',
            channel_id: '*'} entry grants every channel of every team the Devin
            app is installed in. The grant is capped by the organization's Teams
            Default Access; the channel of a teams:message trigger is always
            granted.
          items:
            $ref: '#/components/schemas/AutomationTeamsChannel'
          title: Teams Channels
          type: array
        teams_dm_scope:
          anyOf:
            - const: installed_users
              type: string
            - type: 'null'
          description: >-
            Allow spawned sessions to open 1:1 Microsoft Teams DMs. DMs only
            reach users who installed the Devin app in Teams personally. Capped
            by Teams Default Access and the governing security profile.
          title: Teams Dm Scope
      title: AutomationTools
      type: object
    AutomationTriggerResponse:
      additionalProperties: false
      properties:
        conditions:
          anyOf:
            - $ref: '#/components/schemas/AutomationConditions-Output'
            - type: 'null'
        event_type:
          title: Event Type
          type: string
        replies:
          default: []
          items:
            $ref: '#/components/schemas/AutomationReply'
          title: Replies
          type: array
        trigger_id:
          description: Re-minted when triggers is replaced — not stable across edits.
          title: Trigger Id
          type: string
        webhook:
          anyOf:
            - $ref: '#/components/schemas/AutomationWebhookResponse'
            - type: 'null'
          description: Only on webhook:incoming triggers.
      required:
        - trigger_id
        - event_type
      title: AutomationTriggerResponse
      type: object
    AutomationSlackMonitorConfig:
      additionalProperties: false
      properties:
        source_channel_id:
          title: Source Channel Id
          type: string
        team_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Team Id
      required:
        - source_channel_id
      title: AutomationSlackMonitorConfig
      type: object
    AutomationSessionConfig-Output:
      additionalProperties: false
      properties:
        bypass_approval:
          default: false
          description: >-
            Auto-approves child-session creation (the only check this flag
            bypasses); any future bypassable check requires a new field.
          title: Bypass Approval
          type: boolean
        notifications:
          anyOf:
            - $ref: '#/components/schemas/AutomationSessionNotificationsConfig'
            - type: 'null'
          description: Session-content notifications (Slack and Microsoft Teams).
        platform:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            VM platform for the session. When null, the session uses the
            organization's default platform at invocation time.
          title: Platform
        playbook_id:
          anyOf:
            - type: string
            - type: 'null'
          description: 'Read-only: derived from the first @playbook: token in the prompt.'
          title: Playbook Id
        repos:
          default: []
          description: 'Read-only: derived from repo tokens in the prompt.'
          items:
            type: string
          title: Repos
          type: array
        tags:
          default: []
          description: >-
            Session tags. For tagging-enforced enterprises exactly one allowed
            value is required.
          items:
            type: string
          title: Tags
          type: array
      title: AutomationSessionConfig
      type: object
    AutomationInvocationLimits:
      additionalProperties: false
      properties:
        max_per_window:
          minimum: 1
          title: Max Per Window
          type: integer
        window_seconds:
          minimum: 60
          title: Window Seconds
          type: integer
      required:
        - max_per_window
        - window_seconds
      title: AutomationInvocationLimits
      type: object
    AutomationEmailNotification:
      additionalProperties: false
      properties:
        recipients:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          description: >-
            null = the automation creator; required for service-user-created
            automations.
          title: Recipients
        when:
          enum:
            - always
            - dispatch_failed
            - dispatch_succeeded
          title: When
          type: string
      required:
        - when
      title: AutomationEmailNotification
      type: object
    AutomationSlackNotification:
      additionalProperties: false
      properties:
        channel_id:
          title: Channel Id
          type: string
        when:
          enum:
            - always
            - dispatch_failed
            - dispatch_succeeded
          title: When
          type: string
      required:
        - when
        - channel_id
      title: AutomationSlackNotification
      type: object
    AutomationNetPolicy:
      additionalProperties: false
      properties:
        allow:
          items:
            anyOf:
              - $ref: '#/components/schemas/AutomationHostnameDestination'
              - $ref: '#/components/schemas/AutomationIpv4Destination'
              - $ref: '#/components/schemas/AutomationIpv6Destination'
          title: Allow
          type: array
      required:
        - allow
      title: AutomationNetPolicy
      type: object
    AutomationSlackChannel:
      additionalProperties: false
      properties:
        channel_id:
          title: Channel Id
          type: string
        team_id:
          title: Team Id
          type: string
      required:
        - team_id
        - channel_id
      title: AutomationSlackChannel
      type: object
    AutomationTeamsChannel:
      additionalProperties: false
      properties:
        channel_id:
          description: Teams channel id ('19:...@thread.tacv2'), or '*'.
          title: Channel Id
          type: string
        team_id:
          description: Entra group id of the Microsoft Teams team, or '*'.
          title: Team Id
          type: string
      required:
        - team_id
        - channel_id
      title: AutomationTeamsChannel
      type: object
    AutomationConditions-Output:
      additionalProperties: false
      properties:
        any:
          description: OR of AND-groups (fixed two-level DNF).
          items:
            $ref: '#/components/schemas/AutomationConditionGroup'
          title: Any
          type: array
      required:
        - any
      title: AutomationConditions
      type: object
    AutomationReply:
      additionalProperties: false
      properties:
        type:
          description: >-
            notify_thread: dispatch-time one-way 'session started' breadcrumb in
            the triggering thread (Slack triggers). attach_thread: dispatch-time
            two-way binding to the triggering thread (Slack triggers).
            post_response: deliver the agent's response to the triggering
            context.
          enum:
            - notify_thread
            - attach_thread
            - post_response
          title: Type
          type: string
      required:
        - type
      title: AutomationReply
      type: object
    AutomationWebhookResponse:
      additionalProperties: false
      properties:
        secret:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Present only when newly minted (create or re-add); never retrievable
            again. Replacing triggers preserves the existing secret.
          title: Secret
        url:
          description: The inbox external systems POST to (header X-Webhook-Secret).
          title: Url
          type: string
      required:
        - url
      title: AutomationWebhookResponse
      type: object
    AutomationSessionNotificationsConfig:
      additionalProperties: false
      description: |-
        Where the spawned session's content goes, as opposed to the
        automation-level ``notifications`` group (dispatch-status pings).
      properties:
        slack:
          anyOf:
            - $ref: '#/components/schemas/AutomationSessionSlackConfig'
            - type: 'null'
          description: >-
            Gives the session a Slack home: two-way for
            post_updates/forward_thread and post_response after its initial
            delivery binds the thread.
        teams:
          anyOf:
            - $ref: '#/components/schemas/AutomationSessionTeamsConfig'
            - type: 'null'
          description: >-
            Posts the session's final response to the Microsoft Teams channel as
            a new top-level post, then binds its thread for replies (available
            for any trigger). Cannot be combined with a slack
            post_response/post_updates home or a post_response reply.
      title: AutomationSessionNotificationsConfig
      type: object
    AutomationHostnameDestination:
      additionalProperties: false
      properties:
        hostname:
          title: Hostname
          type: string
      required:
        - hostname
      title: AutomationHostnameDestination
      type: object
    AutomationIpv4Destination:
      additionalProperties: false
      properties:
        ipv4:
          title: Ipv4
          type: string
      required:
        - ipv4
      title: AutomationIpv4Destination
      type: object
    AutomationIpv6Destination:
      additionalProperties: false
      properties:
        ipv6:
          title: Ipv6
          type: string
      required:
        - ipv6
      title: AutomationIpv6Destination
      type: object
    AutomationConditionGroup:
      additionalProperties: false
      properties:
        all:
          description: 'AND: every condition in the group must match.'
          items:
            discriminator:
              mapping:
                between: '#/components/schemas/AutomationRangeCondition'
                contains: '#/components/schemas/AutomationStringCondition'
                ends_with: '#/components/schemas/AutomationStringCondition'
                eq: '#/components/schemas/AutomationComparisonCondition'
                globs: '#/components/schemas/AutomationGlobCondition'
                gt: '#/components/schemas/AutomationNumericCondition'
                gte: '#/components/schemas/AutomationNumericCondition'
                in: '#/components/schemas/AutomationListCondition'
                is_empty: '#/components/schemas/AutomationEmptyCondition'
                is_not_empty: '#/components/schemas/AutomationEmptyCondition'
                lt: '#/components/schemas/AutomationNumericCondition'
                lte: '#/components/schemas/AutomationNumericCondition'
                matches: '#/components/schemas/AutomationMatchCondition'
                neq: '#/components/schemas/AutomationComparisonCondition'
                not_contains: '#/components/schemas/AutomationStringCondition'
                not_ends_with: '#/components/schemas/AutomationStringCondition'
                not_globs: '#/components/schemas/AutomationGlobCondition'
                not_in: '#/components/schemas/AutomationListCondition'
                not_matches: '#/components/schemas/AutomationMatchCondition'
                not_starts_with: '#/components/schemas/AutomationStringCondition'
                recurrence: '#/components/schemas/AutomationRecurrenceCondition'
                starts_with: '#/components/schemas/AutomationStringCondition'
              propertyName: operator
            oneOf:
              - $ref: '#/components/schemas/AutomationComparisonCondition'
              - $ref: '#/components/schemas/AutomationStringCondition'
              - $ref: '#/components/schemas/AutomationNumericCondition'
              - $ref: '#/components/schemas/AutomationEmptyCondition'
              - $ref: '#/components/schemas/AutomationRangeCondition'
              - $ref: '#/components/schemas/AutomationListCondition'
              - $ref: '#/components/schemas/AutomationMatchCondition'
              - $ref: '#/components/schemas/AutomationRecurrenceCondition'
              - $ref: '#/components/schemas/AutomationGlobCondition'
          title: All
          type: array
      required:
        - all
      title: AutomationConditionGroup
      type: object
    AutomationSessionSlackConfig:
      additionalProperties: false
      properties:
        channel_id:
          title: Channel Id
          type: string
        mode:
          description: >-
            post_updates: the session converses in a thread in the channel
            (available for non-Slack triggers). forward_thread: the same, plus a
            backlink posted in the triggering thread (requires a Slack trigger).
            post_response: the session's final response is posted to the channel
            as a top-level message, then its thread is bound for replies and
            follow-up messages (available for any trigger).
          enum:
            - post_updates
            - forward_thread
            - post_response
          title: Mode
          type: string
      required:
        - mode
        - channel_id
      title: AutomationSessionSlackConfig
      type: object
    AutomationSessionTeamsConfig:
      additionalProperties: false
      properties:
        channel_id:
          description: Conversation id of a channel in that team.
          title: Channel Id
          type: string
        team_id:
          description: >-
            Entra group id of a team the Devin app is installed in on the
            organization's Microsoft Teams connection.
          title: Team Id
          type: string
      required:
        - team_id
        - channel_id
      title: AutomationSessionTeamsConfig
      type: object
    AutomationRangeCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          const: between
          title: Operator
          type: string
        value:
          description: Inclusive [low, high] range.
          maxItems: 2
          minItems: 2
          prefixItems:
            - anyOf:
                - type: integer
                - type: number
            - anyOf:
                - type: integer
                - type: number
          title: Value
          type: array
      required:
        - field
        - operator
        - value
      title: AutomationRangeCondition
      type: object
    AutomationStringCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - contains
            - not_contains
            - starts_with
            - not_starts_with
            - ends_with
            - not_ends_with
          title: Operator
          type: string
        value:
          title: Value
          type: string
      required:
        - field
        - operator
        - value
      title: AutomationStringCondition
      type: object
    AutomationComparisonCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - eq
            - neq
          title: Operator
          type: string
        value:
          anyOf:
            - type: string
            - type: integer
            - type: number
            - type: boolean
          title: Value
      required:
        - field
        - operator
        - value
      title: AutomationComparisonCondition
      type: object
    AutomationGlobCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - globs
            - not_globs
          title: Operator
          type: string
        value:
          description: Glob patterns; any changed path matches (github:push, gitlab:push).
          items:
            type: string
          title: Value
          type: array
      required:
        - field
        - operator
        - value
      title: AutomationGlobCondition
      type: object
    AutomationNumericCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - gt
            - lt
            - gte
            - lte
          title: Operator
          type: string
        value:
          anyOf:
            - type: integer
            - type: number
          title: Value
      required:
        - field
        - operator
        - value
      title: AutomationNumericCondition
      type: object
    AutomationListCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - in
            - not_in
          title: Operator
          type: string
        value:
          items:
            type: string
          title: Value
          type: array
      required:
        - field
        - operator
        - value
      title: AutomationListCondition
      type: object
    AutomationEmptyCondition:
      additionalProperties: false
      description: >-
        Unary operator: matches on the field's emptiness; `value` carries no
        data.
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - is_empty
            - is_not_empty
          title: Operator
          type: string
        value:
          title: Value
          type: 'null'
      required:
        - field
        - operator
      title: AutomationEmptyCondition
      type: object
    AutomationMatchCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          enum:
            - matches
            - not_matches
          title: Operator
          type: string
        value:
          description: Regular expression.
          title: Value
          type: string
      required:
        - field
        - operator
        - value
      title: AutomationMatchCondition
      type: object
    AutomationRecurrenceCondition:
      additionalProperties: false
      properties:
        field:
          title: Field
          type: string
        operator:
          const: recurrence
          title: Operator
          type: string
        value:
          description: >-
            iCalendar RRULE for schedule:recurring's rrule field, e.g.
            FREQ=WEEKLY;BYDAY=MO;BYHOUR=9;BYMINUTE=0
          title: Value
          type: string
      required:
        - field
        - operator
        - value
      title: AutomationRecurrenceCondition
      type: object
  securitySchemes:
    bearerAuth:
      description: 'Service User credential (prefix: cog_)'
      scheme: bearer
      type: http

````

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