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

# Get generation status

> Poll this endpoint to check the progress of an async generation or chart update.

**Recommended polling interval:** Every 2-5 seconds.

**When to stop polling:** When `status` is one of:
- `completed` - All slides generated, download ready
- `partial` - Some slides generated, download ready
- `failed` - Generation failed, check `error` field

**Response fields:**
- `progress` (0-100) - Useful for progress bars
- `current_step` - Human-readable description of current work
- `slide_results` - Per-slide status (available when done)
- `download_url` - Time-limited URL to download .pptx (when ready)



## OpenAPI

````yaml /openapi/powerpoint-api.json get /api/v1/presentations/{generation_id}/status
openapi: 3.1.0
info:
  title: SlideKit
  description: >-
    A comprehensive API for PowerPoint template management and presentation
    generation
  version: 1.0.0
servers: []
security: []
paths:
  /api/v1/presentations/{generation_id}/status:
    get:
      tags:
        - presentations
      summary: Get generation status
      description: >-
        Poll this endpoint to check the progress of an async generation or chart
        update.


        **Recommended polling interval:** Every 2-5 seconds.


        **When to stop polling:** When `status` is one of:

        - `completed` - All slides generated, download ready

        - `partial` - Some slides generated, download ready

        - `failed` - Generation failed, check `error` field


        **Response fields:**

        - `progress` (0-100) - Useful for progress bars

        - `current_step` - Human-readable description of current work

        - `slide_results` - Per-slide status (available when done)

        - `download_url` - Time-limited URL to download .pptx (when ready)
      operationId: get_generation_status_api_v1_presentations__generation_id__status_get
      parameters:
        - name: generation_id
          in: path
          required: true
          schema:
            type: string
            title: Generation Id
      responses:
        '200':
          description: Status retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenerationStatusResponse'
        '404':
          description: Generation not found or doesn't belong to your organization
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    GenerationStatusResponse:
      properties:
        generation_id:
          type: string
          title: Generation Id
          description: Generation ID being queried.
          example: gen_abc123def456
        status:
          type: string
          title: Status
          description: 'Current status: pending, processing, completed, partial, or failed.'
          example: completed
        progress:
          type: integer
          maximum: 100
          minimum: 0
          title: Progress
          description: >-
            Progress percentage from 0 to 100. Useful for displaying progress
            bars.
          default: 0
          example: 100
        current_step:
          anyOf:
            - type: string
            - type: 'null'
          title: Current Step
          description: >-
            Human-readable description of current processing step. Null when
            complete.
          example: Generating slide 2 of 5
        message:
          anyOf:
            - type: string
            - type: 'null'
          title: Message
          description: Summary message, typically shown when complete.
          example: Generated 6 pages from 5/5 slides
        total_slides_requested:
          type: integer
          title: Total Slides Requested
          description: Total number of slides in the original request.
          default: 0
          example: 5
        total_pages_generated:
          type: integer
          title: Total Pages Generated
          description: >-
            Total pages in the generated deck. May exceed
            `total_slides_requested` when table pagination creates additional
            pages.
          default: 0
          example: 6
        slide_results:
          anyOf:
            - items:
                $ref: '#/components/schemas/DeckSlideResult'
              type: array
            - type: 'null'
          title: Slide Results
          description: >-
            Per-slide generation results. Available when status is completed,
            partial, or failed. Check each slide's status and error fields for
            details.
        file_size:
          anyOf:
            - type: integer
            - type: 'null'
          title: File Size
          description: Size of the generated .pptx file in bytes. Available when complete.
          example: 524288
        download_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Download Url
          description: >-
            Time-limited URL to download the generated .pptx file. Available
            when status is `completed` or `partial`. Expires after
            `download_url_expires_in` seconds.
          example: https://storage.example.com/download/gen_abc123.pptx?token=xyz
        download_url_expires_in:
          anyOf:
            - type: integer
            - type: 'null'
          title: Download Url Expires In
          description: Seconds until `download_url` expires. Typically 3600 (1 hour).
          example: 3600
        error:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Error
          description: >-
            Error details when status is `failed`. Contains `code` and `message`
            fields.
          example:
            code: GENERATION_FAILED
            message: Template not found
        created_at:
          type: string
          format: date-time
          title: Created At
          description: When the generation request was created.
        started_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Started At
          description: When processing started. Null if still pending.
        completed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Completed At
          description: >-
            When processing completed (success or failure). Null if still in
            progress.
      type: object
      required:
        - generation_id
        - status
        - created_at
      title: GenerationStatusResponse
      description: >-
        Response schema for generation status polling.


        Poll this endpoint every 2-5 seconds until `status` is a terminal state

        (`completed`, `partial`, or `failed`).


        **Status values:**

        - `pending` - Request queued, not yet started

        - `processing` - Generation in progress (check `progress` and
        `current_step`)

        - `completed` - All slides generated successfully

        - `partial` - Some slides succeeded, some failed (check `slide_results`
        for details)

        - `failed` - Generation failed completely (check `error` for details)


        **Download:** When status is `completed` or `partial`, `download_url`
        contains

        a time-limited URL to download the generated or updated .pptx file.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    DeckSlideResult:
      properties:
        slide_index:
          type: integer
          title: Slide Index
          description: Index of this slide in the original request array (0-based).
          example: 0
        template_slide_id:
          type: string
          title: Template Slide Id
          description: Template slide ID that was used (or attempted).
          example: slide_abc123def456
        pages_generated:
          type: integer
          title: Pages Generated
          description: >-
            Number of pages generated for this slide. Greater than 1 when table
            pagination occurs.
          default: 1
          example: 1
        status:
          type: string
          title: Status
          description: >-
            Status of this slide: 'completed' (success) or 'failed' (error
            occurred).
          example: completed
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
          description: Error message if slide generation failed. Null on success.
      type: object
      required:
        - slide_index
        - template_slide_id
        - status
      title: DeckSlideResult
      description: >-
        Result for a single slide within deck generation.


        Each slide in the request gets a corresponding result, even if it
        failed.

        Check `status` to determine if the slide was generated successfully.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Production API key. Development/test deployments may also allow
        X-Org-Name.

````