---
title: "Get a project template"
method: GET
path: "/v1/project_templates/{id}"
tags: ["Project Templates"]
---

# Get a project template

`GET /v1/project_templates/{id}`

Retrieve a project template by ID, including milestones, outcomes, and form fields.

## Query parameters

- `book_id` string

## Response `200`

project template retrieved

- ProjectTemplate
  - `id` string, required — The project template ID
  - `guid` string — The project template GUID
  - `title` string, required — The template title
  - `description` string, nullable
  - `projectable_kind` 'household' | 'contact' | 'business' — The related record kind this template supports
  - `enable_kanban_view` boolean
  - `book_id` string, nullable — The owning book ID, or null for company-wide templates
  - `order_index` integer
  - `book_name` string, nullable
  - `book_initials` string, nullable
  - `attachments` ProjectAttachment[]
    - `file_name` string
    - `file_type` string
    - `file_size` integer
    - `source` string
    - `signed_id` string
    - `download_url` string, nullable
    - `view_url` string, nullable
  - `project_milestones` ProjectMilestone[], required
    - `id` string, required — The project milestone ID
    - `guid` string — The project milestone GUID
    - `title` string, required — The milestone title
    - `color` string, nullable — Milestone display color
    - `sort_order` integer, nullable — Milestone sort order
    - `auto_advance_trigger` 'all_tasks_completed' | 'meeting_scheduled' | 'meeting_completed'
    - `project_template_id` string, required — The project template ID
    - `created_at` string, date-time — When the milestone was created
    - `updated_at` string, date-time — When the milestone was last updated
    - `project_milestone_outcomes` ProjectMilestoneOutcome[]
      - `id` string, required — The milestone outcome ID
      - `label` string, required — The outcome label
      - `default_comment` string, nullable — Default comment for this outcome
      - `destination` 'next_milestone' | 'specific_milestone' | 'complete_project', required — Where this outcome moves the project
      - `sort_order` integer, nullable — Outcome sort order
      - `target_project_milestone_id` string, nullable — Target milestone ID for specific milestone outcomes
    - `project_milestone_form_fields` ProjectMilestoneFormField[]
      - `id` string, required — The form field ID
      - `guid` string — The form field GUID
      - `label` string, required — The field label
      - `field_type` 'text' | 'textarea' | 'number' | 'date' | 'select' | 'boolean' | 'currency' | 'household_record' | 'file_attachment', required
      - `required` boolean, required — Whether this field is required
      - `placeholder` string, nullable
      - `sort_order` integer — Field sort order
      - `household_record_source` string, nullable
      - `select_options` string[], nullable
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `401` — unauthorized - missing or invalid token
- `403` — forbidden
- `404` — not found

---

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