---
title: "Get templates"
method: GET
path: "/api/v2/templates"
tags: ["Templates"]
---

# Get templates

`GET /api/v2/templates`

List templates the requester has access to. Supports filtering by id, project, target type (with `deal`/`budget` discriminated via the underlying quote), free-text query, and a task-template-only `task_project_id` filter.

## Query parameters

- `sort` string[]
- `filter` union — Top-level filter envelope — either an advanced grouped filter with `$op` (`and`/`or`) and numeric sub-filter keys, or the flat filter object.
  - object — Advanced grouped filter — combine sub-filters with `$op` (`and`/`or`).
    - `$op` 'or' | 'and', required — Boolean connective applied to the grouped sub-filters under this filter root.
  - FilterTemplate — Filterable fields for the templates collection. Each property supports operator-keyed lookups (`eq`, `not_eq`, `contains`, `not_contain`) and a bare value form.
    - `target_id` union — Id of the wrapped target.
      - TargetId — unresolved $ref
      - object — Operator-keyed filter form — choose one of `eq`, `not_eq`, `contains`, `not_contain`.
        - `not_contain` TargetId — unresolved $ref
        - `eq` TargetId — unresolved $ref
        - `contains` TargetId — unresolved $ref
        - `not_eq` TargetId — unresolved $ref
    - `id` union — Numeric identifier of the template.
      - Id — unresolved $ref
      - object — Operator-keyed filter form — choose one of `eq`, `not_eq`, `contains`, `not_contain`.
        - `not_eq` Id — unresolved $ref
        - `eq` Id — unresolved $ref
        - `not_contain` Id — unresolved $ref
        - `contains` Id — unresolved $ref
    - `target_type` union — Identifies which entity type the template wraps. On create, selects the per-target `model_attributes` shape. `task` is read-only.
      - object — Operator-keyed filter form — choose one of `eq`, `not_eq`, `contains`, `not_contain`.
        - `not_eq` TargetType — unresolved $ref
        - `eq` TargetType — unresolved $ref
      - TargetType — unresolved $ref
    - `task_project_id` union — Filter-only field — limits task templates (`target_type=task`) to those whose underlying task belongs to the given project.
      - object — Operator-keyed filter form — choose one of `eq`, `not_eq`, `contains`, `not_contain`.
        - `contains` TaskProjectId — unresolved $ref
        - `eq` TaskProjectId — unresolved $ref
        - `not_eq` TaskProjectId — unresolved $ref
        - `not_contain` TaskProjectId — unresolved $ref
      - TaskProjectId — unresolved $ref
    - `project_id` union — Project identifier — filterable to scope templates to a specific project context.
      - object — Operator-keyed filter form — choose one of `eq`, `not_eq`, `contains`, `not_contain`.
        - `eq` ProjectId — unresolved $ref
        - `contains` ProjectId — unresolved $ref
        - `not_contain` ProjectId — unresolved $ref
        - `not_eq` ProjectId — unresolved $ref
      - ProjectId — unresolved $ref
    - `query` union — Free-text query — matches against the wrapped target name.
      - object — Operator-keyed filter form — choose one of `eq`, `not_eq`, `contains`, `not_contain`.
        - `not_contain` Query — unresolved $ref
        - `not_eq` Query — unresolved $ref
        - `eq` Query — unresolved $ref
        - `contains` Query — unresolved $ref
      - Query — unresolved $ref

## Headers

- `X-Organization-Id` string, required

## Response `200`

Successful response containing a paginated list of templates.

---

[API](https://skmtc.net/productive/apis/api-documentation.md) · [All operations](https://skmtc.net/productive/apis/api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/productive/api-documentation/revisions/7764b2b9fcc4/schema)
