---
title: "Discover Template"
method: GET
path: "/api/v1/templates/{template_id}"
tags: ["Templates"]
---

# Discover Template

`GET /api/v1/templates/{template_id}`

## Request

- Base URL: `https://api.todoist.com`
- URL: `https://api.todoist.com/api/v1/templates/{template_id}`
- Auth: none declared

Get one template. A `UT_` ID requires `data:read`; invisible or missing IDs return 404.

## Path parameters

- `template_id` string, required: A curated template slug or a saved template ID prefixed with `UT_`.

## Query parameters

- `locale` string: Content locale. Unsupported locales fall back to English.

## Response `200`

Successful Response

- PublicTemplate
  - `id` string, required: Curated template slug or saved template ID (UT_ prefix).
  - `name` string, required: Display name.
  - `template_type` 'setup' | 'project', required: Project template or a complete setup.
  - `short_description` string, required: Short template description.
  - `long_description` string, required: Full template description.
  - `instructions` string, nullable, required: Template instructions, or null.
  - `import_url` string, nullable: Curated template import URL. Omitted for saved templates.
  - `view_type` 'list' | 'board' | 'calendar', nullable: Project view. Omitted for setup templates and nullable for curated projects.
  - `thumbnail_image` string, nullable, required: Thumbnail image for curated templates, or null.
  - `thumbnail_image_dark` string, nullable, required: Thumbnail image dark for curated templates, or null.
  - `cover_image` string, nullable, required: Deprecated alias for thumbnail_image.
  - `preview_image` string, nullable, required: Preview image for curated templates, or null.
  - `template_color` string, nullable, required: Saved template color name. Null for curated templates.
  - `background_color` string, nullable, required: Background color for curated templates, or null.
  - `background_color_dark` string, nullable, required: Background color dark for curated templates, or null.
  - `creator` Person, required
    - `user_id` string: Todoist user ID. Omitted for curated creators and deleted accounts.
    - `name` string, required: Display name.
    - `position` string, required: Creator position. Empty for Todoist users.
    - `avatar` string, required: Avatar image URL. Deleted accounts use a placeholder.
  - `seo` ContentfulSeo, required
    - `title` string, required: Display title.
    - `description` string, nullable, required: Description. May be null when no description is available.
  - `more_resources` ContentfulLink[], required: Related links for curated templates.
    - `title` string, required: Display title.
    - `url` string, required: Resource URL.
  - `category_ids` string[], required: Curated category slugs. Empty for saved templates.
  - `project_count` integer, nullable: Number of projects in a curated setup, if known.
  - `label_count` integer, nullable: Number of labels in a curated setup, if known.
  - `filter_count` integer, nullable: Number of filters in a curated setup, if known.
  - `video_url` string, nullable: Video url for curated templates, or null.
  - `video_preview_image_url` string, nullable: Video preview image url for curated templates, or null.
  - `video_thumbnail_image` string, nullable: Video thumbnail image for curated templates, or null.
  - `workspace_id` string, nullable: Associated workspace ID, null for personal templates. Omitted for curated templates.
  - `shared_with_workspace_members` boolean: Whether workspace members may view the saved template. Retained legacy field name.
  - `can_edit` boolean: Whether the caller may edit this saved template.
  - `last_edited_by` Person
    - `user_id` string: Todoist user ID. Omitted for curated creators and deleted accounts.
    - `name` string, required: Display name.
    - `position` string, required: Creator position. Empty for Todoist users.
    - `avatar` string, required: Avatar image URL. Deleted accounts use a placeholder.
  - `last_edited_at` string, date-time, nullable: Last workspace edit timestamp, or null if unknown or personal.
  - `template_source` 'todoist' | 'user', required: Curated templates use todoist. Personal and workspace templates use user.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `429`: Rate limit exceeded
- `503`: Rate-limiter cache temporarily unavailable

## Changes

- **2026-10-29** `c5f99012f424`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/todoist/apis/todoist-api/changes/api/v1/templates/:template_id/get.md)

---

[API](https://skmtc.dev/todoist/apis/todoist-api.md) - [All operations](https://skmtc.dev/todoist/apis/todoist-api/llms.txt) - [OpenAPI document](https://skmtc.dev/todoist/apis/todoist-api/revisions/3c8cae93e5cc?raw)
