> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slant.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a project template

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



## OpenAPI

````yaml /api-reference/openapi.yaml get /v1/project_templates/{id}
openapi: 3.0.1
info:
  title: Slant Public API V1
  version: v1
  description: Public API for creating and managing resources in Slant
  contact:
    name: Slant API Support
    email: api@slant.com
servers:
  - url: https://api.slant.app
security:
  - bearer: []
paths:
  /v1/project_templates/{id}:
    parameters:
      - name: id
        in: path
        description: The project template ID
        required: true
        example: template123xyz
        schema:
          type: string
    get:
      tags:
        - Project Templates
      summary: Get a project template
      description: >-
        Retrieve a project template by ID, including milestones, outcomes, and
        form fields.
      parameters:
        - name: book_id
          in: query
          description: Filter by book ID
          required: false
          schema:
            type: string
      responses:
        '200':
          description: project template retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectTemplate'
        '401':
          description: unauthorized - missing or invalid token
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - detail
                properties:
                  error:
                    type: string
                    description: Error code
                    enum:
                      - token_missing
                      - token_invalid
                  detail:
                    oneOf:
                      - type: string
                        description: Human-readable error description
                      - type: array
                        items:
                          type: string
                        description: Array of validation error messages
        '403':
          description: forbidden
        '404':
          description: not found
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - detail
                properties:
                  error:
                    type: string
                    description: Error code
                    enum:
                      - record_not_found
                  detail:
                    oneOf:
                      - type: string
                        description: Human-readable error description
                      - type: array
                        items:
                          type: string
                        description: Array of validation error messages
      security:
        - bearer: []
components:
  schemas:
    ProjectTemplate:
      type: object
      required:
        - id
        - title
        - project_milestones
      properties:
        id:
          type: string
          description: The project template ID
          example: template123xyz
        guid:
          type: string
          description: The project template GUID
          example: template-guid
        title:
          type: string
          description: The template title
          example: New Client Onboarding
        description:
          type: string
          nullable: true
        projectable_kind:
          type: string
          enum:
            - household
            - contact
            - business
          description: The related record kind this template supports
        enable_kanban_view:
          type: boolean
        book_id:
          type: string
          nullable: true
          description: The owning book ID, or null for company-wide templates
        order_index:
          type: integer
        book_name:
          type: string
          nullable: true
        book_initials:
          type: string
          nullable: true
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/ProjectAttachment'
        project_milestones:
          type: array
          items:
            $ref: '#/components/schemas/ProjectMilestone'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    ProjectAttachment:
      type: object
      properties:
        file_name:
          type: string
          example: onboarding.pdf
        file_type:
          type: string
          example: application/pdf
        file_size:
          type: integer
          example: 123456
        source:
          type: string
          example: uploaded
        signed_id:
          type: string
          example: signed-blob-id
        download_url:
          type: string
          nullable: true
        view_url:
          type: string
          nullable: true
    ProjectMilestone:
      type: object
      required:
        - id
        - title
        - project_template_id
      properties:
        id:
          type: string
          description: The project milestone ID
          example: milestone123xyz
        guid:
          type: string
          description: The project milestone GUID
          example: milestone-guid
        title:
          type: string
          description: The milestone title
          example: Initial Setup
        color:
          type: string
          nullable: true
          description: Milestone display color
        sort_order:
          type: integer
          nullable: true
          description: Milestone sort order
        auto_advance_trigger:
          type: string
          enum:
            - all_tasks_completed
            - meeting_scheduled
            - meeting_completed
        project_template_id:
          type: string
          description: The project template ID
          example: template123xyz
        created_at:
          type: string
          format: date-time
          description: When the milestone was created
        updated_at:
          type: string
          format: date-time
          description: When the milestone was last updated
        project_milestone_outcomes:
          type: array
          items:
            $ref: '#/components/schemas/ProjectMilestoneOutcome'
        project_milestone_form_fields:
          type: array
          items:
            $ref: '#/components/schemas/ProjectMilestoneFormField'
    ProjectMilestoneOutcome:
      type: object
      required:
        - id
        - label
        - destination
      properties:
        id:
          type: string
          description: The milestone outcome ID
          example: outcome123xyz
        label:
          type: string
          description: The outcome label
          example: Ready for accounts
        default_comment:
          type: string
          nullable: true
          description: Default comment for this outcome
        destination:
          type: string
          enum:
            - next_milestone
            - specific_milestone
            - complete_project
          description: Where this outcome moves the project
        sort_order:
          type: integer
          nullable: true
          description: Outcome sort order
        target_project_milestone_id:
          type: string
          nullable: true
          description: Target milestone ID for specific milestone outcomes
    ProjectMilestoneFormField:
      type: object
      required:
        - id
        - label
        - field_type
        - required
      properties:
        id:
          type: string
          description: The form field ID
          example: field123xyz
        guid:
          type: string
          description: The form field GUID
          example: field-guid
        label:
          type: string
          description: The field label
          example: Custodian
        field_type:
          type: string
          enum:
            - text
            - textarea
            - number
            - date
            - select
            - boolean
            - currency
            - household_record
            - file_attachment
        required:
          type: boolean
          description: Whether this field is required
        placeholder:
          type: string
          nullable: true
        sort_order:
          type: integer
          description: Field sort order
        household_record_source:
          type: string
          nullable: true
        select_options:
          type: array
          items:
            type: string
          nullable: true
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: OAuth
      description: OAuth 2.0 Bearer Token from Clerk authentication

````