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

# Preview an app without persisting changes

> Render the supplied app code in the sandbox and return the resulting HTML. Used by the editor's preview pane.



## OpenAPI

````yaml https://dev.enneo.dev/api/mind/docs/open-api post /app/{appId}/preview
openapi: 3.0.0
info:
  version: '1'
  title: enneo.MIND API
  description: This describes the API of enneo Mind, the main ticketing backend
  contact:
    name: enneo GmbH
    email: richard@enneo.ai
  license:
    name: Proprietary software
    url: https://enneo.ai
servers:
  - url: https://demo.enneo.ai/api/mind
    description: Production server, demo client
  - url: https://main.enneo.dev/api/mind
    description: Development main branch
  - url: http://localhost:8005/api/mind
    description: Local development server
security:
  - bearerAuth:
      - api
  - cookieAuth:
      - api
paths:
  /app/{appId}/preview:
    post:
      tags:
        - Apps
      summary: Preview an app without persisting changes
      description: >-
        Render the supplied app code in the sandbox and return the resulting
        HTML. Used by the editor's preview pane.
      operationId: previewApp
      parameters:
        - name: appId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/App'
      responses:
        '200':
          description: Rendered HTML
          content:
            text/html:
              schema:
                type: string
components:
  schemas:
    App:
      type: object
      properties:
        id:
          type: integer
          nullable: true
          description: >-
            Internal numeric row id of the active revision. `null` for
            previews/imports.
        appId:
          type: string
          description: >-
            Stable app identifier (nano-id). Use this in routes like
            `/app/{appId}`.
          example: k4FqL2Hm
        revision:
          type: integer
          description: Monotonic revision counter. Incremented on every update.
          example: 7
        name:
          type: string
          example: Customer health check
        slug:
          type: string
          description: URL-safe slug derived from `name`.
          example: customer-health-check
        description:
          type: string
          nullable: true
        vendor:
          type: string
          nullable: true
          description: Author/team. Stored as plain text.
        availability:
          type: string
          nullable: true
          description: >-
            Visibility/availability flag (see `Mind/Models/App.php` for the
            allowed values).
        appearance:
          type: object
          nullable: true
          description: UI-level config (icon, color, layout hints).
        data:
          type: object
          description: >
            The app body. Contains the HTML template, the executor source
            (Python/Node/PHP) and any

            static parameters. The exact shape is owned by the app author.
        isActive:
          type: boolean
          example: true
        deletedAt:
          type: string
          format: date-time
          nullable: true
        createdBy:
          type: integer
          nullable: true
          description: Profile id of the creating user.
        createdAt:
          type: string
          format: date-time
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT-based authentication
      x-scopes:
        api: Full access to the API
    cookieAuth:
      type: apiKey
      in: cookie
      name: connect.sid
      description: Cookie-based authentication
      x-scopes:
        api: Full access to the API

````