Skip to content

Generate a v2 Presentation Video

POST https://api.slidespeak.co/api/v2/presentation/video

Generates a narrated MP4 video from an existing presentation. Narration is written from the deck’s content, spoken with an Azure voice, and rendered over the slides. Video generation is asynchronous. The endpoint returns a task_id; poll /task_status/{task_id} until SUCCESS, then use the returned request_id with /presentation/download/{request_id}.


Content-Type: string

application/json

X-API-Key: string

The API key to use for the request.


presentation_id: string

The ID of a presentation created with your API key. It must not be empty, and the presentation must belong to the same user as the API key. To narrate your own PowerPoint file, first import it with /presentation/import to get a presentation_id.

language: string OPTIONAL

The language the narration is written and spoken in. Pass a language code such as ENGLISH, ENGLISH_UK or SPANISH_MEXICO — matching is case-insensitive. See Voices for the full list.

voice_id: string OPTIONAL

A specific narration voice, as returned by /presentation/voices. The voice must belong to the same language you pass here. Omit it to use the default voice for the language.

captions: boolean OPTIONAL

Burn subtitles into the video.

quality: string OPTIONAL

Output resolution. sd renders at 720p, hd at 900p.

speed: number OPTIONAL

Narration playback speed, between 0.5 and 2.0. Values outside that range are rejected with a 422.


Terminal window
curl -X POST "https://api.slidespeak.co/api/v2/presentation/video" -H "Content-Type: application/json" -H "X-API-Key: YOUR_API_KEY" -d '{
"presentation_id": "cmgt32cut0000h3ovex8dbzmn",
"language": "ENGLISH",
"captions": true,
"quality": "hd",
"speed": 1.0
}'

{
"presentation_id": "cmgt32cut0000h3ovex8dbzmn",
"language": "ENGLISH",
"voice_id": "en-US-AvaMultilingualNeural",
"captions": true,
"quality": "hd",
"speed": 1.0
}

{
"task_id": "7f9801d8-c8bf-45c3-9fe7-d024b5a76f69"
}

Poll /task_status/{task_id} until task_status is SUCCESS. The task_result contains the request_id to use with /presentation/download/{request_id}, which returns a short-lived URL to the MP4.

{
"task_id": "7f9801d8-c8bf-45c3-9fe7-d024b5a76f69",
"task_status": "SUCCESS",
"task_result": {
"presentation_id": "cmgt32cut0000h3ovex8dbzmn",
"request_id": "7f9801d8-c8bf-45c3-9fe7-d024b5a76f69"
}
}

Video generation costs 5 API credits per slide, so a 10-slide deck costs 50 credits. Credits are checked before the task starts and charged once the video succeeds. See API Credits for details.


  • presentation_id must belong to your API key.
  • voice_id, when given, must exist for that language. Mismatches are rejected with a 400.
  • Unknown request fields are rejected.