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

# Create Template

> Create a new template with nested sections and rules. Validates inputs and persists to database.



## OpenAPI

````yaml /api-reference/openapi-v1.json post /api/v1/templates/
openapi: 3.0.0
info:
  title: Artos API
  description: API for document generation, template management, and document organization
  version: 1.0.0
  contact:
    name: Artos Support
    email: internal@artosai.com
servers:
  - url: https://api.artosai.com
    description: Production server
  - url: http://localhost:8000
    description: Local development server
security:
  - bearerAuth: []
paths:
  /api/v1/templates/:
    post:
      tags:
        - Templates
      summary: Create Template
      description: >-
        Create a new template with nested sections and rules. Validates inputs
        and persists to database.
      operationId: createTemplate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTemplateRequest'
      responses:
        '201':
          description: Template created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateTemplateResponse'
        '400':
          description: Validation errors
        '401':
          description: Authentication failures
        '500':
          description: Database operation failures
components:
  schemas:
    CreateTemplateRequest:
      type: object
      properties:
        template_name:
          type: string
          description: Name of template
        document_type:
          type: string
          description: Document type (e.g., CSR, IND)
        sections:
          type: array
          items:
            $ref: '#/components/schemas/CreateTemplateSectionRequest'
          description: At least one section required
        template_s3_uri:
          type: string
          nullable: true
          description: S3 object key for template file
        template_file_name:
          type: string
          nullable: true
          description: Template file name
        document_description:
          type: string
          nullable: true
        tags:
          type: array
          items:
            type: string
          nullable: true
        users:
          type: array
          items:
            type: string
          nullable: true
          description: User IDs with access
      required:
        - template_name
        - document_type
        - sections
    CreateTemplateResponse:
      type: object
      properties:
        template_id:
          type: string
          description: UUID of created template
        template_name:
          type: string
        organization_id:
          type: string
        section_count:
          type: integer
        rule_count:
          type: integer
          description: Total rules across sections
        created_at:
          type: string
          format: date-time
        message:
          type: string
          nullable: true
    CreateTemplateSectionRequest:
      type: object
      properties:
        order_index:
          type: integer
          description: Position in template (0-based)
        level:
          type: integer
          description: Nesting level (1=top-level)
        section_name:
          type: string
          description: Section title
        synopsis:
          type: string
          nullable: true
          description: Brief summary
        template_instructions:
          type: string
          nullable: true
          description: Completion instructions
        template_text:
          type: string
          nullable: true
          description: Template text content
        section_type:
          type: string
          nullable: true
        section_mode:
          type: string
          nullable: true
        is_repeating:
          type: boolean
          default: false
        expansion_type:
          type: string
          nullable: true
          description: For repeating sections
        data_instructions:
          type: string
          nullable: true
          description: Data handling instructions
        guidance:
          type: string
          nullable: true
        outline_text:
          type: string
          nullable: true
        allowed_data_rules:
          type: array
          items:
            type: string
          nullable: true
        examples:
          type: array
          items:
            type: object
          nullable: true
          description: JSONB examples
        rules:
          type: array
          items:
            $ref: '#/components/schemas/CreateTemplateSectionRuleRequest'
          nullable: true
      required:
        - order_index
        - level
        - section_name
    CreateTemplateSectionRuleRequest:
      type: object
      properties:
        confidence_score:
          type: number
          nullable: true
        rule_type:
          type: string
          nullable: true
        rule_mode:
          type: string
          nullable: true
        description:
          type: string
          nullable: true
        explanation:
          type: string
          nullable: true
        generated_content:
          type: string
          nullable: true
        rule_parameters:
          type: object
          nullable: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token authentication. Token provides organization-scoped access.

````