Generate single slide (async)
Generate a single slide asynchronously from a template slide and your data.
Workflow:
- Upload and analyze a template first (see Templates endpoints)
- Get the
template_slide_idfrom analysis results - POST to this endpoint with your slide data
- Receive
generation_idimmediately (HTTP 202) - Poll
GET /presentations/{generation_id}/statusevery 2-5 seconds - When status is
completed, download fromdownload_url
Table Pagination: If your slide is table-only and auto_paginate_tables
is enabled (default), a large table may generate multiple slides. Check
total_pages_generated in the status response. Slides that combine table and text content
should set auto_paginate_tables to false.
For multiple slides: Use POST /presentations/generate-deck instead.
Authorizations
Production API key. Development/test deployments may also allow X-Org-Name.
Body
Request schema for generating a single slide asynchronously.
Use this endpoint for quick single-slide generation. The route returns a generation ID immediately; poll the status endpoint for progress and the final download URL.
Note: If the slide is table-only and auto_paginate_tables is enabled,
a large table may generate multiple pages (check total_pages_generated in
the status response).
The template slide ID to use. Obtain this from the template analysis endpoint after uploading and analyzing your template.
"slide_abc123def456"
Content to populate the slide with. Structure depends on the template slide type (title slide, content slide, table slide, etc.).
{
"subtitle": "Company Performance Overview",
"title": "Annual Report 2024"
}{
"content": {
"blocks": [
{
"text": {
"bullets": [
"Revenue grew 25% year-over-year",
"Expanded to 3 new markets",
"Launched 5 new products"
]
},
"type": "text"
}
]
},
"title": "Key Achievements"
}{
"content": [
{
"blocks": [
{
"text": {
"bullets": ["Manual process", "3 day turnaround"]
},
"type": "text"
}
],
"header": "Before"
},
{
"blocks": [
{
"text": {
"bullets": ["Automated", "3 hour turnaround"]
},
"type": "text"
}
],
"header": "After"
}
],
"title": "Comparison: Before vs After"
}{
"content": {
"blocks": [
{
"table": {
"table": {
"rows": [
{
"cells": [
{ "value": "Region" },
{ "value": "Q4 Revenue" },
{ "value": "YoY Growth" }
],
"is_header": true
},
{
"cells": [
{ "value": "North America" },
{ "value": "$12.5M" },
{ "value": "+18%" }
]
},
{
"cells": [
{ "value": "Europe" },
{ "value": "$8.2M" },
{ "value": "+22%" }
]
},
{
"cells": [
{ "value": "Asia Pacific" },
{ "value": "$6.1M" },
{ "value": "+35%" }
]
}
]
}
},
"type": "table"
}
]
},
"title": "Revenue by Region"
}Organization name. If provided, must match the API key's organization. If omitted, the API key's organization is used.
"acme-corp"
Generation options. All fields are optional with sensible defaults.
{
"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."