---
title: "Create a deck and stream bounded generation status"
method: POST
path: "/decks/stream"
tags: ["decks"]
---

# Create a deck and stream bounded generation status

`POST /decks/stream`

## Request

- Base URL: `https://api.presentations.ai/api/v1`
- URL: `https://api.presentations.ai/api/v1/decks/stream`
- Auth: HTTP bearer

Create or replay a durable deck generation and stream bounded status.

This is the streaming transport for the same idempotent operation as
`POST /decks`. Disconnecting or reaching the wait bound never cancels the
generation; callers resume through the emitted `request.status_url`.

## Query parameters

- `wait` integer: Seconds to stream request status before detaching (0-180).

## Headers

- `Request-Id` string, required: Caller request ID shared with POST /decks retries.

## Request body

- union: Create a deck and optionally run generation through final export. The run covers outline -> slides -> export. `source_text` is raw text used as source material, equivalent to an attached document but with no upload or extraction step. Files-only generates from the attached documents; extraction must have completed (409 otherwise). A caller-authored `outline` skips outline generation and runs the supplied structure directly through slides and export. It cannot be combined with a prompt or document sources. Use `POST /outlines` for stateless preview and review before creating a deck. At least one generation input is required. Omitted name defaults to a placeholder, replaced by the requested or authored title when available.
  - object
    - `prompt` string, nullable
    - `sources` union[], nullable: Inline text and/or references to files uploaded through POST /files.
      - union
        - TextSource: Inline factual source material supplied directly in the request.
          - `type` 'text', required
          - `content` string, required
        - FileSource: Reference to a source document previously uploaded through `/files`.
          - `type` 'file', required
          - `file_id` string, uuid, required
    - `source_text` string, nullable: Deprecated inline-source field; use a text entry in sources.
    - `file_ids` string[], nullable: Deprecated uploaded-file field; use file entries in sources.
    - `name` string
    - `visibility` 'PROJECT' | 'PRIVATE' | 'WORKSPACE' | 'PUBLIC': Default access mode for a deck.
    - `project_id` string, uuid, nullable
    - `deck_title` string, nullable, required
    - `outline` PresentationOutline: Complete validated presentation outline.
      - `documentTitle` string, nullable
      - `hook` string, nullable
      - `researchSummary` string, nullable
      - `contentLanguage` string, nullable
      - `footerText` string, nullable
      - `imagePrompt` string, nullable
      - `contentMode` string, nullable
      - `companyName` string, nullable
      - `companyDomain` string, nullable
      - `slides` PresentationOutlineSlide[], required
        - `heading` string, required
        - `subheading` string, nullable
        - `description` string, nullable
        - `category` string, nullable
        - `useCase` string, nullable
        - `speakerNotes` string, nullable
        - `visualComposition` string[], nullable
        - `graphicSubtypes` object, nullable
        - `graphics` OutlineGraphic[], nullable
          - `type` string, required
          - `heading` string, nullable
          - `items` OutlineGraphicItem[], nullable
            - `h` string, nullable
            - `b` string, nullable
            - `v` string, nullable
            - `s` string, nullable
            - `i` string, nullable
            - `sub` string[], nullable
            - `tags` string[], nullable
            - `metric` string, nullable
            - `entity` string, nullable
            - `entityDomain` string, nullable
            - `trend` string, nullable
            - `status` string, nullable
            - `delta` string, nullable
            - `period` string, nullable
          - `rows` string[], nullable
          - `extra` OutlineGraphicItem[], nullable
            - `h` string, nullable
            - `b` string, nullable
            - `v` string, nullable
            - `s` string, nullable
            - `i` string, nullable
            - `sub` string[], nullable
            - `tags` string[], nullable
            - `metric` string, nullable
            - `entity` string, nullable
            - `entityDomain` string, nullable
            - `trend` string, nullable
            - `status` string, nullable
            - `delta` string, nullable
            - `period` string, nullable
          - `callout` string, nullable
          - `stamp` string, nullable
          - `footnote` string, nullable
          - `ref` OutlineRef: A benchmark/target line a chart should show (`<ref label v/>`).
            - `label` string, nullable
            - `v` string, nullable
          - `highlight` OutlineHighlight: The one element of a graphic the heading rests on (`<highlight kind at>why</highlight>`).
            - `kind` string, nullable
            - `at` string, nullable
            - `text` string, nullable
        - `imageQuery` string, nullable
        - `sources` OutlineSource[], nullable
          - `domain` string, nullable
          - `text` string, nullable
          - `url` string, nullable
        - `confidence` string, nullable
    - `company` string, nullable
    - `creator_role` string, nullable
    - `model` 'STANDARD' | 'PRO' | 'ULTRA': User-selected generation model tier.
    - `language` string
    - `slide_count` string, nullable
    - `level_of_detail` 'BRIEF' | 'STANDARD' | 'DETAILED' | 'VERY_DETAILED': Requested outline density.
    - `insider_content` string, nullable
    - `export_format` 'PPTX' | 'PDF' | 'IMAGE': Artifact format produced by the converter (PPTX) or the renderer (PDF/IMAGE).
    - `audience` string, nullable: Who the deck is for. Omitted: inferred from the prompt and sources, never asked back (the API run has no questions).
    - `deck_purpose` string, nullable: Purpose id from the deck purpose taxonomy: pitch, sales, marketing, strategy, report, training, teaching, coursework, product, research, security, general.
    - `brand_kit_id` string, uuid, nullable: Style the deck as a brand: an `id` from `GET /brand-kits`. Omitted: no brand kit.
    - `deep_search` boolean: Consultant-grade research and exhibit slides (paid plans; DEEP_SEARCH_OUTLINE credits per slide). Not applicable to an authored outline.
  - object
    - `prompt` string, nullable, required
    - `sources` union[], nullable: Inline text and/or references to files uploaded through POST /files.
      - union
        - TextSource: Inline factual source material supplied directly in the request.
          - `type` 'text', required
          - `content` string, required
        - FileSource: Reference to a source document previously uploaded through `/files`.
          - `type` 'file', required
          - `file_id` string, uuid, required
    - `source_text` string, nullable: Deprecated inline-source field; use a text entry in sources.
    - `file_ids` string[], nullable: Deprecated uploaded-file field; use file entries in sources.
    - `name` string
    - `visibility` 'PROJECT' | 'PRIVATE' | 'WORKSPACE' | 'PUBLIC': Default access mode for a deck.
    - `project_id` string, uuid, nullable
    - `deck_title` string, nullable
    - `outline` PresentationOutline: Complete validated presentation outline.
      - `documentTitle` string, nullable
      - `hook` string, nullable
      - `researchSummary` string, nullable
      - `contentLanguage` string, nullable
      - `footerText` string, nullable
      - `imagePrompt` string, nullable
      - `contentMode` string, nullable
      - `companyName` string, nullable
      - `companyDomain` string, nullable
      - `slides` PresentationOutlineSlide[], required
        - `heading` string, required
        - `subheading` string, nullable
        - `description` string, nullable
        - `category` string, nullable
        - `useCase` string, nullable
        - `speakerNotes` string, nullable
        - `visualComposition` string[], nullable
        - `graphicSubtypes` object, nullable
        - `graphics` OutlineGraphic[], nullable
          - `type` string, required
          - `heading` string, nullable
          - `items` OutlineGraphicItem[], nullable
            - `h` string, nullable
            - `b` string, nullable
            - `v` string, nullable
            - `s` string, nullable
            - `i` string, nullable
            - `sub` string[], nullable
            - `tags` string[], nullable
            - `metric` string, nullable
            - `entity` string, nullable
            - `entityDomain` string, nullable
            - `trend` string, nullable
            - `status` string, nullable
            - `delta` string, nullable
            - `period` string, nullable
          - `rows` string[], nullable
          - `extra` OutlineGraphicItem[], nullable
            - `h` string, nullable
            - `b` string, nullable
            - `v` string, nullable
            - `s` string, nullable
            - `i` string, nullable
            - `sub` string[], nullable
            - `tags` string[], nullable
            - `metric` string, nullable
            - `entity` string, nullable
            - `entityDomain` string, nullable
            - `trend` string, nullable
            - `status` string, nullable
            - `delta` string, nullable
            - `period` string, nullable
          - `callout` string, nullable
          - `stamp` string, nullable
          - `footnote` string, nullable
          - `ref` OutlineRef: A benchmark/target line a chart should show (`<ref label v/>`).
            - `label` string, nullable
            - `v` string, nullable
          - `highlight` OutlineHighlight: The one element of a graphic the heading rests on (`<highlight kind at>why</highlight>`).
            - `kind` string, nullable
            - `at` string, nullable
            - `text` string, nullable
        - `imageQuery` string, nullable
        - `sources` OutlineSource[], nullable
          - `domain` string, nullable
          - `text` string, nullable
          - `url` string, nullable
        - `confidence` string, nullable
    - `company` string, nullable
    - `creator_role` string, nullable
    - `model` 'STANDARD' | 'PRO' | 'ULTRA': User-selected generation model tier.
    - `language` string
    - `slide_count` string, nullable
    - `level_of_detail` 'BRIEF' | 'STANDARD' | 'DETAILED' | 'VERY_DETAILED': Requested outline density.
    - `insider_content` string, nullable
    - `export_format` 'PPTX' | 'PDF' | 'IMAGE': Artifact format produced by the converter (PPTX) or the renderer (PDF/IMAGE).
    - `audience` string, nullable: Who the deck is for. Omitted: inferred from the prompt and sources, never asked back (the API run has no questions).
    - `deck_purpose` string, nullable: Purpose id from the deck purpose taxonomy: pitch, sales, marketing, strategy, report, training, teaching, coursework, product, research, security, general.
    - `brand_kit_id` string, uuid, nullable: Style the deck as a brand: an `id` from `GET /brand-kits`. Omitted: no brand kit.
    - `deep_search` boolean: Consultant-grade research and exhibit slides (paid plans; DEEP_SEARCH_OUTLINE credits per slide). Not applicable to an authored outline.
  - object
    - `prompt` string, nullable
    - `sources` union[], nullable, required: Inline text and/or references to files uploaded through POST /files.
      - union
        - TextSource: Inline factual source material supplied directly in the request.
          - `type` 'text', required
          - `content` string, required
        - FileSource: Reference to a source document previously uploaded through `/files`.
          - `type` 'file', required
          - `file_id` string, uuid, required
    - `source_text` string, nullable: Deprecated inline-source field; use a text entry in sources.
    - `file_ids` string[], nullable: Deprecated uploaded-file field; use file entries in sources.
    - `name` string
    - `visibility` 'PROJECT' | 'PRIVATE' | 'WORKSPACE' | 'PUBLIC': Default access mode for a deck.
    - `project_id` string, uuid, nullable
    - `deck_title` string, nullable
    - `outline` PresentationOutline: Complete validated presentation outline.
      - `documentTitle` string, nullable
      - `hook` string, nullable
      - `researchSummary` string, nullable
      - `contentLanguage` string, nullable
      - `footerText` string, nullable
      - `imagePrompt` string, nullable
      - `contentMode` string, nullable
      - `companyName` string, nullable
      - `companyDomain` string, nullable
      - `slides` PresentationOutlineSlide[], required
        - `heading` string, required
        - `subheading` string, nullable
        - `description` string, nullable
        - `category` string, nullable
        - `useCase` string, nullable
        - `speakerNotes` string, nullable
        - `visualComposition` string[], nullable
        - `graphicSubtypes` object, nullable
        - `graphics` OutlineGraphic[], nullable
          - `type` string, required
          - `heading` string, nullable
          - `items` OutlineGraphicItem[], nullable
            - `h` string, nullable
            - `b` string, nullable
            - `v` string, nullable
            - `s` string, nullable
            - `i` string, nullable
            - `sub` string[], nullable
            - `tags` string[], nullable
            - `metric` string, nullable
            - `entity` string, nullable
            - `entityDomain` string, nullable
            - `trend` string, nullable
            - `status` string, nullable
            - `delta` string, nullable
            - `period` string, nullable
          - `rows` string[], nullable
          - `extra` OutlineGraphicItem[], nullable
            - `h` string, nullable
            - `b` string, nullable
            - `v` string, nullable
            - `s` string, nullable
            - `i` string, nullable
            - `sub` string[], nullable
            - `tags` string[], nullable
            - `metric` string, nullable
            - `entity` string, nullable
            - `entityDomain` string, nullable
            - `trend` string, nullable
            - `status` string, nullable
            - `delta` string, nullable
            - `period` string, nullable
          - `callout` string, nullable
          - `stamp` string, nullable
          - `footnote` string, nullable
          - `ref` OutlineRef: A benchmark/target line a chart should show (`<ref label v/>`).
            - `label` string, nullable
            - `v` string, nullable
          - `highlight` OutlineHighlight: The one element of a graphic the heading rests on (`<highlight kind at>why</highlight>`).
            - `kind` string, nullable
            - `at` string, nullable
            - `text` string, nullable
        - `imageQuery` string, nullable
        - `sources` OutlineSource[], nullable
          - `domain` string, nullable
          - `text` string, nullable
          - `url` string, nullable
        - `confidence` string, nullable
    - `company` string, nullable
    - `creator_role` string, nullable
    - `model` 'STANDARD' | 'PRO' | 'ULTRA': User-selected generation model tier.
    - `language` string
    - `slide_count` string, nullable
    - `level_of_detail` 'BRIEF' | 'STANDARD' | 'DETAILED' | 'VERY_DETAILED': Requested outline density.
    - `insider_content` string, nullable
    - `export_format` 'PPTX' | 'PDF' | 'IMAGE': Artifact format produced by the converter (PPTX) or the renderer (PDF/IMAGE).
    - `audience` string, nullable: Who the deck is for. Omitted: inferred from the prompt and sources, never asked back (the API run has no questions).
    - `deck_purpose` string, nullable: Purpose id from the deck purpose taxonomy: pitch, sales, marketing, strategy, report, training, teaching, coursework, product, research, security, general.
    - `brand_kit_id` string, uuid, nullable: Style the deck as a brand: an `id` from `GET /brand-kits`. Omitted: no brand kit.
    - `deep_search` boolean: Consultant-grade research and exhibit slides (paid plans; DEEP_SEARCH_OUTLINE credits per slide). Not applicable to an authored outline.
  - object
    - `prompt` string, nullable
    - `sources` union[], nullable: Inline text and/or references to files uploaded through POST /files.
      - union
        - TextSource: Inline factual source material supplied directly in the request.
          - `type` 'text', required
          - `content` string, required
        - FileSource: Reference to a source document previously uploaded through `/files`.
          - `type` 'file', required
          - `file_id` string, uuid, required
    - `source_text` string, nullable, required: Deprecated inline-source field; use a text entry in sources.
    - `file_ids` string[], nullable: Deprecated uploaded-file field; use file entries in sources.
    - `name` string
    - `visibility` 'PROJECT' | 'PRIVATE' | 'WORKSPACE' | 'PUBLIC': Default access mode for a deck.
    - `project_id` string, uuid, nullable
    - `deck_title` string, nullable
    - `outline` PresentationOutline: Complete validated presentation outline.
      - `documentTitle` string, nullable
      - `hook` string, nullable
      - `researchSummary` string, nullable
      - `contentLanguage` string, nullable
      - `footerText` string, nullable
      - `imagePrompt` string, nullable
      - `contentMode` string, nullable
      - `companyName` string, nullable
      - `companyDomain` string, nullable
      - `slides` PresentationOutlineSlide[], required
        - `heading` string, required
        - `subheading` string, nullable
        - `description` string, nullable
        - `category` string, nullable
        - `useCase` string, nullable
        - `speakerNotes` string, nullable
        - `visualComposition` string[], nullable
        - `graphicSubtypes` object, nullable
        - `graphics` OutlineGraphic[], nullable
          - `type` string, required
          - `heading` string, nullable
          - `items` OutlineGraphicItem[], nullable
            - `h` string, nullable
            - `b` string, nullable
            - `v` string, nullable
            - `s` string, nullable
            - `i` string, nullable
            - `sub` string[], nullable
            - `tags` string[], nullable
            - `metric` string, nullable
            - `entity` string, nullable
            - `entityDomain` string, nullable
            - `trend` string, nullable
            - `status` string, nullable
            - `delta` string, nullable
            - `period` string, nullable
          - `rows` string[], nullable
          - `extra` OutlineGraphicItem[], nullable
            - `h` string, nullable
            - `b` string, nullable
            - `v` string, nullable
            - `s` string, nullable
            - `i` string, nullable
            - `sub` string[], nullable
            - `tags` string[], nullable
            - `metric` string, nullable
            - `entity` string, nullable
            - `entityDomain` string, nullable
            - `trend` string, nullable
            - `status` string, nullable
            - `delta` string, nullable
            - `period` string, nullable
          - `callout` string, nullable
          - `stamp` string, nullable
          - `footnote` string, nullable
          - `ref` OutlineRef: A benchmark/target line a chart should show (`<ref label v/>`).
            - `label` string, nullable
            - `v` string, nullable
          - `highlight` OutlineHighlight: The one element of a graphic the heading rests on (`<highlight kind at>why</highlight>`).
            - `kind` string, nullable
            - `at` string, nullable
            - `text` string, nullable
        - `imageQuery` string, nullable
        - `sources` OutlineSource[], nullable
          - `domain` string, nullable
          - `text` string, nullable
          - `url` string, nullable
        - `confidence` string, nullable
    - `company` string, nullable
    - `creator_role` string, nullable
    - `model` 'STANDARD' | 'PRO' | 'ULTRA': User-selected generation model tier.
    - `language` string
    - `slide_count` string, nullable
    - `level_of_detail` 'BRIEF' | 'STANDARD' | 'DETAILED' | 'VERY_DETAILED': Requested outline density.
    - `insider_content` string, nullable
    - `export_format` 'PPTX' | 'PDF' | 'IMAGE': Artifact format produced by the converter (PPTX) or the renderer (PDF/IMAGE).
    - `audience` string, nullable: Who the deck is for. Omitted: inferred from the prompt and sources, never asked back (the API run has no questions).
    - `deck_purpose` string, nullable: Purpose id from the deck purpose taxonomy: pitch, sales, marketing, strategy, report, training, teaching, coursework, product, research, security, general.
    - `brand_kit_id` string, uuid, nullable: Style the deck as a brand: an `id` from `GET /brand-kits`. Omitted: no brand kit.
    - `deep_search` boolean: Consultant-grade research and exhibit slides (paid plans; DEEP_SEARCH_OUTLINE credits per slide). Not applicable to an authored outline.
  - object
    - `prompt` string, nullable
    - `sources` union[], nullable: Inline text and/or references to files uploaded through POST /files.
      - union
        - TextSource: Inline factual source material supplied directly in the request.
          - `type` 'text', required
          - `content` string, required
        - FileSource: Reference to a source document previously uploaded through `/files`.
          - `type` 'file', required
          - `file_id` string, uuid, required
    - `source_text` string, nullable: Deprecated inline-source field; use a text entry in sources.
    - `file_ids` string[], nullable, required: Deprecated uploaded-file field; use file entries in sources.
    - `name` string
    - `visibility` 'PROJECT' | 'PRIVATE' | 'WORKSPACE' | 'PUBLIC': Default access mode for a deck.
    - `project_id` string, uuid, nullable
    - `deck_title` string, nullable
    - `outline` PresentationOutline: Complete validated presentation outline.
      - `documentTitle` string, nullable
      - `hook` string, nullable
      - `researchSummary` string, nullable
      - `contentLanguage` string, nullable
      - `footerText` string, nullable
      - `imagePrompt` string, nullable
      - `contentMode` string, nullable
      - `companyName` string, nullable
      - `companyDomain` string, nullable
      - `slides` PresentationOutlineSlide[], required
        - `heading` string, required
        - `subheading` string, nullable
        - `description` string, nullable
        - `category` string, nullable
        - `useCase` string, nullable
        - `speakerNotes` string, nullable
        - `visualComposition` string[], nullable
        - `graphicSubtypes` object, nullable
        - `graphics` OutlineGraphic[], nullable
          - `type` string, required
          - `heading` string, nullable
          - `items` OutlineGraphicItem[], nullable
            - `h` string, nullable
            - `b` string, nullable
            - `v` string, nullable
            - `s` string, nullable
            - `i` string, nullable
            - `sub` string[], nullable
            - `tags` string[], nullable
            - `metric` string, nullable
            - `entity` string, nullable
            - `entityDomain` string, nullable
            - `trend` string, nullable
            - `status` string, nullable
            - `delta` string, nullable
            - `period` string, nullable
          - `rows` string[], nullable
          - `extra` OutlineGraphicItem[], nullable
            - `h` string, nullable
            - `b` string, nullable
            - `v` string, nullable
            - `s` string, nullable
            - `i` string, nullable
            - `sub` string[], nullable
            - `tags` string[], nullable
            - `metric` string, nullable
            - `entity` string, nullable
            - `entityDomain` string, nullable
            - `trend` string, nullable
            - `status` string, nullable
            - `delta` string, nullable
            - `period` string, nullable
          - `callout` string, nullable
          - `stamp` string, nullable
          - `footnote` string, nullable
          - `ref` OutlineRef: A benchmark/target line a chart should show (`<ref label v/>`).
            - `label` string, nullable
            - `v` string, nullable
          - `highlight` OutlineHighlight: The one element of a graphic the heading rests on (`<highlight kind at>why</highlight>`).
            - `kind` string, nullable
            - `at` string, nullable
            - `text` string, nullable
        - `imageQuery` string, nullable
        - `sources` OutlineSource[], nullable
          - `domain` string, nullable
          - `text` string, nullable
          - `url` string, nullable
        - `confidence` string, nullable
    - `company` string, nullable
    - `creator_role` string, nullable
    - `model` 'STANDARD' | 'PRO' | 'ULTRA': User-selected generation model tier.
    - `language` string
    - `slide_count` string, nullable
    - `level_of_detail` 'BRIEF' | 'STANDARD' | 'DETAILED' | 'VERY_DETAILED': Requested outline density.
    - `insider_content` string, nullable
    - `export_format` 'PPTX' | 'PDF' | 'IMAGE': Artifact format produced by the converter (PPTX) or the renderer (PDF/IMAGE).
    - `audience` string, nullable: Who the deck is for. Omitted: inferred from the prompt and sources, never asked back (the API run has no questions).
    - `deck_purpose` string, nullable: Purpose id from the deck purpose taxonomy: pitch, sales, marketing, strategy, report, training, teaching, coursework, product, research, security, general.
    - `brand_kit_id` string, uuid, nullable: Style the deck as a brand: an `id` from `GET /brand-kits`. Omitted: no brand kit.
    - `deep_search` boolean: Consultant-grade research and exhibit slides (paid plans; DEEP_SEARCH_OUTLINE credits per slide). Not applicable to an authored outline.

## Response `200`

Strict accepted and request-status events. A detached event means durable generation is still running and should be polled at its status URL.

## Other responses

- `401`: Authentication failed.
- `402`: The workspace has insufficient generation credits.
- `403`: The caller or workspace plan cannot create the deck.
- `404`: A referenced source file does not exist in the caller's workspace.
- `409`: Request-ID conflict or source files are not ready.
- `422`: A header, query, or request-body field failed validation.
- `429`: The caller exceeded the API rate limit.
- `500`: Unexpected server failure. Retry only idempotent operations and retain trace_id.

---

[API](https://skmtc.dev/presentations/apis/presentation-services-api.md) · [All operations](https://skmtc.dev/presentations/apis/presentation-services-api/llms.txt) · [OpenAPI document](https://skmtc.dev/presentations/apis/presentation-services-api/revisions/da06cb2e2f32?raw)
