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

# Get trigger type

> Fetches the full detail for a single trigger type, identified by its slug: the input
(config_schema) and payload (payload_schema) JSON schemas, how it fires
(delivery), and the parameters block describing schedule/listen-columns/
event-type behavior that a schema alone cannot carry. Supply applicationSlug to
disambiguate when the same trigger slug exists under more than one application. A trigger
type that exists but whose connector cannot currently be subscribed to answers 404 with a
message distinguishing it from an unknown slug.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/triggers/types/{triggerSlug}
openapi: 3.0.0
info:
  title: Engini DeveloperAPI
  version: v1
  description: 'Merged public developer API spec: Identity + WorkflowApi.'
servers:
  - url: https://api.engini.io
security:
  - Bearer: []
  - ApiKey: []
tags:
  - name: Auth
    description: Identify the caller a Developer API request is authenticated as.
  - name: Applications
    description: >-
      Discover the applications (toolkits) available in Engini and their
      connection requirements.
  - name: Tools
    description: Browse and execute the tools exposed by Engini applications.
  - name: Toolsets
    description: Manage toolsets - named groupings of connections and tools.
  - name: McpServers
    description: >-
      Inspect and maintain MCP servers - the account-wide endpoints that expose
      Engini tools and workflows over the Model Context Protocol. Distinct from
      the MCPClient connection kind, which is Engini consuming a third-party MCP
      server.
  - name: Connections
    description: >-
      Manage connections to applications, including OAuth sign-in and
      default-connection selection.
  - name: Triggers
    description: >-
      Create triggers that fire when something changes in a connected app, and
      manage the destinations their events are delivered to.
paths:
  /v1/triggers/types/{triggerSlug}:
    get:
      tags:
        - Triggers
      summary: Get trigger type
      description: >-
        Fetches the full detail for a single trigger type, identified by its
        slug: the input

        (config_schema) and payload (payload_schema) JSON schemas, how it fires

        (delivery), and the parameters block describing schedule/listen-columns/

        event-type behavior that a schema alone cannot carry. Supply
        applicationSlug to

        disambiguate when the same trigger slug exists under more than one
        application. A trigger

        type that exists but whose connector cannot currently be subscribed to
        answers 404 with a

        message distinguishing it from an unknown slug.
      operationId: Triggers_GetTriggerType
      parameters:
        - name: triggerSlug
          in: path
          required: true
          description: The slug identifying the trigger type to retrieve.
          schema:
            type: string
          x-position: 1
        - name: applicationSlug
          in: query
          description: >-
            Optional parent-application slug used to disambiguate when the same
            trigger slug exists across applications.
          schema:
            type: string
            nullable: true
          x-position: 2
      responses:
        '200':
          description: The detailed representation of the trigger type.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TriggerTypeDetailDTO'
        '400':
          description: Bad request - malformed body or invalid parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - missing or invalid bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden - the caller lacks access to the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found - the resource does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too many requests - rate limit exceeded.
          headers:
            Retry-After:
              description: Number of seconds to wait before retrying.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error - an unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - Bearer: []
        - ApiKey: []
components:
  schemas:
    TriggerTypeDetailDTO:
      allOf:
        - $ref: '#/components/schemas/TriggerTypeDTO'
        - type: object
          description: >-
            Detail shape for GET
            /api/DeveloperAPI/v1/triggers/types/{triggerSlug}. Adds the JSON

            schemas (generated off the existing DeveloperAPI/MCPSchemaGenerator,
            the same dialect

            /v1/tools/{toolSlug} uses) and the parameters block describing how
            the trigger fires -

            information config_schema alone cannot carry, since
            schedule/listen-columns/event-type are

            not activity inputs.
          additionalProperties: false
          properties:
            config_schema:
              nullable: true
            payload_schema:
              nullable: true
            parameters:
              $ref: '#/components/schemas/TriggerParametersDTO'
    ErrorResponse:
      type: object
      description: >-
        Unified error envelope for every non-200 response from
        /api/DeveloperAPI/v1/*.

        See applications-tools-spec.md §"Error envelope".
      additionalProperties: false
      required:
        - errorCode
        - message
        - requestId
        - timestamp
        - path
      properties:
        errorCode:
          type: string
          description: Machine-readable error code identifying the failure.
        message:
          type: string
          description: Human-readable error message.
        requestId:
          type: string
          description: Identifier of the request, for support/correlation.
        timestamp:
          type: string
          description: Timestamp when the error occurred (ISO 8601).
        path:
          type: string
          description: Request path that produced the error.
        details:
          type: array
          description: Per-field validation details, when applicable.
          nullable: true
          items:
            $ref: '#/components/schemas/ErrorDetail'
    TriggerTypeDTO:
      type: object
      description: >-
        Public Developer API v1 representation of a trigger type - a
        persisted-slug Activity row of

        ActivityType.Trigger, given a public name and contract (not a new
        entity; no trigger

        instances are created here). Returned by GET
        /api/DeveloperAPI/v1/triggers/types.

        Field names are pinned via JsonPropertyAttribute to the Composio-parity

        snake_case wire contract (trigger_slug, application_slug) rather than
        the project's usual

        camelCase resolver - see
        docs/superpowers/specs/2026-08-20-engini-triggers-design.md §6.

        A NEW DTO: ActivityInputSchema stays untouched - it backs a published
        legacy

        contract.
      additionalProperties: false
      required:
        - delivery
      properties:
        trigger_slug:
          type: string
        application_slug:
          type: string
        name:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        delivery:
          type: string
          description: >-
            How this trigger fires: realtime (the provider pushes events to
            Engini),
             polling (Engini checks on a schedule) or manual_webhook (you post to a URL
             Engini gives you). Always one of those three - a trigger type whose connector cannot
             currently back a realtime subscription is left out of the catalog rather than listed
             with a fourth value.
    TriggerParametersDTO:
      type: object
      description: >-
        The three things a caller must know beyond config_schema: whether/how a
        schedule applies,

        whether the trigger watches specific columns, and whether/what
        event-type options exist.
      additionalProperties: false
      required:
        - schedule
        - eventtype
      properties:
        schedule:
          $ref: '#/components/schemas/TriggerScheduleParameterDTO'
        listen_columns:
          $ref: '#/components/schemas/TriggerListenColumnsParameterDTO'
        eventtype:
          $ref: '#/components/schemas/TriggerEventTypeParameterDTO'
    ErrorDetail:
      type: object
      description: A single field-level error detail within an ErrorResponse.
      additionalProperties: false
      required:
        - field
        - issue
      properties:
        field:
          type: string
          description: Name of the field the issue relates to.
        issue:
          type: string
          description: Description of the issue with the field.
    TriggerScheduleParameterDTO:
      type: object
      additionalProperties: false
      required:
        - applies
      properties:
        applies:
          type: boolean
        min_interval_minutes:
          type: integer
          description: >-
            The shortest polling interval your plan allows, in minutes. Only set
            when
             Applies is true, and always resolved from your own account's subscription.
             A shorter schedule is clamped up to this value.
          format: int32
          nullable: true
    TriggerListenColumnsParameterDTO:
      type: object
      additionalProperties: false
      required:
        - applies
      properties:
        applies:
          type: boolean
    TriggerEventTypeParameterDTO:
      type: object
      additionalProperties: false
      required:
        - applies
      properties:
        applies:
          type: boolean
        options:
          type: array
          nullable: true
          items:
            type: string
  securitySchemes:
    Bearer:
      type: http
      description: Enter your JWT token
      scheme: bearer
      bearerFormat: JWT
    ApiKey:
      type: apiKey
      description: >-
        Opaque Developer API key (prefix `eng_`). Authenticates as the key's
        owner and resolves the account automatically.
      name: x-api-key
      in: header

````