---
title: "List Cluster Templates"
method: POST
path: "/v1/templates/clusters"
tags: ["Templates", "Cluster Templates"]
---

# List Cluster Templates

`POST /v1/templates/clusters`

List cluster templates (system + organization + user).

Supports filtering, sorting, and search like other list operations.

## Request body

- ListTemplatesRequest — Request model for listing templates. Provides the same filtering, sorting, and search capabilities as other list operations (list collections, list buckets, etc.).
  - `filters` object, nullable — Filters to apply when listing templates. Format: {"AND": [{"field": "field_name", "operator": "eq", "value": "value"}]}
  - `sort` object, nullable — Sort options for the results. Format: {'field': 'name', 'direction': 'asc'}
  - `search` string, nullable — Search term for wildcard search across template_id, name, description, and tags
  - `scope` 'system' | 'organization' | 'user' | 'public' — Scope of template availability. system: Mixpeek-provided, available to all orgs organization: Private to org members user: Private to creator only public: User-created, discoverable by all orgs (marketplace)
  - `category` string, nullable — Filter by category
  - `is_active` boolean — Show only active templates
  - `tags` string[], nullable — Filter by tags (templates must have ALL specified tags)

## Response `200`

Successful Response

- ListTemplatesResponse — Response model for listing templates.
  - `results` BaseTemplateModel[], required — List of templates
    - `template_id` string, required — Unique template identifier (e.g., 'tmpl_semantic_search')
    - `template_type` 'namespace' | 'retriever' | 'cluster' | 'collection' | 'bucket' | 'taxonomy' | 'scaffold', required — Types of resources that can be templated.
    - `mode` 'scaffold' | 'config' | 'clone' — Mode of template instantiation. scaffold: Create from pre-built preset - Creates: namespace + bucket + collection + retriever - Endpoint: POST /templates/scaffolds/{id}/instantiate - All resources empty, ready for data config: Copy resource configuration only - Creates: empty resource with same settings - Endpoint: POST /templates/{resource}/{id}/instantiate - No data copied clone: Copy resource with all data - Creates: full copy including vectors/embeddings - Endpoint: POST /namespaces/{id}/clone - For config-only, use templates instead
    - `scope` 'system' | 'organization' | 'user' | 'public', required — Scope of template availability. system: Mixpeek-provided, available to all orgs organization: Private to org members user: Private to creator only public: User-created, discoverable by all orgs (marketplace)
    - `internal_id` string, required — Organization internal ID. For system templates, use 'system'. For org templates, use the actual internal_id.
    - `name` string, required — Human-readable template name
    - `description` string, required — Detailed description of the template's purpose
    - `category` string, nullable — Optional category for organizing templates
    - `configuration` object, required — Template-specific configuration (varies by template_type)
    - `tags` string[] — Tags for categorizing and filtering templates
    - `is_active` boolean — Whether this template is available for use
    - `is_public` boolean — Whether this template is publicly discoverable without authentication
    - `use_cases` string[] — List of common use cases for this template
    - `requirements` string[] — List of requirements (e.g., 'Requires text embeddings')
    - `created_by` string, nullable — User ID who created this template (for org templates)
    - `source_resource_id` string, nullable — ID of the resource this template was created from (for org templates)
    - `sample_namespace_id` string, nullable — Reference to a sample/golden namespace for this scaffold (used for Studio quickstart cloning)
    - `example_queries` string[] — Runnable example queries for this template's sample data; the first renders on the card
    - `whats_inside` string, nullable — One-sentence description of the sample corpus (what you get, with counts)
    - `materialize_estimate` string, nullable — Honest time estimate for sample data to become searchable after instantiate
    - `created_at` string, date-time — Timestamp when template was created
    - `updated_at` string, date-time — Timestamp when template was last updated
  - `total_count` integer, required — Total number of templates matching the query

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/mixpeek/apis/mixpeek-api.md) · [All operations](https://skmtc.net/mixpeek/apis/mixpeek-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mixpeek/mixpeek-api/versions/04b379bdbb7c/schema)
