Skip to main content
POST
Generate presentation deck (async)

Authorizations

X-API-Key
string
header
required

Production API key. Development/test deployments may also allow X-Org-Name.

Body

application/json

Request schema for generating a complete presentation deck with multiple slides.

This endpoint processes asynchronously due to the potentially large workload. It returns immediately with a generation_id that you use to poll for status.

Workflow:

  1. POST to /presentations/generate-deck with this request body
  2. Receive generation_id and status_url in response
  3. Poll GET /presentations/{generation_id}/status until status is completed or failed
  4. Download the generated .pptx from the download_url in the status response

Slides ordering: Slides appear in the generated deck in the same order as the slides array.

Mixed templates: Each slide can use a different template slide, allowing you to combine slides from multiple templates into a single deck.

slides
DeckSlideInput · object[]
required

Ordered list of slides to generate. Minimum 1 slide required. Slides appear in the deck in this order.

Minimum array length: 1
org_name
string | null

Organization name. If provided, must match the API key's organization. If omitted, the API key's organization is used.

Example:

"acme-corp"

options
GenerationOptions · object

Default generation options applied to all slides. Individual slides can override these by specifying their own options.

Example:

Response

Generation started - poll status endpoint for progress

Response schema for async generation requests.

This response is returned immediately when you POST to /presentations/generate or /presentations/generate-deck, and when you PUT to /presentations/{id}/update-charts. The actual Aspose work happens in the background.

Next steps:

  1. Save the generation_id from this response
  2. Poll status_url (or GET /presentations/{generation_id}/status) every few seconds
  3. When status becomes completed, partial, or failed, generation is done
  4. Download from download_url in the status response (for completed or partial)
generation_id
string
required

Unique identifier for this generation job. Use this to poll status and download the result.

Example:

"gen_abc123def456"

status
string
required

Initial status. Always 'pending' for new requests.

Example:

"pending"

status_url
string
required

Full URL to poll for generation status. Convenience field - you can also construct this as GET /presentations/{generation_id}/status.

Example:

"https://api.example.com/api/v1/presentations/gen_abc123def456/status"

created_at
string<date-time>
required

Timestamp when the generation request was created.

message
string
default:Generation started

Human-readable status message.

Example:

"Generation started. Poll status URL for progress."