Project Templates API

Access project templates that can be used to create new projects. Templates provide pre-configured project structures with phases, tasks, and settings.

Templates are read-only over the API and live entirely on this resource. They are created and edited inside Outlign, and they never appear on the Projects, Phases or Tasks endpoints. To use a template, pass its id as template_id when creating a project.

The Project Template Object

{
  "id": 789,
  "title": "Website Design Template",
  "description": "Complete website design and development workflow",
  "is_client": true,
  "is_internal": false,
  "is_template": true,
  "client_project_type": "Process",
  "internal_project_type": "Board",
  "created_at": "2023-01-01T12:00:00.000000Z",
  "updated_at": "2023-01-01T12:00:00.000000Z",
  "company": { "id": 202, "title": "Design Studio Inc" },
  "phases": [
    { "id": 456, "title": "Discovery", "is_internal": false, "order": 1, "step_count": 4 },
    { "id": 457, "title": "Design", "is_internal": false, "order": 2, "step_count": 7 }
  ]
}

phases is only returned by the Get a Project Template endpoint below. The list endpoint omits it.

Attributes

Attribute Type Description
id integer Unique identifier for the template
title string The template's name
description string|null Description of the template's purpose
is_client boolean Whether the template has a client-facing space
is_internal boolean Whether the template has an internal space
is_template boolean Whether this is a regular template
client_project_type string Client space layout: "Process" or "Board"
internal_project_type string Internal space layout: "Process" or "Board"
company object The company that owns the template (id, title)
phases object[] The template's structure, ordered by order. Each phase has id, title, is_internal, order, and step_count (the number of tasks the phase will create). Only returned by Get a Project Template
created_at string ISO 8601 timestamp when the template was created
updated_at string ISO 8601 timestamp when the template was last updated

List Project Templates

Retrieves the templates belonging to the companies the authenticated user is an agency member of. Templates owned by other companies are never returned.

GET /api/v1/project-templates

Query Parameters

Parameter Type Description
company_id integer Filter templates by a specific company you belong to. Returns 403 for a company you do not have access to
per_page integer Number of results per page (max 1000)

Example Request

GET /api/v1/project-templates
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json

Example Response

[
  {
    "id": 789,
    "title": "Website Design Template",
    "description": "Complete website design and development workflow",
    "is_client": true,
    "is_internal": false,
    "is_template": true,
    "client_project_type": "Process",
    "internal_project_type": "Board",
    "created_at": "2023-01-01T12:00:00.000000Z",
    "updated_at": "2023-01-01T12:00:00.000000Z",
    "company": { "id": 202, "title": "Design Studio Inc" }
  },
  {
    "id": 790,
    "title": "Mobile App Development",
    "description": "Standard mobile app development process",
    "is_client": true,
    "is_internal": true,
    "is_template": true,
    "client_project_type": "Board",
    "internal_project_type": "Board",
    "created_at": "2023-01-05T14:30:00.000000Z",
    "updated_at": "2023-01-05T14:30:00.000000Z",
    "company": { "id": 202, "title": "Design Studio Inc" }
  }
]

Get a Project Template

Retrieves a specific template along with its structure — the phases it will create, in order, and how many tasks each phase contains. Returns 404 Not Found if the ID is not a template or is not owned by one of your companies.

GET /api/v1/project-templates/{id}

Example Request

GET /api/v1/project-templates/789
Authorization: Bearer YOUR_ACCESS_TOKEN
Accept: application/json

Example Response

{
  "id": 789,
  "title": "Website Design Template",
  "description": "Complete website design and development workflow",
  "is_client": true,
  "is_internal": false,
  "is_template": true,
  "client_project_type": "Process",
  "internal_project_type": "Board",
  "created_at": "2023-01-01T12:00:00.000000Z",
  "updated_at": "2023-01-01T12:00:00.000000Z",
  "company": { "id": 202, "title": "Design Studio Inc" },
  "phases": [
    { "id": 456, "title": "Discovery", "is_internal": false, "order": 1, "step_count": 4 },
    { "id": 457, "title": "Design", "is_internal": false, "order": 2, "step_count": 7 },
    { "id": 458, "title": "Internal QA", "is_internal": true, "order": 3, "step_count": 3 }
  ]
}

Phase IDs belong to the template. They are the template's own phases, not the phases of a project created from it — creating a project from a template copies the structure and produces new phase and task IDs. Use them to preview or display what a template contains, not to write against.

Integration Usage

Project templates are commonly used in integrations to allow users to create standardized projects with predefined structures and workflows.

Common Use Cases

Template Selection Dropdowns

Populate dropdown lists for template selection in project creation forms

Automated Project Creation

Create projects from templates in response to external triggers

Template Validation

Verify template availability before creating projects

Related: Use the Projects API to create new projects from templates. See the Projects API documentation for details.