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

# Post v1generation templates



## OpenAPI

````yaml /openapi.json post /v1/generation-templates
openapi: 3.1.0
info:
  title: Lighthouse API
  description: Lighthouse funeral home management API
  license:
    name: ''
  version: 1.0.0
servers:
  - url: https://api.lighthousefh.com
    description: Production
security:
  - bearer_auth: []
tags:
  - name: Health
    description: Health check endpoints
  - name: Cases
    description: Case management
  - name: Calls
    description: Call recordings and transcriptions
  - name: Clips
    description: Short audio clips and transcripts
  - name: Users
    description: User management
  - name: Organizations
    description: Organization management
  - name: Locations
    description: Location management
  - name: Case Data
    description: Custom case data values
  - name: Case Data Fields
    description: Custom case data field definitions
  - name: Generations
    description: User-sourced generation overrides
  - name: Generation Templates
    description: AI generation templates
  - name: Generation Feedback
    description: End-user feedback on generations
  - name: Generation Labels
    description: Generation quality labels
  - name: Generation Quality Test
    description: Generation quality testing
  - name: Generation Template Dependencies
    description: Template dependency management
  - name: Organization Template Status
    description: Organization-level template status
  - name: Score Instructions
    description: Score instructions for generation templates
  - name: Tasks
    description: Case tasks
  - name: Conversations
    description: Assistant chat conversations
  - name: User Preferences
    description: User preference settings
  - name: User Managers
    description: User-manager relationships
  - name: User Permissions
    description: User permission management
  - name: Roleplay Categories
    description: Roleplay category (skill) catalog
  - name: Roleplay Complications
    description: Roleplay complications catalog
  - name: Roleplay Personas
    description: Roleplay persona catalog
  - name: Roleplay Phases
    description: Roleplay phase catalog
  - name: Roleplay Runs
    description: Completed roleplay runs
  - name: Roleplay Scenarios
    description: Roleplay scenarios
  - name: Roleplay Voices
    description: Roleplay voice catalog
  - name: Scenario Score Templates
    description: Scenario scoring template attachments
paths:
  /v1/generation-templates:
    post:
      tags:
        - Generation Templates
      operationId: create_generation_template
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateGenerationTemplateRequest'
        required: true
      responses:
        '201':
          description: Template created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse_GenerationTemplate'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      security:
        - bearer_auth: []
components:
  schemas:
    CreateGenerationTemplateRequest:
      type: object
      required:
        - label
        - display_name
        - instructions
        - development_stage
        - execution_type
        - display_config
      properties:
        authorization_layer_entity_uuid:
          type:
            - string
            - 'null'
          format: uuid
        call_types:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/CallType'
        development_stage:
          $ref: '#/components/schemas/DevelopmentStage'
        display_config:
          type: array
          items:
            $ref: '#/components/schemas/DisplayConfig'
        display_name:
          type: string
        exact_phrases:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/ExactPhrase'
        example_limit:
          type:
            - integer
            - 'null'
          format: int32
        execution_params:
          $ref: '#/components/schemas/ExecutionParams'
        execution_type:
          $ref: '#/components/schemas/ExecutionType'
        instructions:
          type: string
        is_user_specific:
          type: boolean
        label:
          type: string
        location_uuid:
          type:
            - string
            - 'null'
          format: uuid
        organization_uuid:
          type:
            - string
            - 'null'
          format: uuid
        scoring_strategy:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ScoringStrategy'
        static_generations:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/StaticGenerationInput'
    ApiResponse_GenerationTemplate:
      type: object
      required:
        - status
        - timestamp
      properties:
        data:
          type: object
          required:
            - uuid
            - label
            - display_name
            - created_by
            - instructions
            - development_stage
            - display_config
            - execution_type
            - allows_multiple_generations
            - is_user_specific
            - execution_params
          properties:
            allows_multiple_generations:
              type: boolean
            authorization_layer_entity_uuid:
              type:
                - string
                - 'null'
              format: uuid
            call_types:
              type:
                - array
                - 'null'
              items:
                $ref: '#/components/schemas/CallType'
              description: Call types this template applies to. `None` = all call types.
            created_at:
              type:
                - string
                - 'null'
              format: date-time
            created_by:
              type: string
              format: uuid
            deleted_at:
              type:
                - string
                - 'null'
              format: date-time
            deleted_by:
              type:
                - string
                - 'null'
              format: uuid
            development_stage:
              $ref: '#/components/schemas/DevelopmentStage'
            display_config:
              type: array
              items:
                $ref: '#/components/schemas/DisplayConfig'
            display_name:
              type: string
            exact_phrases:
              type:
                - array
                - 'null'
              items:
                $ref: '#/components/schemas/ExactPhrase'
            example_limit:
              type:
                - integer
                - 'null'
              format: int32
            execution_params:
              $ref: '#/components/schemas/ExecutionParams'
            execution_type:
              $ref: '#/components/schemas/ExecutionType'
            instructions:
              type: string
            is_user_specific:
              type: boolean
            label:
              type: string
            location_uuid:
              type:
                - string
                - 'null'
              format: uuid
            organization_uuid:
              type:
                - string
                - 'null'
              format: uuid
            scoring_strategy:
              oneOf:
                - type: 'null'
                - $ref: '#/components/schemas/ScoringStrategy'
            static_generations:
              type:
                - array
                - 'null'
              items:
                $ref: '#/components/schemas/StaticGeneration'
            updated_at:
              type:
                - string
                - 'null'
              format: date-time
            updated_by:
              type:
                - string
                - 'null'
              format: uuid
            uuid:
              type: string
              format: uuid
        message:
          type:
            - string
            - 'null'
        request_id:
          type:
            - string
            - 'null'
        status:
          type: string
        timestamp:
          type: string
          format: date-time
    ApiError:
      type: object
      required:
        - status
        - error
        - message
        - status_code
        - timestamp
      properties:
        error:
          type: string
        message:
          type: string
        request_id:
          type:
            - string
            - 'null'
        status:
          type: string
        status_code:
          type: integer
          format: int32
          minimum: 0
        timestamp:
          type: string
          format: date-time
    CallType:
      type: string
      enum:
        - at_need_arrangement
        - pre_need_arrangement
    DevelopmentStage:
      type: string
      enum:
        - testing
        - live
    DisplayConfig:
      type: object
      required:
        - location
        - group
      properties:
        group:
          $ref: '#/components/schemas/Group'
        group_descendants:
          type:
            - boolean
            - 'null'
        location:
          $ref: '#/components/schemas/Location'
        occurring_is_positive:
          type:
            - boolean
            - 'null'
    ExactPhrase:
      type: object
      required:
        - phrase
        - match_percentage
      properties:
        match_percentage:
          type: number
          format: double
        phrase:
          type: string
    ExecutionParams:
      type: object
      properties:
        obituary:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ObituaryParams'
    ExecutionType:
      type: string
      enum:
        - summary
        - data_extraction
        - occurred_with_examples
        - is_true
        - insight_summary
        - obituary
        - task
    ScoringStrategy:
      oneOf:
        - type: object
          required:
            - strategy
          properties:
            strategy:
              type: string
              enum:
                - binary
        - type: object
          required:
            - chunk_minutes
            - strategy
          properties:
            chunk_minutes:
              type: integer
              format: int32
              minimum: 0
            strategy:
              type: string
              enum:
                - chunk_occurrence_ratio
    StaticGenerationInput:
      type: object
      required:
        - content
      properties:
        assignee_description:
          type:
            - string
            - 'null'
        content:
          type: string
        uuid:
          type:
            - string
            - 'null'
          format: uuid
    StaticGeneration:
      type: object
      required:
        - uuid
        - content
      properties:
        assignee_description:
          type:
            - string
            - 'null'
        content:
          type: string
        uuid:
          type: string
          format: uuid
    Group:
      type: string
      enum:
        - summary
        - template
        - present
        - connect
        - trust
        - understanding_the_why
        - the_close
        - meaningful_questions
        - arrangement_presence
        - death_certificate
        - funeral_service
        - contract_details
        - disposition
        - internal
        - arrangement_insight_summary
        - action_item
        - inputs
        - obituary
        - task
        - live_call
    Location:
      type: string
      enum:
        - summary
        - insight
        - template
        - case_data
        - internal
        - arrangement_insight
        - action_item
        - obituary
        - task
        - live_call
    ObituaryParams:
      type: object
      required:
        - tone
        - obituary_type
      properties:
        obituary_type:
          $ref: '#/components/schemas/ObituaryType'
        tone:
          $ref: '#/components/schemas/ObituaryTone'
    ObituaryType:
      type: string
      enum:
        - standard
        - newspaper
    ObituaryTone:
      type: string
      enum:
        - faith_based
        - respectful
        - professional
        - loving
        - reflective
        - formal
        - light_hearted
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer

````