Create a new presentation from text content. This is an async operation.
Workflow:
generation_id immediatelyGET /generations/{generation_id} until status is completed or failedRate limit: Max 5 concurrent generations per user.
generation_id immediately and poll for results.
POST /generationsgeneration_id immediatelyGET /generations/{generation_id} until status is completed or failedformats field| Parameter | Type | Description |
|---|---|---|
input_text | string | Content to transform into slides. Can be plain text, markdown, or structured notes. |
image_ids | array of strings | IDs (UUIDs) of previously uploaded images from POST /upload-images. Images are matched to relevant slides automatically. |
| Parameter | Type | Default | Description |
|---|---|---|---|
export_formats | array | ["link"] | Formats to export: link, pdf, ppt. Can request multiple. |
| Parameter | Type | Default | Description |
|---|---|---|---|
presentation_options.title | string | ”API Generated Presentation” | Title shown on title slide and in exports |
presentation_options.theme_id | string | "27874e6b-8c1c-4301-bce7-d22e6e8df7d6" | Theme ID controlling colors, fonts, and styling. Use GET /themes to discover available theme IDs. Legacy theme display names are still accepted for backward compatibility, but deprecated. |
presentation_options.slide_range | string | ”auto” | Target slide count: auto, 1, 2-5, 6-10, 11-15, 16-20, 21-25, 26-50 |
presentation_options.existing_presentation_id | string | - | Append slides to existing presentation |
presentation_options.total_variants_per_slide | integer | 1 | Variants per slide (1-4) |
| Parameter | Type | Default | Description |
|---|---|---|---|
text_options.language | string | (auto) | Output language |
text_options.tone | string | ”DEFAULT” | Writing style: DEFAULT, PROFESSIONAL, CASUAL, TECHNICAL, EDUCATIONAL, INSPIRATIONAL, NARRATIVE, PERSUASIVE, AUTHORITATIVE, EMPATHETIC, CUSTOM |
text_options.tone_instructions | string | - | Required when tone is CUSTOM |
text_options.content_mode | string | ”PRESERVE” | How to handle input: PRESERVE, CONDENSE, ENHANCE, CUSTOM |
text_options.amount_mode | string | ”ESSENTIAL” | Text density: MINIMAL, ESSENTIAL, BALANCED, DETAILED, CUSTOM |
| Parameter | Type | Default | Description |
|---|---|---|---|
image_options.include_ai_images | boolean | true | Generate AI images |
image_options.include_web_images | boolean | true | Search the web for relevant images to include in slides |
image_options.style | string | ”auto” | Image style: auto, realistic, artistic, cartoon, three_d, custom |
image_options.style_instructions | string | - | Required when style is custom |
image_options.num_image_variants | integer | 0 | Image slide variants (0-2) |
generation_id to poll GET /generations/{generation_id} for status.
theme_id now primarily expects a theme ID from GET /themes. Legacy theme display names still work for backward compatibility, but they are deprecated.Your Alai API key. Get one from your account settings at app.getalai.com
Content to transform into slides. Can be plain text, markdown, or structured notes. Longer input typically produces more slides.
Guidance for the AI on style, focus areas, or specific requirements not captured in other options.
IDs of previously uploaded images (from POST /upload-images) to incorporate. Images are matched to relevant slides automatically.
Formats to export upon completion. 'link' is a shareable web URL. 'pdf' and 'ppt' provide downloadable files.
link, pdf, ppt Successful Response
Unique identifier to poll for generation status via GET /generations/{generation_id}