---
title: "List project templates"
method: GET
path: "/admin/project_templates"
tags: ["Project templates"]
---

# List project templates

`GET /admin/project_templates`

## Request

- Base URL: `https://api.pipelinecrm.com/api/v3`
- URL: `https://api.pipelinecrm.com/api/v3/admin/project_templates`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer and API key in header `app-key`
  - API key in query parameter `api_key` and API key in query parameter `app_key`

Returns both account-specific and system-wide templates.

## Response `200`

Successful Response

- ProjectTemplateList
  - `pagination` Pagination, required: Paging details returned alongside `entries` on every paginated list.
    - `page` integer: The page returned. Request another with `?page=N`.
    - `per_page` integer: Page size. `?per_page=N`, capped at 200.
    - `total` integer: Total number of records matching the request across all pages.
    - `pages` integer: Number of pages at this `per_page`.
    - `total_in_account` integer, nullable: Total number of records of this type visible to you before filters were applied. Null when not computed for the endpoint.
    - `page_var` string: Name of the query parameter that selects the page. Always `page`.
    - `url` string, nullable: Path of the request, when the endpoint reports it.
  - `entries` ProjectTemplateAll[], required: Paginated project templates
    - `id` integer: Unique identifier
    - `account_id` integer, nullable: The account ID. Null for system-wide templates.
    - `is_sample` boolean: Whether this is a sample template
    - `milestones` object[]: The milestone templates belonging to this project template
      - `id` integer
      - `project_template_id` integer
      - `name` string
      - `duration` integer
      - `status` 'not_started' | 'in_progress' | 'completed' | 'on_hold'
      - `description` string, nullable
      - `created_at` string
      - `updated_at` string
      - `calendar_entries` object[]
        - `id` integer
        - `project_template_milestone_id` integer
        - `name` string
        - `description` string, nullable
        - `calendar_entry_type` 'CalendarTask' | 'CalendarEvent' | 'null', nullable
        - `calendar_entry_category_id` integer, nullable
        - `calendar_entry_priority_id` integer, nullable
        - `calendar_entry_status_id` integer, nullable
        - `day` integer: Day offset from the milestone start (the calendar entry's relative due day)
        - `owner_id` integer, nullable: The ID of the [user](#tag/users) who owns this calendar entry
        - `created_at` string
        - `updated_at` string
    - `collaborators` object[]: The collaborator templates belonging to this project template
      - `id` integer
      - `project_template_id` integer
      - `collaborator_type` string
      - `collaborator_id` integer
      - `created_at` string
      - `updated_at` string
    - `created_at` string: Timestamp when the record was created (time zone in user's time zone).
    - `updated_at` string: Timestamp when the record was last touched (time zone in user's time zone).
    - `name` string: The name of the project template
    - `description` string: Explanatory or descriptive text about the template
    - `duration` integer: The default duration of projects created from this template, in days. Must be a positive integer.
    - `owner_id` integer, nullable: The ID of the [user](#tag/users) who owns this template
    - `is_enabled` boolean: Whether this template is available for use
    - `is_default` boolean: Whether this is the default template for new projects
    - `deal_owner_is_collaborator` boolean: Whether the deal owner should be automatically added as a project collaborator
    - `company_owner_is_collaborator` boolean: Whether the company owner should be automatically added as a project collaborator
    - `person_owner_is_collaborator` boolean: Whether the person owner should be automatically added as a project collaborator
    - `milestones_attributes` object[]: Nested milestone template attributes
      - `id` integer: Milestone template ID (required for updates, omit for new)
      - `name` string
      - `duration` integer: Duration of the milestone in days
      - `description` string
      - `status` 'not_started' | 'in_progress' | 'completed' | 'on_hold': The default status assigned to milestones created from this template
      - `_destroy` boolean: Set to true to remove this milestone template
    - `collaborators_attributes` object[]: Nested collaborator template attributes
      - `id` integer: Collaborator template ID (required for updates, omit for new)
      - `collaborator_type` 'User' | 'Team'
      - `collaborator_id` integer
      - `_destroy` boolean: Set to true to remove this collaborator template

## Other responses

- `403`: The credentials are valid but this user may not perform the action (permissions, a read-only token, or API access switched off).

---

[API](https://skmtc.dev/pipelinecrm/apis/pipeline-crm-api.md) · [All operations](https://skmtc.dev/pipelinecrm/apis/pipeline-crm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pipelinecrm/apis/pipeline-crm-api/revisions/53ebfcc83597?raw)
