> ## 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.

# List project templates

> List project templates. Optionally filter by book_id to return templates usable for a specific book, including company-wide templates.



## OpenAPI

````yaml /api-reference/openapi.yaml get /v1/project_templates
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:
    get:
      tags:
        - Project Templates
      summary: List project templates
      description: >-
        List project templates. Optionally filter by book_id to return templates
        usable for a specific book, including company-wide templates.
      parameters:
        - name: book_id
          in: query
          description: Filter by book ID
          required: false
          schema:
            type: string
        - name: projectable_kind
          in: query
          required: false
          description: Filter by related record kind
          schema:
            type: string
            enum:
              - household
              - contact
              - business
        - name: page
          in: query
          schema:
            type: integer
          description: Page number
          required: false
          example: 1
        - name: per_page
          in: query
          description: >-
            Items per page (1-100, default: 25). Values over 100 will be clamped
            to 100.
          required: false
          example: 25
          schema:
            type: integer
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: project templates retrieved
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - pagination
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/ProjectTemplate'
                  pagination:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      total_pages:
                        type: integer
                        example: 10
                      total_count:
                        type: integer
                        example: 100
                      per_page:
                        type: integer
                        example: 25
        '400':
          description: invalid projectable kind
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - detail
                properties:
                  error:
                    type: string
                    description: Error code
                    enum:
                      - invalid_param
                  detail:
                    oneOf:
                      - type: string
                        description: Human-readable error description
                      - type: array
                        items:
                          type: string
                        description: Array of validation error messages
        '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
      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

````