---
title: "Generate a video asset"
method: POST
path: "/v1/video-projects/{projectId}/assets/generate-video"
tags: ["Video Projects"]
---

# Generate a video asset

`POST /v1/video-projects/{projectId}/assets/generate-video`

## Request

- Base URL: `https://api.neume.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.neume.io/v1/video-projects/{projectId}/assets/generate-video`
- Auth: none declared

## Path parameters

- `projectId` string, required

## Request body

- GenerateVideoProjectAssetVideoDto
  - `prompt` string, required: Prompt for video generation
  - `name` string: Asset name
  - `duration` '5' | '10' | '15': Video duration
  - `videoGenType` 'NORMAL' | 'LIPSYNC' | 'MOTION_CONTROL', required: Video generation type
  - `sourceAssetId` string: Source image asset ID (alternative to uploading sourceImage file)
  - `endFrameAssetId` string: End frame image asset ID (alternative to uploading endFrame file)
  - `audioTrackId` string: Audio track ID for lipsync
  - `audioStart` number: Audio start time in seconds for lipsync
  - `audioEnd` number: Audio end time in seconds for lipsync
  - `redoSourceImagePath` string: Existing S3 source image path (for redo)
  - `redoEndFramePath` string: Existing S3 end frame path (for redo)
  - `redoMotionVideoPath` string: Existing S3 motion video path (for redo)

## Response `201`

---

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