---
title: "Create Template"
method: POST
path: "/teams/{team_id}/projects/{project_id}/templates/"
tags: ["Templates"]
---

# Create Template

`POST /teams/{team_id}/projects/{project_id}/templates/`

## Request

- Base URL: `http://api.cannoli.app/api/v1`
- URL: `http://api.cannoli.app/api/v1/teams/{team_id}/projects/{project_id}/templates/`
- Auth: none declared

## Request body

- TeamTemplate
  - `id` integer
  - `components` Component[]
    - `id` integer
    - `name` string, required
    - `content` object, required
    - `virtual_mj_head` string
    - `css` string, nullable
    - `preview` string, uri
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `file` integer, required
  - `template_components` ComponentTemplateRead[]
    - `id` integer
    - `component` Component
      - `id` integer
      - `name` string, required
      - `content` object, required
      - `virtual_mj_head` string
      - `css` string, nullable
      - `preview` string, uri
      - `created_at` string, date-time
      - `updated_at` string, date-time
      - `file` integer, required
    - `position` integer
  - `deleted` string, date-time
  - `deleted_by_cascade` boolean
  - `name` string, required
  - `description` string, nullable
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Response `201`

Created

- TeamTemplate
  - `id` integer
  - `components` Component[]
    - `id` integer
    - `name` string, required
    - `content` object, required
    - `virtual_mj_head` string
    - `css` string, nullable
    - `preview` string, uri
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `file` integer, required
  - `template_components` ComponentTemplateRead[]
    - `id` integer
    - `component` Component
      - `id` integer
      - `name` string, required
      - `content` object, required
      - `virtual_mj_head` string
      - `css` string, nullable
      - `preview` string, uri
      - `created_at` string, date-time
      - `updated_at` string, date-time
      - `file` integer, required
    - `position` integer
  - `deleted` string, date-time
  - `deleted_by_cascade` boolean
  - `name` string, required
  - `description` string, nullable
  - `created_at` string, date-time
  - `updated_at` string, date-time

---

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