Windmill http_trigger API

The http_trigger API from Windmill — 9 operation(s) for http_trigger.

OpenAPI Specification

windmill-http-trigger-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  version: 1.694.0
  title: Windmill admin http_trigger API
  contact:
    name: Windmill Team
    email: contact@windmill.dev
    url: https://windmill.dev
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  x-logo:
    url: https://windmill.dev/img/windmill.svg
servers:
- url: /api
security:
- bearerAuth: []
- cookieAuth: []
tags:
- name: http_trigger
paths:
  /w/{workspace}/http_triggers/create_many:
    post:
      summary: Create Many HTTP Triggers
      operationId: createHttpTriggers
      tags:
      - http_trigger
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      requestBody:
        description: new http trigger
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/NewHttpTrigger'
      responses:
        '201':
          description: http trigger created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/http_triggers/create:
    post:
      summary: Create Http Trigger
      operationId: createHttpTrigger
      tags:
      - http_trigger
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      requestBody:
        description: new http trigger
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewHttpTrigger'
      responses:
        '201':
          description: http trigger created
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/http_triggers/update/{path}:
    post:
      summary: Update Http Trigger
      operationId: updateHttpTrigger
      tags:
      - http_trigger
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      - $ref: '#/components/parameters/Path'
      requestBody:
        description: updated trigger
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditHttpTrigger'
      responses:
        '200':
          description: http trigger updated
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/http_triggers/delete/{path}:
    delete:
      summary: Delete Http Trigger
      operationId: deleteHttpTrigger
      tags:
      - http_trigger
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      - $ref: '#/components/parameters/Path'
      responses:
        '200':
          description: http trigger deleted
          content:
            text/plain:
              schema:
                type: string
  /w/{workspace}/http_triggers/get/{path}:
    get:
      summary: Get Http Trigger
      operationId: getHttpTrigger
      tags:
      - http_trigger
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      - $ref: '#/components/parameters/Path'
      responses:
        '200':
          description: http trigger deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpTrigger'
  /w/{workspace}/http_triggers/list:
    get:
      summary: List Http Triggers
      operationId: listHttpTriggers
      tags:
      - http_trigger
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
        required: true
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PerPage'
      - name: path
        description: filter by path
        in: query
        schema:
          type: string
      - name: is_flow
        in: query
        schema:
          type: boolean
      - name: path_start
        in: query
        schema:
          type: string
      - name: label
        in: query
        required: false
        schema:
          type: string
        description: Filter by label
      responses:
        '200':
          description: http trigger list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/HttpTrigger'
  /w/{workspace}/http_triggers/exists/{path}:
    get:
      summary: Does Http Trigger Exists
      operationId: existsHttpTrigger
      tags:
      - http_trigger
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      - $ref: '#/components/parameters/Path'
      responses:
        '200':
          description: http trigger exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/http_triggers/route_exists:
    post:
      summary: Does Route Exists
      operationId: existsRoute
      tags:
      - http_trigger
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      requestBody:
        description: route exists request
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                route_path:
                  type: string
                http_method:
                  $ref: '#/components/schemas/HttpMethod'
                trigger_path:
                  type: string
                workspaced_route:
                  type: boolean
              required:
              - route_path
              - http_method
      responses:
        '200':
          description: route exists
          content:
            application/json:
              schema:
                type: boolean
  /w/{workspace}/http_triggers/setmode/{path}:
    post:
      summary: Enable/disable Http Trigger
      operationId: setHttpTriggerMode
      tags:
      - http_trigger
      parameters:
      - $ref: '#/components/parameters/WorkspaceId'
      - $ref: '#/components/parameters/Path'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                mode:
                  $ref: '#/components/schemas/TriggerMode'
                force:
                  type: boolean
                  description: 'Bypass the parent-state conflict warning when enabling a trigger in a fork whose parent has the same path enabled.

                    '
              required:
              - mode
      responses:
        '200':
          description: http trigger enable/disable
          content:
            text/plain:
              schema:
                type: string
components:
  schemas:
    HttpTrigger:
      allOf:
      - $ref: '#/components/schemas/TriggerExtraProperty'
      type: object
      properties:
        route_path:
          type: string
          description: The URL route path that will trigger this endpoint (e.g., 'api/myendpoint'). Must NOT start with a /.
        static_asset_config:
          type: object
          nullable: true
          description: Configuration for serving static assets (s3 bucket, storage path, filename)
          properties:
            s3:
              type: string
              description: S3 bucket path for static assets
            storage:
              type: string
              description: Storage path for static assets
            filename:
              type: string
              description: Filename for the static asset
          required:
          - s3
        http_method:
          $ref: '#/components/schemas/HttpMethod'
          description: HTTP method (get, post, put, delete, patch) that triggers this endpoint
        authentication_resource_path:
          type: string
          nullable: true
          description: Path to the resource containing authentication configuration (for api_key, basic_http, custom_script, signature methods)
        summary:
          type: string
          nullable: true
          description: Short summary describing the purpose of this trigger
        description:
          type: string
          nullable: true
          description: Detailed description of what this trigger does
        request_type:
          $ref: '#/components/schemas/HttpRequestType'
          description: How the request is handled - 'sync' waits for result, 'async' returns job ID immediately, 'sync_sse' streams results via Server-Sent Events
        authentication_method:
          $ref: '#/components/schemas/AuthenticationMethod'
          description: How requests are authenticated - 'none' (public), 'windmill' (Windmill token), 'api_key', 'basic_http', 'custom_script', 'signature'
        is_static_website:
          type: boolean
          description: If true, serves static files from S3/storage instead of running a script
        workspaced_route:
          type: boolean
          description: If true, the route includes the workspace ID in the path
        wrap_body:
          type: boolean
          description: If true, wraps the request body in a 'body' parameter
        raw_string:
          type: boolean
          description: If true, passes the request body as a raw string instead of parsing as JSON
        error_handler_path:
          type: string
          description: Path to a script or flow to run when the triggered job fails
        error_handler_args:
          $ref: '#/components/schemas/ScriptArgs'
          description: Arguments to pass to the error handler
        retry:
          $ref: ../../openflow.openapi.yaml#/components/schemas/Retry
          description: Retry configuration for failed executions
      required:
      - route_path
      - request_type
      - authentication_method
      - http_method
      - is_static_website
      - workspaced_route
      - wrap_body
      - raw_string
    HttpMethod:
      type: string
      enum:
      - get
      - post
      - put
      - delete
      - patch
    TriggerExtraProperty:
      type: object
      properties:
        path:
          type: string
          description: The unique Windmill path for this trigger. Must be of the form `u/<user>/<path>` or `f/<folder>/<path>`. This is the trigger object path, not the HTTP route path.
        script_path:
          type: string
          description: Path to the script or flow to execute when triggered
        permissioned_as:
          type: string
          description: The user or group this trigger runs as (permissioned_as)
        extra_perms:
          type: object
          description: Additional permissions for this trigger
          additionalProperties:
            type: boolean
        workspace_id:
          type: string
          description: The workspace this trigger belongs to
        edited_by:
          type: string
          description: Username of the last person who edited this trigger
        edited_at:
          type: string
          format: date-time
          description: Timestamp of the last edit
        is_flow:
          type: boolean
          description: True if script_path points to a flow, false if it points to a script
        mode:
          $ref: '#/components/schemas/TriggerMode'
          description: Trigger mode (enabled/disabled)
        labels:
          type: array
          items:
            type: string
          default: []
      required:
      - path
      - script_path
      - permissioned_as
      - extra_perms
      - workspace_id
      - edited_by
      - edited_at
      - is_flow
      - mode
    HttpRequestType:
      type: string
      enum:
      - sync
      - async
      - sync_sse
    AuthenticationMethod:
      type: string
      enum:
      - none
      - windmill
      - api_key
      - basic_http
      - custom_script
      - signature
    ScriptArgs:
      type: object
      description: The arguments to pass to the script or flow
      additionalProperties: true
    NewHttpTrigger:
      type: object
      properties:
        path:
          type: string
          description: The unique Windmill path for this trigger. Must be of the form `u/<user>/<path>` or `f/<folder>/<path>`. This is the trigger object path, not the HTTP route path.
        script_path:
          type: string
          description: Path to the script or flow to execute when triggered
        route_path:
          type: string
          description: The URL route path that will trigger this endpoint (e.g., 'api/myendpoint'). Must NOT start with a /.
        workspaced_route:
          type: boolean
          description: If true, the route includes the workspace ID in the path
        summary:
          type: string
          nullable: true
          description: Short summary describing the purpose of this trigger
        description:
          type: string
          nullable: true
          description: Detailed description of what this trigger does
        static_asset_config:
          type: object
          nullable: true
          description: Configuration for serving static assets (s3 bucket, storage path, filename)
          properties:
            s3:
              type: string
              description: S3 bucket path for static assets
            storage:
              type: string
              description: Storage path for static assets
            filename:
              type: string
              description: Filename for the static asset
          required:
          - s3
        is_flow:
          type: boolean
          description: True if script_path points to a flow, false if it points to a script
        http_method:
          $ref: '#/components/schemas/HttpMethod'
          description: HTTP method (get, post, put, delete, patch) that triggers this endpoint
        authentication_resource_path:
          type: string
          nullable: true
          description: Path to the resource containing authentication configuration (for api_key, basic_http, custom_script, signature methods)
        is_async:
          type: boolean
          description: Deprecated, use request_type instead
        request_type:
          $ref: '#/components/schemas/HttpRequestType'
          description: How the request is handled - 'sync' waits for result, 'async' returns job ID immediately, 'sync_sse' streams results via Server-Sent Events
        authentication_method:
          $ref: '#/components/schemas/AuthenticationMethod'
          description: How requests are authenticated - 'none' (public), 'windmill' (Windmill token), 'api_key', 'basic_http', 'custom_script', 'signature'
        is_static_website:
          type: boolean
          description: If true, serves static files from S3/storage instead of running a script
        wrap_body:
          type: boolean
          description: If true, wraps the request body in a 'body' parameter
        mode:
          $ref: '#/components/schemas/TriggerMode'
        raw_string:
          type: boolean
          description: If true, passes the request body as a raw string instead of parsing as JSON
        error_handler_path:
          type: string
          description: Path to a script or flow to run when the triggered job fails
        error_handler_args:
          $ref: '#/components/schemas/ScriptArgs'
          description: Arguments to pass to the error handler
        retry:
          $ref: ../../openflow.openapi.yaml#/components/schemas/Retry
          description: Retry configuration for failed executions
        permissioned_as:
          type: string
          description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
        preserve_permissioned_as:
          type: boolean
          description: When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it.
        labels:
          type: array
          items:
            type: string
      required:
      - path
      - script_path
      - route_path
      - is_flow
      - authentication_method
      - http_method
      - is_static_website
    TriggerMode:
      description: job trigger mode
      type: string
      enum:
      - enabled
      - disabled
      - suspended
    EditHttpTrigger:
      type: object
      properties:
        path:
          type: string
          description: The unique Windmill path for this trigger. Must be of the form `u/<user>/<path>` or `f/<folder>/<path>`. This is the trigger object path, not the HTTP route path.
        script_path:
          type: string
          description: Path to the script or flow to execute when triggered
        route_path:
          type: string
          description: The URL route path that will trigger this endpoint (e.g., 'api/myendpoint'). Must NOT start with a /.
        summary:
          type: string
          nullable: true
          description: Short summary describing the purpose of this trigger
        description:
          type: string
          nullable: true
          description: Detailed description of what this trigger does
        workspaced_route:
          type: boolean
          description: If true, the route includes the workspace ID in the path
        static_asset_config:
          type: object
          nullable: true
          description: Configuration for serving static assets (s3 bucket, storage path, filename)
          properties:
            s3:
              type: string
              description: S3 bucket path for static assets
            storage:
              type: string
              description: Storage path for static assets
            filename:
              type: string
              description: Filename for the static asset
          required:
          - s3
        authentication_resource_path:
          type: string
          nullable: true
          description: Path to the resource containing authentication configuration (for api_key, basic_http, custom_script, signature methods)
        is_flow:
          type: boolean
          description: True if script_path points to a flow, false if it points to a script
        http_method:
          $ref: '#/components/schemas/HttpMethod'
          description: HTTP method (get, post, put, delete, patch) that triggers this endpoint
        is_async:
          type: boolean
          description: Deprecated, use request_type instead
        request_type:
          $ref: '#/components/schemas/HttpRequestType'
          description: How the request is handled - 'sync' waits for result, 'async' returns job ID immediately, 'sync_sse' streams results via Server-Sent Events
        authentication_method:
          $ref: '#/components/schemas/AuthenticationMethod'
          description: How requests are authenticated - 'none' (public), 'windmill' (Windmill token), 'api_key', 'basic_http', 'custom_script', 'signature'
        is_static_website:
          type: boolean
          description: If true, serves static files from S3/storage instead of running a script
        wrap_body:
          type: boolean
          description: If true, wraps the request body in a 'body' parameter
        raw_string:
          type: boolean
          description: If true, passes the request body as a raw string instead of parsing as JSON
        error_handler_path:
          type: string
          description: Path to a script or flow to run when the triggered job fails
        error_handler_args:
          $ref: '#/components/schemas/ScriptArgs'
          description: Arguments to pass to the error handler
        retry:
          $ref: ../../openflow.openapi.yaml#/components/schemas/Retry
          description: Retry configuration for failed executions
        permissioned_as:
          type: string
          description: The user or group this trigger runs as. Used during deployment to preserve the original trigger owner.
        preserve_permissioned_as:
          type: boolean
          description: When true and the caller is a member of the 'wm_deployers' group, preserves the original permissioned_as value instead of overwriting it.
        labels:
          type: array
          items:
            type: string
      required:
      - path
      - script_path
      - is_flow
      - kind
      - authentication_method
      - http_method
      - is_static_website
  parameters:
    WorkspaceId:
      name: workspace
      in: path
      required: true
      schema:
        type: string
    Path:
      name: path
      in: path
      required: true
      schema:
        type: string
    PerPage:
      name: per_page
      description: number of items to return for a given page (default 30, max 100)
      in: query
      schema:
        type: integer
    Page:
      name: page
      description: which page to return (start at 1, default 1)
      in: query
      schema:
        type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
    cookieAuth:
      type: apiKey
      in: cookie
      name: token
externalDocs:
  description: documentation portal
  url: https://windmill.dev