Generate presentation deck (async)
Generate a complete presentation deck with multiple slides asynchronously.
Use this endpoint when:
- You need to generate multiple slides in one presentation
- You’re building complete decks programmatically
- Slides may use different templates
Workflow:
- POST to this endpoint with your slides array
- Receive
generation_idimmediately (HTTP 202) - Poll
GET /presentations/{generation_id}/statusevery 2-5 seconds - When status is
completedorpartial, download fromdownload_url
Slide ordering: Slides appear in the generated deck in the same order as your slides array.
Mixed templates: Each slide can use a different template_slide_id, allowing you to
combine slides from multiple templates into one deck.
Per-slide options: Override deck-level options for specific slides by providing
options within individual slide objects.
Status values:
pending- Queued for processingprocessing- Generation in progresscompleted- All slides generated successfullypartial- Some slides succeeded, some failedfailed- Generation failed completely
Authorizations
Production API key. Development/test deployments may also allow X-Org-Name.
Body
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:
- POST to
/presentations/generate-deckwith this request body - Receive
generation_idandstatus_urlin response - Poll
GET /presentations/{generation_id}/statusuntil status iscompletedorfailed - Download the generated .pptx from the
download_urlin 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.
Ordered list of slides to generate. Minimum 1 slide required. Slides appear in the deck in this order.
1Organization name. If provided, must match the API key's organization. If omitted, the API key's organization is used.
"acme-corp"
Default generation options applied to all slides. Individual slides can override these by specifying their own options.
{
"allow_textbox_reposition": false,
"auto_paginate_tables": true,
"footer_font_name": "Arial",
"footer_font_size": 10,
"footer_text": "Confidential",
"show_slide_numbers": true,
"table_min_font_size": 8,
"textbox_min_font_size": 8
}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:
- Save the
generation_idfrom this response - Poll
status_url(orGET /presentations/{generation_id}/status) every few seconds - When status becomes
completed,partial, orfailed, generation is done - Download from
download_urlin the status response (forcompletedorpartial)
Unique identifier for this generation job. Use this to poll status and download the result.
"gen_abc123def456"
Initial status. Always 'pending' for new requests.
"pending"
Full URL to poll for generation status. Convenience field - you can also construct this as GET /presentations/{generation_id}/status.
"https://api.example.com/api/v1/presentations/gen_abc123def456/status"
Timestamp when the generation request was created.
Human-readable status message.
"Generation started. Poll status URL for progress."