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

# List Templates

> List available workspace templates. This endpoint is public -- no auth required.



## OpenAPI

````yaml GET /api/v1/templates
openapi: 3.1.0
info:
  title: Rigbox Public API
  description: >-
    Gateway-owned public API for Rigbox. The gateway composes its local
    lifecycle API with service-owned exported specs.
  contact:
    name: Rigbox
    url: https://rigbox.dev
  license:
    name: ''
  version: 1.0.0
servers:
  - url: https://api.rigbox.dev
    description: Production gateway
security: []
tags:
  - name: Workspaces
  - name: CLI
  - name: Observability
  - name: Auth
  - name: API Keys
  - name: Access Control
  - name: Apps
  - name: App Catalog
  - name: Logs
  - name: AI
  - name: Tools
  - name: Snapshots
  - name: SSH Keys
  - name: Templates
  - name: Setup Scripts
  - name: Service Specs
  - name: Deploy
  - name: Community
  - name: User Settings
  - name: Roadmap
  - name: System
paths:
  /api/v1/templates:
    get:
      tags:
        - Templates
      summary: List available workspace templates.
      description: List all workspace templates available for creating new workspaces.
      operationId: list_templates
      responses:
        '200':
          description: List of available workspace templates
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplatesResponse'
components:
  schemas:
    TemplatesResponse:
      type: object
      required:
        - templates
      properties:
        templates:
          type: array
          items:
            $ref: '#/components/schemas/WorkspaceTemplate'
    WorkspaceTemplate:
      type: object
      required:
        - id
        - name
        - description
        - icon
        - image
        - ram_mb
        - vcpu_count
        - disk_size_mb
        - category
        - default_log_sources
      properties:
        category:
          type: string
        coming_soon:
          type: boolean
          description: If true, template is shown in UI but cannot be deployed yet.
        default_log_sources:
          type: array
          items:
            $ref: '#/components/schemas/TemplateLogSourcePreset'
        description:
          type: string
        disk_size_mb:
          type: integer
          format: int32
          minimum: 0
        env_file_copies:
          type: array
          items:
            type: string
          description: Copy .env to these additional paths at first boot.
        expected_apps:
          type: array
          items:
            $ref: '#/components/schemas/TemplateExpectedApp'
        has_tools:
          type: boolean
          description: >-
            If true, this image ships the tools binary (ArchX, Virtual Browser,
            etc.).
        icon:
          type: string
        id:
          type: string
        image:
          type: string
        image_bound:
          type: boolean
          description: |-
            True when this template's apps/services live inside the image
            (e.g. firecrawl, openclaw) rather than being installed onto a
            minimal base image at provision time. Mirrors the rule in
            `domain::community::export::image_bound` so the catalog and
            /templates UI can show the same `composable` / `image-bound`
            distinction.
        name:
          type: string
        ram_mb:
          type: integer
          format: int32
          minimum: 0
        service_patches:
          type: array
          items:
            $ref: '#/components/schemas/ServicePatchSpec'
          description: Systemd services to patch with EnvironmentFile at first boot.
        vcpu_count:
          type: integer
          format: int32
          minimum: 0
        verify_binaries:
          type: array
          items:
            type: string
          description: Binaries to verify exist at first boot.
        workspace_services:
          type: array
          items:
            $ref: '#/components/schemas/WorkspaceServiceSpec'
          description: >-
            Backing services (databases, caches, brokers) provisioned alongside
            this workspace.

            Created as workspace_services records during quick-deploy.
    TemplateLogSourcePreset:
      type: object
      required:
        - source_type
        - source_ref
      properties:
        display_name:
          type:
            - string
            - 'null'
        is_primary:
          type: boolean
        source_ref:
          type: string
        source_type:
          type: string
    TemplateExpectedApp:
      type: object
      required:
        - name
        - port
        - system_tags
        - protocol
        - managed
      properties:
        configurable_params:
          type: array
          items:
            $ref: '#/components/schemas/ParamSpec'
          description: >-
            User-configurable parameters for this expected app.

            Values are submitted at deploy time via `app_params` in
            QuickDeployRequest.
        depends_on:
          type: array
          items:
            type: string
          description: >-
            Workspace services this app depends on (by name, e.g. "postgresql",
            "redis-server").
        managed:
          type: boolean
        name:
          type: string
        port:
          type: integer
          format: int32
          minimum: 0
        protocol:
          type: string
        system_tags:
          type: array
          items:
            type: string
        usage_examples:
          type: array
          items:
            $ref: '#/components/schemas/UsageExample'
          description: >-
            Copy-pasteable API usage examples shown in the app detail "Usage"
            tab.

            Placeholders: `{SUBDOMAIN}`, `{CRED_<key>}` - resolved client-side.
    ServicePatchSpec:
      type: object
      description: Specification for patching a systemd service with an EnvironmentFile.
      required:
        - unit_name
        - env_file_path
      properties:
        env_file_path:
          type: string
          description: Path to the env file to add (e.g. "/home/developer/.openclaw/.env").
        remove_env_patterns:
          type: array
          items:
            type: string
          description: >-
            Environment= lines to remove if found (e.g.
            ["OPENCLAW_GATEWAY_TOKEN"]).
        unit_name:
          type: string
          description: Systemd unit name (e.g. "rigbox-svc-openclaw-gateway.service").
    WorkspaceServiceSpec:
      type: object
      description: |-
        A backing service required by the workspace (database, cache, broker).
        Created as workspace_services records during quick-deploy.
      required:
        - name
        - kind
        - unit_name
        - health_cmd
        - exposed
      properties:
        exposed:
          type: boolean
        health_cmd:
          type: string
        kind:
          type: string
        log_sources:
          type: array
          items:
            $ref: '#/components/schemas/TemplateLogSourcePreset'
        name:
          type: string
        port:
          type:
            - integer
            - 'null'
          format: int32
          minimum: 0
        unit_name:
          type: string
    ParamSpec:
      type: object
      description: >-
        One configurable parameter declared by a template expected app or
        catalog item.


        The `key` is used as the `{PARAM_<KEY>}` placeholder (upper-cased) in

        install scripts, exec_start, and config_file JSON values.
      required:
        - key
        - label
        - param_type
      properties:
        default:
          type: string
          description: Pre-filled value (empty string = no default).
        description:
          type: string
          description: Longer description / hint text shown below the field.
        group:
          type:
            - string
            - 'null'
          description: Visual group header for related params.
        help_url:
          type:
            - string
            - 'null'
          description: Help URL (e.g. docs for getting an API key).
        key:
          type: string
          description: Machine key, e.g. `"telegram_bot_token"`.
        label:
          type: string
          description: Human-readable label for the UI.
        options:
          type: array
          items:
            $ref: '#/components/schemas/ParamOption'
          description: Selectable options for `ParamType::Select`.
        order:
          type: integer
          format: int32
          description: Display order within the group (lower = higher).
        param_type:
          $ref: '#/components/schemas/ParamType'
          description: Determines the UI element and basic validation.
        required:
          type: boolean
          description: If true, deploy is blocked when the value is empty.
        sensitive:
          type: boolean
          description: If true, render as password field and mask in API responses.
        validation_pattern:
          type:
            - string
            - 'null'
          description: Optional regex the submitted value must match.
    UsageExample:
      type: object
      description: A copy-pasteable API usage example for a template app.
      required:
        - language
        - label
        - code
      properties:
        code:
          type: string
          description: Code snippet with optional placeholders
        description:
          type: string
          description: Optional description shown below the code block
        label:
          type: string
          description: Human-readable label for this example
        language:
          type: string
          description: 'Language/format identifier: "curl", "python", "javascript"'
    ParamOption:
      type: object
      description: A selectable option for `ParamType::Select` fields.
      required:
        - value
        - label
      properties:
        label:
          type: string
        value:
          type: string
    ParamType:
      type: string
      description: Data type for validation + UI element selection.
      enum:
        - string
        - secret
        - email
        - url
        - number
        - boolean
        - select
        - textarea

````