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

# Generate a presentation asynchronously

> Create a background generation task and return immediately with its task identifier.

[Read the presentation workflow guide](/api-guides/presentation-generation-flows).



## OpenAPI

````yaml /archive/v0.9.0-beta/openapi/self-hosted.json post /api/v1/ppt/presentation/generate/async
openapi: 3.1.0
info:
  title: Presenton Self-hosted API
  version: v0.9.0-beta
  description: Supported public API served by a self-hosted Presenton deployment.
servers:
  - url: http://localhost:5001
    description: Local self-hosted instance
security: []
tags:
  - name: Presentations
    description: Generate and manage presentations.
  - name: Files and media
    description: Upload source files and images.
  - name: Templates and design
    description: Select reusable presentation designs.
  - name: Async and webhooks
    description: Monitor background work and receive events.
paths:
  /api/v1/ppt/presentation/generate/async:
    post:
      tags:
        - Presentation
      summary: Generate a presentation asynchronously
      description: >-
        Create a background generation task and return immediately with its task
        identifier.


        [Read the presentation workflow
        guide](/api-guides/presentation-generation-flows).
      operationId: generate_presentation_async_api_v1_ppt_presentation_generate_async_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeneratePresentationRequest'
            example:
              content: A concise introduction to renewable energy
              n_slides: 6
              language: English
              export_as: pptx
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncTaskModel'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
        - BasicAuth: []
      externalDocs:
        description: Read the presentation workflow guide
        url: /api-guides/presentation-generation-flows
components:
  schemas:
    GeneratePresentationRequest:
      properties:
        content:
          type: string
          title: Content
          description: The content for generating the presentation
        slides_markdown:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Slides Markdown
          description: The markdown for the slides
        instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Instructions
          description: The instruction for generating the presentation
        tone:
          $ref: '#/components/schemas/Tone'
          description: The tone to use for the text
          default: default
        verbosity:
          $ref: '#/components/schemas/Verbosity'
          description: How verbose the presentation should be
          default: standard
        web_search:
          type: boolean
          title: Web Search
          description: Whether to enable web search
          default: false
        n_slides:
          anyOf:
            - type: integer
            - type: 'null'
          title: N Slides
          description: >-
            Number of slides to generate. If omitted, model auto-detects slide
            count.
        language:
          anyOf:
            - type: string
            - type: 'null'
          title: Language
          description: >-
            Language for the presentation. If omitted, model auto-detects
            language.
        template:
          type: string
          title: Template
          description: Template to use for the presentation
          default: general
        include_table_of_contents:
          type: boolean
          title: Include Table Of Contents
          description: Whether to include a table of contents
          default: false
        include_title_slide:
          type: boolean
          title: Include Title Slide
          description: Whether to include a title slide
          default: true
        files:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Files
          description: Files to use for the presentation
        export_as:
          type: string
          enum:
            - pptx
            - pdf
          title: Export As
          description: Export format
          default: pptx
        trigger_webhook:
          type: boolean
          title: Trigger Webhook
          description: Whether to trigger subscribed webhooks
          default: false
      type: object
      required:
        - content
      title: GeneratePresentationRequest
    AsyncTaskModel:
      properties:
        id:
          type: string
          title: Id
        type:
          type: string
          title: Type
        status:
          type: string
          title: Status
        message:
          anyOf:
            - type: string
            - type: 'null'
          title: Message
        error:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Error
        data:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Data
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
        - type
        - status
        - created_at
        - updated_at
      title: AsyncTaskModel
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Tone:
      type: string
      enum:
        - default
        - casual
        - professional
        - funny
        - educational
        - sales_pitch
      title: Tone
    Verbosity:
      type: string
      enum:
        - concise
        - standard
        - text-heavy
      title: Verbosity
    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
  responses:
    Unauthorized:
      description: Authentication is missing or invalid.
    ServerError:
      description: Presenton or one of its configured dependencies failed.
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic

````