---
type: api
title: Get all case templates
description: **Spaces method and path for this operation:**
url: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/kibana/operation/operation-getcasetemplatesdefaultspace
resource: https://www.elastic.co/elastic/docs-builder/docs/4371/api/doc/kibana/operation/operation-getcasetemplatesdefaultspace
products:
  - Kibana
---

# Get all case templates

- Server: `https://{kibana_url}`

## Paths

- `GET` `/api/cases/templates`
- `GET` `/s/{space_id}/api/cases/templates`

- [Api key auth](/elastic/docs-builder/docs/4371/api/doc/kibana/authentication#apikeyauth)
- [Basic auth](/elastic/docs-builder/docs/4371/api/doc/kibana/authentication#basicauth)

## Description

Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.

Returns a paginated list of case templates. Requires the Cases feature to be enabled in the space.

## Query String Parameters

- `page` (integer · default: 1)
  The page number to return.
- `perPage` (integer · max: 100 · default: 20)
  The number of items to return. Limited to 100 items.
- `sortField` (enum  · default: name)
  Determines which field is used to sort the results.
  Values: `templateId`, `name`, `templateVersion`, `owner`, `deletedAt`, `author`, `usageCount`, `fieldCount`, `lastUsedAt`, `isDefault`, `isLatest`
- `sortOrder` (enum  · default: desc)
  Determines the sort order.
  Values: `asc`, `desc`
- `search` (string)
  An Elasticsearch simple_query_string query that filters the objects in the response.
- `owner` (union oneOf)
  A filter to limit the response to a specific set of applications. If this parameter is omitted, the response contains information about all the cases that the user has access to read.
  Values: `cases`, `observability`, `securitySolution`
- `tags` (union string | [] string)
  Filters the returned templates by tags.
  One of: `string` or `string[]`
- `author` (union string | [] string)
  Filters the returned templates by author username.
  One of: `string` or `string[]`
- `isEnabled` (boolean)
  Filters the returned templates by their enabled state.

## Responses

#### `200`

Indicates a successful call.

`application/json`

- `page` (integer)
  The page number of the returned results.
- `perPage` (integer)
  The number of results per page.
- `templates` ([] object)
  - `author` (string · max: 1000)
    The username of the template author.
  - `definition` (object)
    The parsed template definition.
  - `definitionString` (string · max: 30000)
    The raw YAML definition string.
  - `deletedAt` (string) — nullable
    The date the template was soft-deleted, or null if active.
  - `description` (string · max: 30000)
    A human-readable description of the template.
  - `fieldCount` (integer)
    The number of fields defined in the template.
  - `fieldDefinitions` ([] object)
    Metadata about each field defined in the template.
    - `control` (string · max: 50)
    - `label` (string · max: 256)
    - `name` (string · max: 256)
    - `type` (string · max: 50)
  - `isDefault` (boolean)
    Whether this is the default template for its owner.
  - `isEnabled` (boolean)
    Whether the template is enabled.
  - `isLatest` (boolean)
    Whether this is the latest version of the template.
  - `lastUsedAt` (string)
    The date the template was last used to create a case.
  - `latestVersion` (integer)
    The latest version number of this template.
  - `name` (string · max: 100)
    The display name of the template.
  - `owner` (string · max: 50)
    The owning solution (e.g. cases, observability, securitySolution).
  - `tags` ([] object · max: 200)
    The words and phrases that help categorize templates. It can be an empty array.
  - `templateId` (string · max: 36)
    The unique identifier of the template, shared across all versions.
  - `templateVersion` (integer)
    The version number of this template revision.
  - `usageCount` (integer)
    The number of times this template has been used to create a case.
  - `fieldSearchMatches` (boolean)
    Whether the search query matched a field name in this template.
- `total` (integer)
  The total number of templates matching the query.
#### `401`

Authorization information is missing or invalid.

`application/json`

- `error` (string)
- `message` (string)
- `statusCode` (integer)
## Code Examples

#### Console

```console
GET /api/cases/templates
```

#### curl

```curl
curl -X GET "https://{kibana_url}/api/cases/templates"
```

## Response Examples

#### A paginated list of case templates.

```json
{
  "page": 1,
  "perPage": 20,
  "templates": [
    {
      "definition": {},
      "definitionString": "fields: []",
      "deletedAt": "null",
      "fieldSearchMatches": false,
      "isLatest": true,
      "latestVersion": 1,
      "name": "My Template",
      "owner": "cases",
      "templateId": "9da1ea2a-09f8-4d0e-bf9d-09bf8c9d0f42",
      "templateVersion": 1
    }
  ],
  "total": 1
}
```

#### Authorization information is missing or invalid.

```json
{
  "error": "Unauthorized",
  "message": "Unable to authenticate with the provided credentials.",
  "statusCode": 401
}
```

