Skip to main content
Modern Slides are Alai’s most capable presentation format. Instead of filling a fixed set of slide layouts, Alai’s agent builds each deck as a flexible visual artifact. It can reason across the whole story, compose richer layouts, and revise the result through natural-language instructions.

Our most powerful AI

Use Alai’s latest agentic presentation workflow, with explicit model choice when you need it.

Any design system

Generate against any published design system available to your account—not only a predefined theme.

Precise, iterative control

Target one slide or revise the whole deck, attach brand assets, and protect edits with commit-based concurrency.

Production-ready output

Export the generated artifact to PDF, editable PowerPoint, or PNG files.

Separate from Classic & Creative Slides

The Modern Slides API is a separate contract under /api/modern/v1. It does not change the existing /api/v1 Classic & Creative Slides endpoints, request shapes, or generation behavior. Both APIs use the same Bearer authentication so an existing Alai API key can authenticate either API. Choose Modern Slides when visual fidelity, design-system control, model choice, and natural-language iteration matter most. Continue using the Classic & Creative Slides API when you depend on its existing theme, variant, transcript, or per-slide workflows.

Base URL and authentication

Send your Alai API key as a Bearer token:
Create API keys in Alai by opening your account menu, selecting API, and choosing Add new API key.
Keep API keys on your server and never expose them in browser code, public repositories, or logs.

End-to-end workflow

1

Discover your options

Call GET /models and GET /design-systems. A presentation-format artifact requires a published design system.
2

Create the presentation

Call POST /presentations with a title, canvas, and design_system_id. This creates the container immediately; it does not start AI generation.
3

Add brand or content assets

Optionally upload logos, reference images, content images, or backgrounds with POST /presentations/{id}/assets.
4

Generate with your chosen model

Call POST /presentations/{id}/generate. The response is an asynchronous operation; poll GET /operations/{operation_id} until it succeeds or fails.
5

Revise and export

Submit natural-language edits, then request PDF, PPTX, or PNG exports. Edits and exports use the same operation polling flow.

Quick example

Asynchronous operations

Generate, edit, and export requests return 202 Accepted with an operation whose status is queued, running, succeeded, failed, or cancelled. Poll the operation endpoint every five seconds. The response includes structured progress while work is running, a result on success, or a structured error with code and message on failure. Generation and edit requests check credit capacity before they are queued. Insufficient capacity returns 402 Payment Required immediately with the required and available credit counts. A successful top-up is reflected immediately even while Stripe’s aggregate meter catches up. Cancel queued or running work with POST /operations/{operation_id}/cancel. Cancellation is idempotent once the operation is cancelled; an operation that already succeeded or failed returns 409 Conflict. Validation errors return 422 Unprocessable Entity with sanitized field, message, and type values. They never include request inputs, source file paths, or server line numbers. Use an idempotency_key for safely retrying mutating requests. Repeating the same request returns the original operation; reusing the key for different input returns 409 Conflict. Idempotency protection is best-effort for exactly concurrent identical requests. For edit and export operations, base_commit_sha provides optimistic concurrency control. Pass the latest value from GET /presentations/{id} to prevent a stale client from modifying or exporting an unexpected revision.

Endpoint summary