---
title: "Turn an article (URL or pasted text) into a narrated video"
method: POST
path: "/api/v1/video"
---

# Turn an article (URL or pasted text) into a narrated video

`POST /api/v1/video`

## Request

- Base URL: `https://www.startuphub.ai`
- URL: `https://www.startuphub.ai/api/v1/video`
- Auth: HTTP bearer

Enqueues a render and returns a jobId immediately (rendering runs async, usually 2 to 4 minutes). Poll /api/v1/video/{jobId} until status is "done" for the mp4 URL. Charges 1 video credit on enqueue. Powers the Apify / Make.com / n8n automations.

## Request body

- object: Provide either url or text.
  - `url` string, uri: Article URL (any site; on-site /ai-news URLs use richer b-roll)
  - `text` string: Article text (>= 200 chars). Used when url is omitted.
  - `title` string: Optional title (auto-generated if omitted)
  - `voice` 'en-US-AvaNeural' | 'en-US-AndrewNeural' | 'en-US-EmmaNeural' | 'en-US-BrianNeural' | 'en-US-JennyNeural' | 'en-US-AriaNeural' | 'en-US-GuyNeural' | 'en-US-ChristopherNeural' | 'en-US-MichelleNeural' | 'en-GB-SoniaNeural' | 'en-GB-RyanNeural' | 'en-AU-NatashaNeural' | 'en-IN-NeerjaNeural': Narrator voice (default Ava)
  - `format` '9:16' | '16:9': Vertical (default) or landscape

## Response `200`

Job enqueued: { jobId, status, poll_url }

## Other responses

- `400`: Invalid or too-short input
- `401`: Missing or invalid API key
- `402`: Out of video credits for this plan

---

[API](https://skmtc.dev/startuphub/apis/startuphub-ai-api.md) · [All operations](https://skmtc.dev/startuphub/apis/startuphub-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/startuphub/apis/startuphub-ai-api/revisions/c9965e4ba7e2?raw)
