Slides
The slides mode — presentation layouts, voiceover scripts, and why PPT export is not on the API.
slides is the third mode on the shared storybook endpoints. It produces presentation-style pages
with AI visuals and voiceover scripts, for meetings, business reports, and conference talks. For the
endpoints, request parameters, polling, statuses, and the video render step, see the
Explainer & Slides overview. This page covers only what
is specific to slides.
Set mode: "slides" on POST /v1/storybook/episodes. The field is optional on the endpoint —
omitting it gives you info, not slides — so it is effectively required for this mode. The
overview's mode table has what slides mode
draws.
Getting a PPT file
PPT export is not available through the OpenAPI. The API returns each slide as an image plus its
narration script; to export an editable .pptx, open the episode on the ListenHub platform.
Using the pages without a video
Slides is the mode where the raw materials are most often the deliverable. Each item in pages[]
carries the slide image (imageUrl) and its narration script (text), usable as speaker notes, so
you can assemble a deck in your own tooling and skip the video render entirely.
Pair that with skipAudio: true on creation when you do not need the narration audio at all — the
images and scripts still come back, and speakers becomes optional.
Example
Slides with narration:
curl -X POST "https://api.marswave.ai/openapi/v1/storybook/episodes" \
-H "Authorization: Bearer $LISTENHUB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sources": [
{"type": "text", "content": "Q3 results: revenue, retention and the two bets for Q4..."}
],
"speakers": [{"speakerId": "<SPEAKER_ID>"}],
"language": "en",
"mode": "slides"
}'Slide images and scripts only — no speakers, no audio render:
curl -X POST "https://api.marswave.ai/openapi/v1/storybook/episodes" \
-H "Authorization: Bearer $LISTENHUB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"sources": [
{"type": "url", "content": "https://example.com/quarterly-report"}
],
"language": "zh",
"mode": "slides",
"skipAudio": true
}'Poll the returned episodeId, then optionally render the video — see the
workflow.