openapi: 3.1.0
info:
  title: AI-HTML REST API
  description: Central OpenAPI contract for complete AI-HTML theme management.
  version: 1.12.3
servers:
- url: https://example.com/wp-json
  description: Replace with the target WordPress REST root
tags:
- name: AI
- name: Options
- name: Menus
- name: Pages
- name: Site
- name: Management
- name: Canvas
- name: Deploy
- name: Reset
- name: Updates
- name: Authors
- name: Integration
- name: Documentation
paths:
  /aihtml/v1/ai/addons:
    get:
      tags:
      - Integration
      summary: Theme addon integrations
      operationId: aihl_get_aihtml_v1_ai_addons
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddonsPayload'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/auth/capabilities:
    get:
      tags:
      - AI
      summary: Capabilities granted to the current Smart AI key
      operationId: aihl_get_aihtml_v1_ai_auth_capabilities
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthCapabilities'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/author-profile:
    get:
      tags:
      - Authors
      summary: Author profile preferences
      operationId: aihl_get_aihtml_v1_ai_author_profile
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
    put:
      tags:
      - Authors
      summary: Author profile preferences
      operationId: aihl_put_aihtml_v1_ai_author_profile
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorProfileRequest'
    patch:
      tags:
      - Authors
      summary: Author profile preferences
      operationId: aihl_patch_aihtml_v1_ai_author_profile
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorProfileRequest'
  /aihtml/v1/ai/canvas:
    get:
      tags:
      - Canvas
      summary: Read or select Canvas sources for header and footer
      operationId: aihl_get_aihtml_v1_ai_canvas
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
    put:
      tags:
      - Canvas
      summary: Read or select Canvas sources for header and footer
      operationId: aihl_put_aihtml_v1_ai_canvas
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CanvasRequest'
    patch:
      tags:
      - Canvas
      summary: Read or select Canvas sources for header and footer
      operationId: aihl_patch_aihtml_v1_ai_canvas
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CanvasRequest'
  /aihtml/v1/ai/capabilities:
    get:
      tags:
      - Management
      summary: AI agent onboarding and capability discovery
      operationId: aihl_get_aihtml_v1_ai_capabilities
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/code-slots:
    get:
      tags:
      - Canvas
      summary: List or save AI Code Slots
      operationId: aihl_get_aihtml_v1_ai_code_slots
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
    post:
      tags:
      - Canvas
      summary: List or save AI Code Slots
      operationId: aihl_post_aihtml_v1_ai_code_slots
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CodeSlot'
  /aihtml/v1/ai/code-slots/export:
    get:
      tags:
      - Canvas
      summary: Export AI Code Slots
      operationId: aihl_get_aihtml_v1_ai_code_slots_export
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/code-slots/hooks:
    get:
      tags:
      - Canvas
      summary: List AI Code Slot hook points
      operationId: aihl_get_aihtml_v1_ai_code_slots_hooks
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/code-slots/import:
    post:
      tags:
      - Canvas
      summary: Import AI Code Slots
      operationId: aihl_post_aihtml_v1_ai_code_slots_import
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
  /aihtml/v1/ai/code-slots/{slot_id}:
    get:
      tags:
      - Canvas
      summary: Read, update or delete an AI Code Slot
      operationId: aihl_get_aihtml_v1_ai_code_slots_slot_id
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CodeSlot'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: slot_id
        in: path
        required: true
        schema:
          type: string
    put:
      tags:
      - Canvas
      summary: Read, update or delete an AI Code Slot
      operationId: aihl_put_aihtml_v1_ai_code_slots_slot_id
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CodeSlot'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: slot_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CodeSlot'
    patch:
      tags:
      - Canvas
      summary: Read, update or delete an AI Code Slot
      operationId: aihl_patch_aihtml_v1_ai_code_slots_slot_id
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CodeSlot'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: slot_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CodeSlot'
    delete:
      tags:
      - Canvas
      summary: Read, update or delete an AI Code Slot
      operationId: aihl_delete_aihtml_v1_ai_code_slots_slot_id
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CodeSlot'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: slot_id
        in: path
        required: true
        schema:
          type: string
  /aihtml/v1/ai/code-slots/{slot_id}/rollback:
    post:
      tags:
      - Canvas
      summary: Rollback an AI Code Slot revision
      operationId: aihl_post_aihtml_v1_ai_code_slots_slot_id_rollback
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: slot_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
  /aihtml/v1/ai/code-slots/{slot_id}/toggle:
    post:
      tags:
      - Canvas
      summary: Enable or disable an AI Code Slot
      operationId: aihl_post_aihtml_v1_ai_code_slots_slot_id_toggle
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: slot_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
  /aihtml/v1/ai/compliance:
    get:
      tags:
      - Management
      summary: Run theme compliance checks
      operationId: aihl_get_aihtml_v1_ai_compliance
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/content/{id}/presentation:
    get:
      tags:
      - Pages
      summary: Read or update theme presentation metadata for content
      operationId: aihl_get_aihtml_v1_ai_content_id_presentation
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentPresentation'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          minimum: 1
    put:
      tags:
      - Pages
      summary: Read or update theme presentation metadata for content
      operationId: aihl_put_aihtml_v1_ai_content_id_presentation
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentPresentation'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          minimum: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContentPresentation'
    patch:
      tags:
      - Pages
      summary: Read or update theme presentation metadata for content
      operationId: aihl_patch_aihtml_v1_ai_content_id_presentation
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentPresentation'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          minimum: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContentPresentation'
  /aihtml/v1/ai/context:
    get:
      tags:
      - AI
      summary: Theme AI context
      operationId: aihl_get_aihtml_v1_ai_context
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AIContext'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/dependencies:
    get:
      tags:
      - Management
      summary: Theme dependency status and lifecycle API discovery
      operationId: aihl_get_aihtml_v1_ai_dependencies
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/deploy:
    post:
      tags:
      - Deploy
      summary: Deploy AI-HTML project
      operationId: aihl_post_aihtml_v1_ai_deploy
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeployResult'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
  /aihtml/v1/ai/deploy/projects:
    get:
      tags:
      - Deploy
      summary: List deploy projects
      operationId: aihl_get_aihtml_v1_ai_deploy_projects
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeployProjects'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/integration-manifest:
    get:
      tags:
      - Integration
      summary: Theme integration manifest
      operationId: aihl_get_aihtml_v1_ai_integration_manifest
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationManifest'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/introspection:
    get:
      tags:
      - Management
      summary: Inspect the complete AI-HTML runtime state
      operationId: aihl_get_aihtml_v1_ai_introspection
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/management:
    get:
      tags:
      - Management
      summary: Complete API management coverage catalog
      operationId: aihl_get_aihtml_v1_ai_management
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/menus:
    get:
      tags:
      - Menus
      summary: Theme menu JSON
      operationId: aihl_get_aihtml_v1_ai_menus
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MenuPayload'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
    post:
      tags:
      - Menus
      summary: Theme menu JSON
      operationId: aihl_post_aihtml_v1_ai_menus
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MenuPayload'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenericObject'
  /aihtml/v1/ai/openapi:
    get:
      tags:
      - Documentation
      summary: OpenAPI document
      operationId: aihl_get_aihtml_v1_ai_openapi
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenAPI'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/options:
    get:
      tags:
      - Options
      summary: Theme AI options
      operationId: aihl_get_aihtml_v1_ai_options
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AIHLOptionsPayload'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
    post:
      tags:
      - Options
      summary: Theme AI options
      operationId: aihl_post_aihtml_v1_ai_options
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AIHLOptionsPayload'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AIHLOptionsEnvelope'
  /aihtml/v1/ai/options/schema:
    get:
      tags:
      - Options
      summary: Theme options schema
      operationId: aihl_get_aihtml_v1_ai_options_schema
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AIHLOptionsSchema'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/page-background/patterns:
    get:
      tags:
      - Pages
      summary: List available page background patterns
      operationId: aihl_get_aihtml_v1_ai_page_background_patterns
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/pages:
    get:
      tags:
      - Pages
      summary: Theme pages
      operationId: aihl_get_aihtml_v1_ai_pages
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagesPayload'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
    post:
      tags:
      - Pages
      summary: Theme pages
      operationId: aihl_post_aihtml_v1_ai_pages
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagesPayload'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PageCreateRequest'
  /aihtml/v1/ai/pages/{id}:
    put:
      tags:
      - Pages
      summary: Update or trash an AI page
      operationId: aihl_put_aihtml_v1_ai_pages_id
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          minimum: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PageUpdateRequest'
    patch:
      tags:
      - Pages
      summary: Update or trash an AI page
      operationId: aihl_patch_aihtml_v1_ai_pages_id
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          minimum: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PageUpdateRequest'
    delete:
      tags:
      - Pages
      summary: Update or trash an AI page
      operationId: aihl_delete_aihtml_v1_ai_pages_id
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          minimum: 1
  /aihtml/v1/ai/pages/{id}/background:
    get:
      tags:
      - Pages
      summary: Read, update or remove per-page background
      operationId: aihl_get_aihtml_v1_ai_pages_id_background
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageBackground'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          minimum: 1
    put:
      tags:
      - Pages
      summary: Read, update or remove per-page background
      operationId: aihl_put_aihtml_v1_ai_pages_id_background
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageBackground'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          minimum: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PageBackground'
    delete:
      tags:
      - Pages
      summary: Read, update or remove per-page background
      operationId: aihl_delete_aihtml_v1_ai_pages_id_background
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageBackground'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          minimum: 1
  /aihtml/v1/ai/pages/{id}/restore:
    post:
      tags:
      - Pages
      summary: Restore a trashed AI page as a non-published draft
      operationId: aihl_post_aihtml_v1_ai_pages_id_restore
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          minimum: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PageRestoreRequest'
  /aihtml/v1/ai/pages/{id}/status:
    post:
      tags:
      - Pages
      summary: Change page publication status
      operationId: aihl_post_aihtml_v1_ai_pages_id_status
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          minimum: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PageStatusRequest'
  /aihtml/v1/ai/reset/execute:
    post:
      tags:
      - Reset
      summary: Execute Smart Reset
      operationId: aihl_post_aihtml_v1_ai_reset_execute
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResetResult'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResetRequest'
  /aihtml/v1/ai/reset/registry:
    get:
      tags:
      - Reset
      summary: Smart Reset registry
      operationId: aihl_get_aihtml_v1_ai_reset_registry
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResetRegistry'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
  /aihtml/v1/ai/reset/snapshots/{token}:
    get:
      tags:
      - Reset
      summary: Read a private Smart Reset snapshot
      operationId: aihl_get_aihtml_v1_ai_reset_snapshots_token
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      parameters:
      - name: token
        in: path
        required: true
        schema:
          type: string
  /aihtml/v1/ai/runtime-components/render:
    post:
      tags:
      - Integration
      summary: Render a governed runtime component
      operationId: aihl_post_aihtml_v1_ai_runtime_components_render
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuntimeComponentRequest'
  /aihtml/v1/ai/site/front-page:
    get:
      tags:
      - Site
      summary: Read or assign the WordPress front page
      operationId: aihl_get_aihtml_v1_ai_site_front_page
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FrontPagePayload'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
    post:
      tags:
      - Site
      summary: Read or assign the WordPress front page
      operationId: aihl_post_aihtml_v1_ai_site_front_page
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FrontPagePayload'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FrontPageRequest'
  /aihtml/v1/ai/site/settings:
    get:
      tags:
      - Site
      summary: Read or update WordPress settings governed by AI-HTML
      operationId: aihl_get_aihtml_v1_ai_site_settings
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteSettings'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
    put:
      tags:
      - Site
      summary: Read or update WordPress settings governed by AI-HTML
      operationId: aihl_put_aihtml_v1_ai_site_settings
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteSettings'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SiteSettings'
    patch:
      tags:
      - Site
      summary: Read or update WordPress settings governed by AI-HTML
      operationId: aihl_patch_aihtml_v1_ai_site_settings
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteSettings'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SiteSettings'
  /aihtml/v1/ai/update:
    get:
      tags:
      - Updates
      summary: Inspect, refresh or install a theme update
      operationId: aihl_get_aihtml_v1_ai_update
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
    post:
      tags:
      - Updates
      summary: Inspect, refresh or install a theme update
      operationId: aihl_post_aihtml_v1_ai_update
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericObject'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - applicationPassword: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThemeUpdateRequest'
  /aihtml/v1/openapi:
    get:
      tags:
      - Documentation
      summary: OpenAPI document alias
      operationId: aihl_get_aihtml_v1_openapi
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenAPI'
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
      security:
      - wpNonce: []
      - smartAiKey: []
      - applicationPassword: []
components:
  securitySchemes:
    wpNonce:
      type: apiKey
      in: header
      name: X-WP-Nonce
    smartAiKey:
      type: apiKey
      in: header
      name: X-Smart-AI-Key
    applicationPassword:
      type: http
      scheme: basic
  schemas:
    GenericObject:
      type: object
      additionalProperties: true
    OpenAPI:
      type: object
      additionalProperties: true
    AIContext:
      type: object
      additionalProperties: true
    MenuPayload:
      type: object
      additionalProperties: true
    PagesPayload:
      type: object
      additionalProperties: true
    AuthCapabilities:
      type: object
      properties:
        read:
          type: boolean
        write:
          type: boolean
        publish:
          type: boolean
        update_themes:
          type: boolean
    DeployResult:
      type: object
      additionalProperties: true
    DeployProjects:
      type: object
      additionalProperties: true
    ResetRegistry:
      type: object
      additionalProperties: true
    ResetResult:
      type: object
      additionalProperties: true
    IntegrationManifest:
      type: object
      additionalProperties: true
    AddonsPayload:
      type: object
      additionalProperties: true
    AIHLOptionsSchema:
      type: object
      properties:
        theme:
          type: string
        option_key:
          type: string
        fields:
          type: object
          additionalProperties: false
          properties:
            sito_descrizione:
              type: string
              x-aihl-group: sito
            site_logo_url:
              type: string
              format: uri
              x-aihl-group: media
            site_logo_transparent_url:
              type: string
              format: uri
              x-aihl-group: media
            site_logo_light_url:
              type: string
              format: uri
              x-aihl-group: media
            footer_logo_url:
              type: string
              format: uri
              x-aihl-group: media
            header_render_mode:
              type: string
              enum:
              - native
              - canvas
              x-aihl-group: header
            header_canvas_slot_id:
              type: string
              x-aihl-group: header
            header_structure:
              type: string
              enum:
              - standard
              - dualbar
              - centered
              - topbar-nav
              - mega-centered
              - sidebar
              - triple-row
              - stacked-centered
              x-aihl-group: header
            header_nav_layout:
              type: string
              enum:
              - clean
              - pills
              - underline
              - compact
              x-aihl-group: header
            header_nav_text_variant:
              type: string
              enum:
              - normal
              - uppercase
              - lowercase
              - italic
              - uppercase-italic
              - lowercase-italic
              x-aihl-group: header
            header_nav_font_weight:
              type: string
              enum:
              - '300'
              - '400'
              - '500'
              - '600'
              - '700'
              - '800'
              x-aihl-group: header
            header_nav_letter_spacing:
              type: number
              minimum: 0
              maximum: 0.2
              x-aihl-group: header
            header_overlay_mode:
              type: string
              enum:
              - auto
              - always
              - never
              x-aihl-group: header
            header_overlay_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: header
            header_overlay_blur:
              type: integer
              minimum: 0
              maximum: 24
              x-aihl-group: header
            header_sticky_style:
              type: string
              enum:
              - solid
              - blur
              - transparent
              - gradient-fade
              x-aihl-group: header
            header_search_style:
              type: string
              enum:
              - none
              - icon-dropdown
              - icon-fullscreen
              - inline
              x-aihl-group: header
            header_topbar_scroll_behavior:
              type: string
              enum:
              - scroll-away
              - sticky
              x-aihl-group: header
            header_show_logo:
              type: boolean
              x-aihl-group: header
            header_show_cta:
              type: boolean
              x-aihl-group: header
            header_show_login:
              type: boolean
              x-aihl-group: header
            menu_dropdown_indicator:
              type: boolean
              x-aihl-group: header
            header_cta_label:
              type: string
              x-aihl-group: header
            header_cta_url:
              type: string
              format: uri
              x-aihl-group: header
            header_login_label:
              type: string
              x-aihl-group: header
            header_login_url:
              type: string
              format: uri
              x-aihl-group: header
            mobile_nav_style:
              type: string
              enum:
              - rail
              - bottom-bar
              - none
              x-aihl-group: mobile
            mobile_rail_enable:
              type: boolean
              x-aihl-group: mobile
            mobile_rail_position:
              type: string
              enum:
              - left
              - right
              x-aihl-group: mobile
            mobile_rail_autohide:
              type: boolean
              x-aihl-group: mobile
            blog_layout:
              type: string
              enum:
              - grid
              - list
              - magazine
              x-aihl-group: article
            blog_sidebar:
              type: boolean
              x-aihl-group: article
            article_image_size_control:
              type: boolean
              x-aihl-group: article
            article_next_prev:
              type: boolean
              x-aihl-group: article
            article_related:
              type: boolean
              x-aihl-group: article
            article_related_link:
              type: boolean
              x-aihl-group: article
            article_content_size:
              type: integer
              minimum: 320
              maximum: 2560
              x-aihl-group: article
            article_author_box_style:
              type: string
              enum:
              - simple
              - compact
              - card
              - banner
              - editorial
              - enterprise
              - impact
              - signature
              - none
              x-aihl-group: article
            page_bg_type:
              type: string
              enum:
              - default
              - color
              - image
              - pattern
              x-aihl-group: page_background
            page_bg_color:
              type: string
              x-aihl-group: page_background
            page_bg_image:
              type: string
              format: uri
              x-aihl-group: page_background
            page_bg_image_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: page_background
            page_bg_image_size:
              type: string
              enum:
              - cover
              - contain
              - auto
              x-aihl-group: page_background
            page_bg_pattern:
              type: string
              enum:
              - none
              - dots
              - grid
              - diagonal
              - cross
              x-aihl-group: page_background
            page_bg_overlay_color:
              type: string
              x-aihl-group: page_background
            page_bg_overlay_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: page_background
            footer_render_mode:
              type: string
              enum:
              - native
              - canvas
              x-aihl-group: footer
            footer_canvas_slot_id:
              type: string
              x-aihl-group: footer
            footer_variant:
              type: string
              enum:
              - enterprise
              - futuristic
              - corporate
              - compact
              - mega-footer
              - minimal
              - cta-footer
              x-aihl-group: footer
            footer_columns_count:
              type: integer
              minimum: 3
              maximum: 5
              x-aihl-group: footer
            footer_background_enable:
              type: boolean
              x-aihl-group: footer
            footer_background_image:
              type: string
              format: uri
              x-aihl-group: footer
            footer_background_remote_url:
              type: string
              format: uri
              x-aihl-group: footer
            footer_background_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: footer
            footer_background_position:
              type: string
              enum:
              - center center
              - center top
              - center bottom
              - left center
              - right center
              x-aihl-group: footer
            footer_background_size:
              type: string
              enum:
              - auto
              - cover
              - contain
              x-aihl-group: footer
            footer_background_repeat:
              type: string
              enum:
              - no-repeat
              - repeat
              - repeat-x
              - repeat-y
              x-aihl-group: footer
            footer_overlay_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: footer
            footer_overlay_tone:
              type: string
              enum:
              - body
              - primary
              - dark
              - light
              x-aihl-group: footer
            footer_cta_title:
              type: string
              x-aihl-group: footer
            footer_cta_subtitle:
              type: string
              x-aihl-group: footer
            footer_cta_btn_label:
              type: string
              x-aihl-group: footer
            footer_cta_btn_url:
              type: string
              format: uri
              x-aihl-group: footer
            footer_cta_btn2_label:
              type: string
              x-aihl-group: footer
            footer_cta_btn2_url:
              type: string
              format: uri
              x-aihl-group: footer
            contatti_telefono:
              type: string
              x-aihl-group: contatti
            contatti_email:
              type: string
              format: email
              x-aihl-group: contatti
            contatti_indirizzo:
              type: string
              x-aihl-group: contatti
            contatti_maps:
              type: string
              format: html
              x-aihl-group: contatti
            contactform_contacts:
              type: integer
              minimum: 0
              maximum: 999999999
              x-aihl-group: integrazioni
            mailchip_footer:
              type: integer
              minimum: 0
              maximum: 999999999
              x-aihl-group: integrazioni
    AIHLOptionsEnvelope:
      type: object
      required:
      - options
      properties:
        options:
          type: object
          additionalProperties: false
          properties:
            sito_descrizione:
              type: string
              x-aihl-group: sito
            site_logo_url:
              type: string
              format: uri
              x-aihl-group: media
            site_logo_transparent_url:
              type: string
              format: uri
              x-aihl-group: media
            site_logo_light_url:
              type: string
              format: uri
              x-aihl-group: media
            footer_logo_url:
              type: string
              format: uri
              x-aihl-group: media
            header_render_mode:
              type: string
              enum:
              - native
              - canvas
              x-aihl-group: header
            header_canvas_slot_id:
              type: string
              x-aihl-group: header
            header_structure:
              type: string
              enum:
              - standard
              - dualbar
              - centered
              - topbar-nav
              - mega-centered
              - sidebar
              - triple-row
              - stacked-centered
              x-aihl-group: header
            header_nav_layout:
              type: string
              enum:
              - clean
              - pills
              - underline
              - compact
              x-aihl-group: header
            header_nav_text_variant:
              type: string
              enum:
              - normal
              - uppercase
              - lowercase
              - italic
              - uppercase-italic
              - lowercase-italic
              x-aihl-group: header
            header_nav_font_weight:
              type: string
              enum:
              - '300'
              - '400'
              - '500'
              - '600'
              - '700'
              - '800'
              x-aihl-group: header
            header_nav_letter_spacing:
              type: number
              minimum: 0
              maximum: 0.2
              x-aihl-group: header
            header_overlay_mode:
              type: string
              enum:
              - auto
              - always
              - never
              x-aihl-group: header
            header_overlay_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: header
            header_overlay_blur:
              type: integer
              minimum: 0
              maximum: 24
              x-aihl-group: header
            header_sticky_style:
              type: string
              enum:
              - solid
              - blur
              - transparent
              - gradient-fade
              x-aihl-group: header
            header_search_style:
              type: string
              enum:
              - none
              - icon-dropdown
              - icon-fullscreen
              - inline
              x-aihl-group: header
            header_topbar_scroll_behavior:
              type: string
              enum:
              - scroll-away
              - sticky
              x-aihl-group: header
            header_show_logo:
              type: boolean
              x-aihl-group: header
            header_show_cta:
              type: boolean
              x-aihl-group: header
            header_show_login:
              type: boolean
              x-aihl-group: header
            menu_dropdown_indicator:
              type: boolean
              x-aihl-group: header
            header_cta_label:
              type: string
              x-aihl-group: header
            header_cta_url:
              type: string
              format: uri
              x-aihl-group: header
            header_login_label:
              type: string
              x-aihl-group: header
            header_login_url:
              type: string
              format: uri
              x-aihl-group: header
            mobile_nav_style:
              type: string
              enum:
              - rail
              - bottom-bar
              - none
              x-aihl-group: mobile
            mobile_rail_enable:
              type: boolean
              x-aihl-group: mobile
            mobile_rail_position:
              type: string
              enum:
              - left
              - right
              x-aihl-group: mobile
            mobile_rail_autohide:
              type: boolean
              x-aihl-group: mobile
            blog_layout:
              type: string
              enum:
              - grid
              - list
              - magazine
              x-aihl-group: article
            blog_sidebar:
              type: boolean
              x-aihl-group: article
            article_image_size_control:
              type: boolean
              x-aihl-group: article
            article_next_prev:
              type: boolean
              x-aihl-group: article
            article_related:
              type: boolean
              x-aihl-group: article
            article_related_link:
              type: boolean
              x-aihl-group: article
            article_content_size:
              type: integer
              minimum: 320
              maximum: 2560
              x-aihl-group: article
            article_author_box_style:
              type: string
              enum:
              - simple
              - compact
              - card
              - banner
              - editorial
              - enterprise
              - impact
              - signature
              - none
              x-aihl-group: article
            page_bg_type:
              type: string
              enum:
              - default
              - color
              - image
              - pattern
              x-aihl-group: page_background
            page_bg_color:
              type: string
              x-aihl-group: page_background
            page_bg_image:
              type: string
              format: uri
              x-aihl-group: page_background
            page_bg_image_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: page_background
            page_bg_image_size:
              type: string
              enum:
              - cover
              - contain
              - auto
              x-aihl-group: page_background
            page_bg_pattern:
              type: string
              enum:
              - none
              - dots
              - grid
              - diagonal
              - cross
              x-aihl-group: page_background
            page_bg_overlay_color:
              type: string
              x-aihl-group: page_background
            page_bg_overlay_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: page_background
            footer_render_mode:
              type: string
              enum:
              - native
              - canvas
              x-aihl-group: footer
            footer_canvas_slot_id:
              type: string
              x-aihl-group: footer
            footer_variant:
              type: string
              enum:
              - enterprise
              - futuristic
              - corporate
              - compact
              - mega-footer
              - minimal
              - cta-footer
              x-aihl-group: footer
            footer_columns_count:
              type: integer
              minimum: 3
              maximum: 5
              x-aihl-group: footer
            footer_background_enable:
              type: boolean
              x-aihl-group: footer
            footer_background_image:
              type: string
              format: uri
              x-aihl-group: footer
            footer_background_remote_url:
              type: string
              format: uri
              x-aihl-group: footer
            footer_background_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: footer
            footer_background_position:
              type: string
              enum:
              - center center
              - center top
              - center bottom
              - left center
              - right center
              x-aihl-group: footer
            footer_background_size:
              type: string
              enum:
              - auto
              - cover
              - contain
              x-aihl-group: footer
            footer_background_repeat:
              type: string
              enum:
              - no-repeat
              - repeat
              - repeat-x
              - repeat-y
              x-aihl-group: footer
            footer_overlay_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: footer
            footer_overlay_tone:
              type: string
              enum:
              - body
              - primary
              - dark
              - light
              x-aihl-group: footer
            footer_cta_title:
              type: string
              x-aihl-group: footer
            footer_cta_subtitle:
              type: string
              x-aihl-group: footer
            footer_cta_btn_label:
              type: string
              x-aihl-group: footer
            footer_cta_btn_url:
              type: string
              format: uri
              x-aihl-group: footer
            footer_cta_btn2_label:
              type: string
              x-aihl-group: footer
            footer_cta_btn2_url:
              type: string
              format: uri
              x-aihl-group: footer
            contatti_telefono:
              type: string
              x-aihl-group: contatti
            contatti_email:
              type: string
              format: email
              x-aihl-group: contatti
            contatti_indirizzo:
              type: string
              x-aihl-group: contatti
            contatti_maps:
              type: string
              format: html
              x-aihl-group: contatti
            contactform_contacts:
              type: integer
              minimum: 0
              maximum: 999999999
              x-aihl-group: integrazioni
            mailchip_footer:
              type: integer
              minimum: 0
              maximum: 999999999
              x-aihl-group: integrazioni
    AIHLOptionsPayload:
      type: object
      properties:
        theme:
          type: string
        options:
          type: object
          additionalProperties: false
          properties:
            sito_descrizione:
              type: string
              x-aihl-group: sito
            site_logo_url:
              type: string
              format: uri
              x-aihl-group: media
            site_logo_transparent_url:
              type: string
              format: uri
              x-aihl-group: media
            site_logo_light_url:
              type: string
              format: uri
              x-aihl-group: media
            footer_logo_url:
              type: string
              format: uri
              x-aihl-group: media
            header_render_mode:
              type: string
              enum:
              - native
              - canvas
              x-aihl-group: header
            header_canvas_slot_id:
              type: string
              x-aihl-group: header
            header_structure:
              type: string
              enum:
              - standard
              - dualbar
              - centered
              - topbar-nav
              - mega-centered
              - sidebar
              - triple-row
              - stacked-centered
              x-aihl-group: header
            header_nav_layout:
              type: string
              enum:
              - clean
              - pills
              - underline
              - compact
              x-aihl-group: header
            header_nav_text_variant:
              type: string
              enum:
              - normal
              - uppercase
              - lowercase
              - italic
              - uppercase-italic
              - lowercase-italic
              x-aihl-group: header
            header_nav_font_weight:
              type: string
              enum:
              - '300'
              - '400'
              - '500'
              - '600'
              - '700'
              - '800'
              x-aihl-group: header
            header_nav_letter_spacing:
              type: number
              minimum: 0
              maximum: 0.2
              x-aihl-group: header
            header_overlay_mode:
              type: string
              enum:
              - auto
              - always
              - never
              x-aihl-group: header
            header_overlay_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: header
            header_overlay_blur:
              type: integer
              minimum: 0
              maximum: 24
              x-aihl-group: header
            header_sticky_style:
              type: string
              enum:
              - solid
              - blur
              - transparent
              - gradient-fade
              x-aihl-group: header
            header_search_style:
              type: string
              enum:
              - none
              - icon-dropdown
              - icon-fullscreen
              - inline
              x-aihl-group: header
            header_topbar_scroll_behavior:
              type: string
              enum:
              - scroll-away
              - sticky
              x-aihl-group: header
            header_show_logo:
              type: boolean
              x-aihl-group: header
            header_show_cta:
              type: boolean
              x-aihl-group: header
            header_show_login:
              type: boolean
              x-aihl-group: header
            menu_dropdown_indicator:
              type: boolean
              x-aihl-group: header
            header_cta_label:
              type: string
              x-aihl-group: header
            header_cta_url:
              type: string
              format: uri
              x-aihl-group: header
            header_login_label:
              type: string
              x-aihl-group: header
            header_login_url:
              type: string
              format: uri
              x-aihl-group: header
            mobile_nav_style:
              type: string
              enum:
              - rail
              - bottom-bar
              - none
              x-aihl-group: mobile
            mobile_rail_enable:
              type: boolean
              x-aihl-group: mobile
            mobile_rail_position:
              type: string
              enum:
              - left
              - right
              x-aihl-group: mobile
            mobile_rail_autohide:
              type: boolean
              x-aihl-group: mobile
            blog_layout:
              type: string
              enum:
              - grid
              - list
              - magazine
              x-aihl-group: article
            blog_sidebar:
              type: boolean
              x-aihl-group: article
            article_image_size_control:
              type: boolean
              x-aihl-group: article
            article_next_prev:
              type: boolean
              x-aihl-group: article
            article_related:
              type: boolean
              x-aihl-group: article
            article_related_link:
              type: boolean
              x-aihl-group: article
            article_content_size:
              type: integer
              minimum: 320
              maximum: 2560
              x-aihl-group: article
            article_author_box_style:
              type: string
              enum:
              - simple
              - compact
              - card
              - banner
              - editorial
              - enterprise
              - impact
              - signature
              - none
              x-aihl-group: article
            page_bg_type:
              type: string
              enum:
              - default
              - color
              - image
              - pattern
              x-aihl-group: page_background
            page_bg_color:
              type: string
              x-aihl-group: page_background
            page_bg_image:
              type: string
              format: uri
              x-aihl-group: page_background
            page_bg_image_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: page_background
            page_bg_image_size:
              type: string
              enum:
              - cover
              - contain
              - auto
              x-aihl-group: page_background
            page_bg_pattern:
              type: string
              enum:
              - none
              - dots
              - grid
              - diagonal
              - cross
              x-aihl-group: page_background
            page_bg_overlay_color:
              type: string
              x-aihl-group: page_background
            page_bg_overlay_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: page_background
            footer_render_mode:
              type: string
              enum:
              - native
              - canvas
              x-aihl-group: footer
            footer_canvas_slot_id:
              type: string
              x-aihl-group: footer
            footer_variant:
              type: string
              enum:
              - enterprise
              - futuristic
              - corporate
              - compact
              - mega-footer
              - minimal
              - cta-footer
              x-aihl-group: footer
            footer_columns_count:
              type: integer
              minimum: 3
              maximum: 5
              x-aihl-group: footer
            footer_background_enable:
              type: boolean
              x-aihl-group: footer
            footer_background_image:
              type: string
              format: uri
              x-aihl-group: footer
            footer_background_remote_url:
              type: string
              format: uri
              x-aihl-group: footer
            footer_background_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: footer
            footer_background_position:
              type: string
              enum:
              - center center
              - center top
              - center bottom
              - left center
              - right center
              x-aihl-group: footer
            footer_background_size:
              type: string
              enum:
              - auto
              - cover
              - contain
              x-aihl-group: footer
            footer_background_repeat:
              type: string
              enum:
              - no-repeat
              - repeat
              - repeat-x
              - repeat-y
              x-aihl-group: footer
            footer_overlay_opacity:
              type: number
              minimum: 0
              maximum: 1
              x-aihl-group: footer
            footer_overlay_tone:
              type: string
              enum:
              - body
              - primary
              - dark
              - light
              x-aihl-group: footer
            footer_cta_title:
              type: string
              x-aihl-group: footer
            footer_cta_subtitle:
              type: string
              x-aihl-group: footer
            footer_cta_btn_label:
              type: string
              x-aihl-group: footer
            footer_cta_btn_url:
              type: string
              format: uri
              x-aihl-group: footer
            footer_cta_btn2_label:
              type: string
              x-aihl-group: footer
            footer_cta_btn2_url:
              type: string
              format: uri
              x-aihl-group: footer
            contatti_telefono:
              type: string
              x-aihl-group: contatti
            contatti_email:
              type: string
              format: email
              x-aihl-group: contatti
            contatti_indirizzo:
              type: string
              x-aihl-group: contatti
            contatti_maps:
              type: string
              format: html
              x-aihl-group: contatti
            contactform_contacts:
              type: integer
              minimum: 0
              maximum: 999999999
              x-aihl-group: integrazioni
            mailchip_footer:
              type: integer
              minimum: 0
              maximum: 999999999
              x-aihl-group: integrazioni
    PageCreateRequest:
      type: object
      required:
      - title
      properties:
        title:
          type: string
        content:
          type: string
        status:
          type: string
          enum:
          - draft
        template:
          type: string
    PageStatusRequest:
      type: object
      required:
      - status
      properties:
        status:
          type: string
          enum:
          - draft
          - pending
          - private
          - publish
    PageRestoreRequest:
      type: object
      additionalProperties: false
      properties: []
    PageUpdateRequest:
      type: object
      minProperties: 1
      additionalProperties: false
      properties:
        title:
          type: string
        slug:
          type: string
        content:
          type: string
        status:
          type: string
          enum:
          - draft
          - pending
          - private
          - publish
        template:
          type: string
    FrontPageRequest:
      type: object
      required:
      - show_on_front
      properties:
        show_on_front:
          type: string
          enum:
          - posts
          - page
        page_on_front:
          type: integer
          minimum: 0
    FrontPagePayload:
      type: object
      additionalProperties: true
    ResetRequest:
      type: object
      properties:
        components:
          type: array
          items:
            type: string
        dry_run:
          type: boolean
    SiteSettings:
      type: object
      additionalProperties: false
      properties:
        blogname:
          type: string
        blogdescription:
          type: string
        blog_public:
          type: boolean
        show_on_front:
          type: string
          enum:
          - posts
          - page
        page_on_front:
          type: integer
          minimum: 0
        page_for_posts:
          type: integer
          minimum: 0
        permalink_structure:
          type: string
    CanvasRequest:
      type: object
      additionalProperties: false
      properties:
        header:
          $ref: '#/components/schemas/CanvasArea'
        footer:
          $ref: '#/components/schemas/CanvasArea'
    CanvasArea:
      type: object
      additionalProperties: false
      properties:
        mode:
          type: string
          enum:
          - native
          - canvas
        slot_id:
          type: string
    RuntimeComponentRequest:
      type: object
      required:
      - name
      additionalProperties: false
      properties:
        name:
          type: string
          enum:
          - smart-logo
          - smart-menu
          - smart-social
          - smart-contact
          - smart-addon
        attributes:
          type: object
          additionalProperties: true
    ThemeUpdateRequest:
      type: object
      required:
      - action
      additionalProperties: false
      properties:
        action:
          type: string
          enum:
          - check
          - upgrade
    AuthorProfileRequest:
      type: object
      required:
      - style
      additionalProperties: false
      properties:
        user_id:
          type: integer
          minimum: 1
        style:
          type: string
          enum:
          - simple
          - compact
          - card
          - banner
          - editorial
          - enterprise
          - impact
          - signature
          - none
    PageBackground:
      type: object
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
          - default
          - color
          - image
          - pattern
        color:
          type: string
        image:
          type: string
          format: uri
        image_opacity:
          type: number
          minimum: 0
          maximum: 1
        image_size:
          type: string
          enum:
          - cover
          - contain
          - auto
        pattern:
          type: string
        overlay_color:
          type: string
        overlay_opacity:
          type: number
          minimum: 0
          maximum: 1
    ContentPresentation:
      type: object
      additionalProperties: false
      properties:
        post_id:
          type: integer
          minimum: 1
          readOnly: true
        subtitle:
          type: string
    CodeSlot:
      type: object
      required:
      - hook
      properties:
        id:
          type: string
        label:
          type: string
        hook:
          type: string
        type:
          type: string
          enum:
          - html
          - css
          - js
          - mixed
        code:
          type: string
        css:
          type: string
        js:
          type: string
        context:
          oneOf:
          - type: string
          - type: array
            items:
              type: string
        priority:
          type: integer
          minimum: 1
          maximum: 999
        active:
          type: boolean
x-aihl-generated: '2026-07-28T05:43:23+00:00'
x-aihl-schema-source: aihl_ai_options_whitelist
