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

# List presentations

> Returns all non-deleted presentations created from this deck.



## OpenAPI

````yaml /openapi.json get /api/decks/{deckId}/presentations
openapi: 3.0.0
info:
  title: AI Presentations API
  version: 1.0.0
  description: >-
    REST API for AI Presentations — an AI-powered presentation platform with
    narrated slides, live Q&A, and deck management.


    **Authentication**: Most endpoints require a session cookie obtained from
    `POST /api/auth/login`. Presentation playback endpoints (`/api/qa`,
    `/api/narration/*`) also accept a `presentationId` for unauthenticated
    viewer access.
  contact:
    name: Demand IQ
    url: https://demand-iq.com
servers:
  - url: https://app.demand-iq.com
    description: Production
  - url: http://localhost:3000
    description: Local development
security: []
tags:
  - name: Decks
    description: Manage presentation decks
  - name: Slides
    description: Manage slides within a deck
  - name: FAQs
    description: Manage pre-built Q&A pairs
  - name: Branding
    description: Colors, logo, and call-to-action configuration
  - name: Q&A
    description: Live question answering and Q&A settings
  - name: Narration
    description: Text-to-speech synthesis
  - name: Presentations
    description: Create and manage personalized presentation instances
  - name: Generation
    description: AI-powered content generation from slide images
  - name: Images
    description: Image upload and management
  - name: Voices
    description: Available TTS voices
  - name: Utility
    description: Health check and diagnostics
  - name: Authentication
    description: Session-based login, logout, and identity
  - name: Company
    description: Organization contact info and knowledge base
  - name: Notifications
    description: Event subscriptions and delivery log
  - name: Contracts
    description: Contract template import and e-signature
  - name: Fonts
    description: Available Google Fonts for branding
  - name: Roof Measurements
    description: Request and track automated roof measurements
  - name: Actions
    description: Voice/text command detection for presentation control
  - name: Appointments
    description: Appointment scheduling for presentation viewers
  - name: Activity
    description: Recent presentation activity feed
  - name: Onboarding
    description: >-
      Per-user product onboarding milestones (ENG-641). Milestone endpoints are
      idempotent and are called by the app UI — they should not be treated as
      tenant-integration surface.
paths:
  /api/decks/{deckId}/presentations:
    get:
      tags:
        - Presentations
      summary: List presentations
      description: Returns all non-deleted presentations created from this deck.
      parameters:
        - in: path
          name: deckId
          required: true
          schema:
            type: string
            format: uuid
          description: UUID of the deck
      responses:
        '200':
          description: List of presentations
          content:
            application/json:
              schema:
                type: object
                properties:
                  presentations:
                    type: array
                    items:
                      $ref: '#/components/schemas/Presentation'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - sessionCookie: []
components:
  schemas:
    Presentation:
      type: object
      properties:
        id:
          type: string
          format: uuid
        deckId:
          type: string
          format: uuid
        companyId:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - not_started
            - pending
            - processing
            - ready
            - failed
        homeownerData:
          $ref: '#/components/schemas/HomeownerData'
        voiceSettings:
          type: object
          nullable: true
        languageSettings:
          type: object
          nullable: true
        createdBy:
          type: string
          format: uuid
          nullable: true
          description: >-
            ID of the user who created the presentation. Null for presentations
            created by an automated integration rather than a user, and for
            presentations created before creator tracking was added.
        leadSource:
          type: string
          nullable: true
          maxLength: 100
          description: >-
            Origin of the lead this presentation was created for, captured once
            at creation time. The value names the Demand IQ application that
            recorded the prospect's first touch, such as `hero`, `web-lead`,
            `stella`, or `webhook`. `unknown` means the prospect exists but has
            no recorded first touch. Null for presentations created before lead
            source tracking was added, and for presentations where the origin
            could not be determined.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        deletedAt:
          type: string
          format: date-time
          nullable: true
      required:
        - id
        - deckId
        - companyId
        - status
        - createdAt
        - updatedAt
    Error:
      type: object
      properties:
        error:
          type: string
      required:
        - error
    HomeownerData:
      type: object
      properties:
        first_name:
          type: string
        last_name:
          type: string
        address:
          type: string
        city:
          type: string
        state:
          type: string
        zip:
          type: string
        country:
          type: string
          minLength: 2
          maxLength: 2
          description: ISO 3166-1 alpha-2 country code
          example: US
        email:
          type: string
          format: email
        phone:
          type: string
      required:
        - first_name
        - address
        - city
        - country
  securitySchemes:
    sessionCookie:
      type: apiKey
      in: cookie
      name: session
      description: Session cookie obtained from `POST /api/auth/login`.

````