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

# List workflow templates

> Lists workflow templates visible to the caller: built-in templates plus the authenticated organization's own templates. Available to any organization member.



## OpenAPI

````yaml https://api.app.chainloop.dev/openapi.yaml get /v1/workflow-templates
openapi: 3.0.1
info:
  contact:
    email: support@chainloop.dev
    name: Chainloop Support
    url: https://chainloop.dev
  termsOfService: https://chainloop.dev/terms
  title: Chainloop Platform API
  version: '1.0'
servers:
  - url: https://api.app.chainloop.dev/
security:
  - bearerToken: []
tags:
  - description: AI-powered agent operations
    name: AgentsService
  - name: ArtifactService
  - name: AssessmentService
  - description: Service for polling the status of asynchronous operations
    name: AsyncOperationsService
  - name: AttestationsService
  - name: PolicyService
  - name: ComplianceService
  - name: ComponentService
  - name: EnvironmentsService
  - name: EvidenceService
  - name: FindingService
  - name: LinearService
  - name: LogicalEnvironmentsService
  - name: ProductsService
  - name: ProjectsService
  - name: UserService
  - name: WorkflowTemplateService
externalDocs:
  description: Chainloop Official Documentation
  url: https://docs.chainloop.dev
paths:
  /v1/workflow-templates:
    get:
      tags:
        - WorkflowTemplateService
      summary: List workflow templates
      description: >-
        Lists workflow templates visible to the caller: built-in templates plus
        the authenticated organization's own templates. Available to any
        organization member.
      operationId: WorkflowTemplateService_List
      parameters:
        - description: >-
            Filter by builtin templates: true for builtin only, false for custom
            only, omit for all


            Filter by builtin templates: true for builtin only, false for custom
            only, omit for all
          in: query
          name: builtin
          schema:
            type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1WorkflowTemplateServiceListResponse'
          description: A successful response.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1BadRequestResponse'
          description: Bad Request - The request was invalid or cannot be served.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1UnauthorizedResponse'
          description: Unauthorized - Authentication is required.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1PermissionDeniedResponse'
          description: Forbidden - You do not have permission to access this resource.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1InternalServerErrorResponse'
          description: Internal Server Error - An unexpected error occurred on the server.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
components:
  schemas:
    v1WorkflowTemplateServiceListResponse:
      example:
        templates:
          - singleton: true
            delivery:
              - DELIVERY_MODE_UNSPECIFIED
              - DELIVERY_MODE_UNSPECIFIED
            inputs_json_schema: inputs_json_schema
            builtin: true
            description: description
            annotations:
              key: annotations
            created_at: '2000-01-23T04:56:07.000Z'
            manual_installation_description: manual_installation_description
            display_name: display_name
            updated_at: '2000-01-23T04:56:07.000Z'
            organization_id: organization_id
            name: name
            id: id
          - singleton: true
            delivery:
              - DELIVERY_MODE_UNSPECIFIED
              - DELIVERY_MODE_UNSPECIFIED
            inputs_json_schema: inputs_json_schema
            builtin: true
            description: description
            annotations:
              key: annotations
            created_at: '2000-01-23T04:56:07.000Z'
            manual_installation_description: manual_installation_description
            display_name: display_name
            updated_at: '2000-01-23T04:56:07.000Z'
            organization_id: organization_id
            name: name
            id: id
      properties:
        templates:
          items:
            $ref: '#/components/schemas/v1WorkflowTemplateItem'
          type: array
      type: object
    v1BadRequestResponse:
      description: Response for bad request
      example:
        code: 0
        details:
          - details
          - details
        message: message
      properties:
        code:
          default: 3
          description: >-
            The error code indicating the type of error. It's fixed to 3, which
            is the code for INVALID_ARGUMENT.
          format: int32
          type: integer
        message:
          description: A human-readable message providing more details about the error.
          type: string
        details:
          description: Additional details about the error.
          items:
            type: string
          type: array
      required:
        - code
        - message
      title: BadRequestResponse
      type: object
    v1UnauthorizedResponse:
      description: Response for unauthorized access
      example:
        code: 6
        details:
          - details
          - details
        message: message
      properties:
        code:
          default: 16
          description: >-
            The error code indicating the type of error. It's fixed to 16, which
            is the code for UNAUTHENTICATED.
          format: int32
          type: integer
        message:
          description: A human-readable message providing more details about the error.
          type: string
        details:
          description: Additional details about the error.
          items:
            type: string
          type: array
      required:
        - code
        - message
      title: UnauthorizedResponse
      type: object
    v1PermissionDeniedResponse:
      description: Response for permission denied
      example:
        code: 1
        details:
          - details
          - details
        message: message
      properties:
        code:
          default: 7
          description: >-
            The error code indicating the type of error. It's fixed to 7, which
            is the code for PERMISSION_DENIED.
          format: int32
          type: integer
        message:
          description: A human-readable message providing more details about the error.
          type: string
        details:
          description: Additional details about the error.
          items:
            type: string
          type: array
      required:
        - code
        - message
      title: PermissionDeniedResponse
      type: object
    v1InternalServerErrorResponse:
      description: Response for internal server error
      example:
        code: 5
        details:
          - details
          - details
        message: message
      properties:
        code:
          default: 13
          description: >-
            The error code indicating the type of error. It's fixed to 13, which
            is the code for INTERNAL_ERROR.
          format: int32
          type: integer
        message:
          description: A human-readable message providing more details about the error.
          type: string
        details:
          description: Additional details about the error.
          items:
            type: string
          type: array
      required:
        - code
        - message
      title: InternalServerErrorResponse
      type: object
    rpcStatus:
      example:
        code: 5
        details:
          - '@type': '@type'
          - '@type': '@type'
        message: message
      properties:
        code:
          format: int32
          type: integer
        message:
          type: string
        details:
          items:
            $ref: '#/components/schemas/protobufAny'
          type: array
      type: object
    v1WorkflowTemplateItem:
      description: >-
        WorkflowTemplateItem is the read model for a workflow template, exposing
        its

        metadata. The raw contract body is intentionally omitted.
      example:
        singleton: true
        delivery:
          - DELIVERY_MODE_UNSPECIFIED
          - DELIVERY_MODE_UNSPECIFIED
        inputs_json_schema: inputs_json_schema
        builtin: true
        description: description
        annotations:
          key: annotations
        created_at: '2000-01-23T04:56:07.000Z'
        manual_installation_description: manual_installation_description
        display_name: display_name
        updated_at: '2000-01-23T04:56:07.000Z'
        organization_id: organization_id
        name: name
        id: id
      properties:
        id:
          title: Unique identifier of the template
          type: string
        name:
          title: Machine-readable template name (DNS-1123 compliant, globally unique)
          type: string
        display_name:
          title: Human-readable display name
          type: string
        description:
          title: Description of the template's purpose
          type: string
        delivery:
          items:
            $ref: '#/components/schemas/PlatformWorkflowTemplateDeliveryMode'
          title: Supported delivery modes for this template
          type: array
        singleton:
          title: >-
            Whether only one instance per repository is allowed (i.e. it does
            not support more than one instance)
          type: boolean
        manual_installation_description:
          title: Markdown instructions for manual/self-service setup
          type: string
        annotations:
          additionalProperties:
            type: string
          title: Arbitrary key-value metadata associated with the template
          type: object
        created_at:
          format: date-time
          title: When the template was created
          type: string
        updated_at:
          format: date-time
          title: When the template was last updated
          type: string
        inputs_json_schema:
          description: >-
            JSON Schema (draft 2020-12) describing the template's configurable
            inputs.

            Empty when the template declares no inputs. Mirrors the policy
            inputs_json_schema

            field so the frontend can render it through the same JSON-schema
            path.
          type: string
        builtin:
          description: Whether this template is builtin or custom
          title: Whether this template is built-in (global) or org-scoped/custom
          type: boolean
        organization_id:
          description: >-
            ID of the organization owning this template (empty for builtin
            templates)
          title: >-
            ID of the organization owning this template (empty for builtin
            templates)
          type: string
      type: object
    protobufAny:
      additionalProperties:
        type: object
      example:
        '@type': '@type'
      properties:
        '@type':
          type: string
      type: object
    PlatformWorkflowTemplateDeliveryMode:
      default: DELIVERY_MODE_UNSPECIFIED
      enum:
        - DELIVERY_MODE_UNSPECIFIED
        - DELIVERY_MODE_MANUAL
        - DELIVERY_MODE_MANAGED
      title: |-
        DeliveryMode specifies how the workflow is delivered
        buf:lint:ignore ENUM_VALUE_PREFIX
      type: string
  securitySchemes:
    bearerToken:
      description: Bearer token for authentication
      type: http
      scheme: bearer
      bearerFormat: JWT

````