# AI Slideshow Video API

> Turn a topic into a narrated, captioned faceless video over HTTP. 28 story categories, 7 image styles, 39 languages and 3 aspect ratios.

- Canonical page: https://www.autofeed.ai/video-api/ai-slideshow
- API reference: https://www.autofeed.ai/docs/api
- Publisher: AutoFeed.ai (https://www.autofeed.ai)

Send a category or your own brief. AutoFeed writes the script, generates the images, records the voiceover, burns in the captions and returns a finished faceless video.

- 28 story categories, or "Write Your Own Story" with a brief of up to 4,000 characters
- 7 image styles and 39 narration languages
- Three length bands: 15 to 30 seconds, 45 to 60 seconds, 60 to 90 seconds
- Aspect ratios 9:16, 16:9, 1:1, with optional animated images

## Example request

Costs 1,200 credits, the same as in the dashboard.

```bash
curl -X POST https://www.autofeed.ai/api/v1/videos \
  -H "Authorization: Bearer $AUTOFEED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "ai_slideshow",
    "input": {
      "category": "History Facts",
      "topic": "How the Romans built roads that still exist today",
      "duration": "45 to 60 seconds",
      "substyle": "Painting",
      "format": "9:16"
    },
    "webhookUrl": "https://example.com/webhooks/autofeed",
    "idempotencyKey": "order-1042-ai-slideshow"
  }'
```

202 Accepted:

```json
{
  "id": "1c9d6c3e-1f5b-4d2e-9c31-2b8b0f0f9a11",
  "type": "ai_slideshow",
  "status": "processing",
  "costInCredits": 1200,
  "createdAt": "2026-11-02T12:00:00.000Z"
}
```

`video.completed` webhook body:

```json
{
  "id": "1c9d6c3e-1f5b-4d2e-9c31-2b8b0f0f9a11",
  "type": "ai_slideshow",
  "status": "completed",
  "error": null,
  "costInCredits": 1200,
  "createdAt": "2026-11-02T12:00:00.000Z",
  "completedAt": "2026-11-02T12:03:41.000Z",
  "url": "https://.../1c9d6c3e-1f5b-4d2e-9c31-2b8b0f0f9a11.mp4"
}
```

## Input fields

| Field | Type | Default | Notes |
|---|---|---|---|
| `category` | one of 28 values | "Write Your Own Story" | The story type. "Write Your Own Story" makes topic the whole brief, paragraph breaks kept. |
| `topic` | string (max 4000) | - | Optional steer for the script, or the whole brief under "Write Your Own Story". |
| `substyle` | one of 7 values | "Realistic" |  |
| `language` | one of 39 values | "English (USA)" | A display name such as "English (USA)", not a language code. |
| `music` | string (max 255) | "none" |  |
| `voice` | string | "pNInz6obpgDQGcFmaJgB" |  |
| `captionStyle` | one of 14 values | "YouTuber" |  |
| `customCaptions` | object | - | Required when captionStyle is "Custom". Any field you leave out comes from the preset. |
| `captionSize` | "Small" \| "Medium" \| "Large" | "Medium" |  |
| `captionPosition` | "Top" \| "Center" \| "Bottom" | "Bottom" |  |
| `particles` | one of 8 values | "None" |  |
| `duration` | "15 to 30 seconds" \| "45 to 60 seconds" \| "60 to 90 seconds" | "15 to 30 seconds" | Price-bearing: longer bands cost more credits. |
| `format` | "9:16" \| "16:9" \| "1:1" | "9:16" |  |
| `cameraShake` | boolean | true |  |
| `animatedImages` | boolean | false | Animates each image. Price-bearing and much slower, so it is off by default. |

Included with Ultimate. Rendered files are kept for 14 days.

## Frequently asked questions

### Can I send my own script?

Use the "Write Your Own Story" category and put your brief or script in topic. The script step works from it instead of from a category prompt.

### What changes the price?

The length band and animatedImages. Everything else, such as style, language, captions and music, is free to change. The exact cost of every request comes back in the 202 response.

### How is an AI slideshow billed?

From the same credit balance as the dashboard, at the same price per video. The cost is in the 202 response before any work starts, and a failed render refunds it.
