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

# List templates

> **Token scope:** `account` · `org` · `project` — read-only tokens allowed.

List published templates in the platform registry. Public — no auth required.



## OpenAPI

````yaml /openapi/account.json get /templates
openapi: 3.1.0
info:
  title: InstaCloud API — Account level
  version: 0.1.0
  description: >-
    Endpoints that act as the token's owner: their organizations, their API
    tokens, and the public catalog. Creating an organization needs an
    account-wide token.


    Generated from the platform's own OpenAPI document
    (https://api.instacloud.com/openapi.json); see the [API
    overview](/reference/api/overview) for authentication and token scopes.
servers:
  - url: https://api.instacloud.com
    description: InstaCloud
security:
  - bearerAuth: []
tags:
  - name: Account
    description: The caller, their organizations and API tokens.
  - name: Catalog
    description: 'Public catalogs: templates and regions. No token needed.'
paths:
  /templates:
    get:
      tags:
        - Catalog
      summary: List templates
      description: >-
        **Token scope:** `account` · `org` · `project` — read-only tokens
        allowed.


        List published templates in the platform registry. Public — no auth
        required.
      operationId: listTemplates
      parameters:
        - schema:
            type: string
          in: query
          name: query
          required: false
          description: substring filter over code/name/tagline/tags
        - schema:
            type: string
          in: query
          name: category
          required: false
          description: exact category filter (case-insensitive)
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  templates:
                    type: array
                    items:
                      $ref: '#/components/schemas/TemplateListItem'
                required:
                  - templates
      security: []
components:
  schemas:
    TemplateListItem:
      type: object
      properties:
        code:
          type: string
        version:
          type: string
        maintainer:
          description: >-
            who publishes it, as the manifest declares ('official' for
            InstaCloud's own)
          type: string
        source:
          description: >-
            the registry row's publisher tag, set at publish; defaults to the
            maintainer
          type: string
        name:
          type: string
        tagline:
          type: string
        category:
          type: string
        tags:
          type: array
          items:
            type: string
        totalProjects:
          description: >-
            distinct PROJECTS that ever deployed this template (any outcome) —
            the adoption number; one project deploying repeatedly counts once
          type: integer
        activeProjects:
          description: >-
            distinct PROJECTS that still have at least one live service from a
            SUCCEEDED deployment of this template (service in creating/active;
            deleting, errored or deleted services do not keep a project active)
            — what a visitor reads as "running this now"
          type: integer
        successRate:
          description: >-
            share of the CONCLUDED deployments of this template that reached
            succeeded, as a whole percent. Denominator: deployments with status
            succeeded + failed + partial, EXCLUDING runs abandoned by a platform
            restart (a platform release must not count against a template) and
            excluding running deployments (not concluded). A partial deployment
            counts as a failure. This is a per-DEPLOYMENT rate, not per attempt:
            an idempotent retry reuses its deployment row. null (never 0) when
            nothing has concluded — no data is not 0%
          type:
            - integer
            - 'null'
        deploymentCount:
          description: >-
            cumulative DEPLOYMENT runs for this code (every run ever) — the
            deployment-unit counterpart of totalProjects
          type: integer
        activeDeploymentCount:
          description: >-
            DEPLOYMENT runs that succeeded and still have a live attributed
            service — the deployment-unit counterpart of activeProjects
          type: integer
        logoUrl:
          description: >-
            absolute https logo URL, served by the CDN in front of the public
            registry repo (cdn.jsdelivr.net) and pinned to the publishing merge
            SHA; null when the template published no logo. See
            templateManifest.ts TEMPLATE_LOGO_HOST for the enforced host.
          type:
            - string
            - 'null'
        license:
          description: >-
            the upstream project's license id, from the manifest's
            upstream.license; null when the manifest declares none
          type:
            - string
            - 'null'
        updatedAt:
          format: date-time
          description: when this template was last published — the catalog freshness stamp
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Session access JWT or an API token (`insta_<prefix>_<secret>`).

````