Templates

Discover Templates

Changed on

Discover templates or look up a bounded batch of IDs.

Curated templates are anonymous. Personal/workspace sources and any UT_ ID require data:read. Pages prioritize personal, workspace, then curated templates, and rank each page by the query. Keep all filters when continuing.

get/api/v1/templates

Request

  • Base URL
    https://api.todoist.com
  • URL
    https://api.todoist.com/api/v1/templates
  • Auth
    none declared

Query parameters

template_type'setup' | 'project' | 'all'

Template type to list.

Example:project
template_source'todoist' | 'user' | 'workspace' | 'all'

Curated (todoist), personal (user), workspace, or all accessible templates.

Example:todoist
localestring

Content locale. Unsupported locales fall back to English.

Example:en
limitinteger

The number of objects to return in a page

Example:50
cursorstring nullable

An opaque string used as the cursor for pagination. Must be used with the same parameters from the previous request

Example:14540000435w8hj8pXXwPQJJch.X9DBH8ya2Xenok55
querystring nullable

Search template text and, without category_id, matching curated categories.

Example:work
category_idstring nullable

Curated category slug. Personal and workspace templates retain their own search filtering.

Example:work
idsstring nullable

Up to 100 comma-separated ID entries. Repeated IDs are deduplicated in request order. Missing or invisible IDs are omitted. May be combined with locale and pagination, but not listing filters.

Example:bug-tracking,UT_28Rc62VC22j439VcPJMw9xgWx2

Response

Successful Response

next_cursorstring nullable required

Cursor for the next page of results, or null when there are no more results.

Example response

{
  "results": [
    {
      "id": "bug-tracking",
      "name": "Bug tracking",
      "template_type": "project",
      "short_description": "Track and prioritize bugs.",
      "long_description": "Track issues from report to resolution.",
      "import_url": "https://todoist.com/api/v1/import/project_from_url?t_url=https://example.com/template.csv",
      "view_type": "board",
      "thumbnail_image": "https://example.com/image.png",
      "thumbnail_image_dark": "https://example.com/image.png",
      "cover_image": "https://example.com/image.png",
      "preview_image": "https://example.com/image.png",
      "template_color": "magenta",
      "background_color": "#ffffff",
      "background_color_dark": "#ffffff",
      "creator": {
        "user_id": "123456",
        "name": "Alex Example",
        "avatar": "https://example.com/avatar.png"
      },
      "seo": {
        "title": "Bug tracking",
        "description": "Track and prioritize bugs."
      },
      "more_resources": [
        {
          "title": "Bug tracking",
          "url": "https://todoist.com/templates/bug-tracking"
        }
      ],
      "category_ids": [
        "work"
      ],
      "project_count": 3,
      "label_count": 2,
      "filter_count": 1,
      "video_url": "https://example.com/video.mp4",
      "video_preview_image_url": "https://example.com/image.png",
      "video_thumbnail_image": "https://example.com/image.png",
      "workspace_id": "123456",
      "can_edit": true,
      "last_edited_by": {
        "user_id": "123456",
        "name": "Alex Example",
        "avatar": "https://example.com/avatar.png"
      },
      "last_edited_at": "2026-10-16T10:00:00Z",
      "template_source": "todoist"
    }
  ],
  "next_cursor": "14540000435w8hj8pXXwPQJJch.X9DBH8ya2Xenok55"
}

Changes