---
title: "Create a video generation job"
method: POST
path: "/api/video-jobs"
tags: ["Video"]
---

# Create a video generation job

`POST /api/video-jobs`

## Request

- Base URL: `https://www.zestio.de`
- URL: `https://www.zestio.de/api/video-jobs`
- Auth: API key in cookie `sb-access-token`

Create a video from a property listing URL or manual images. The video will include AI-enhanced images, smooth transitions, and background music.

## Request body

- VideoJobRequest
  - `listingUrl` string, uri: Property listing URL (e.g., Immowelt, ImmoScout24)
  - `manualImages` string[]: Manual image URLs (alternative to listingUrl)
  - `renovationStyle` 'modern' | 'luxury' | 'minimalist' | 'scandinavian' | 'industrial' | 'contemporary' | 'coastal' | 'midcentury'
  - `musicGenre` 'cinematic' | 'uplifting' | 'ambient' | 'acoustic' | 'electronic' | 'jazz' | 'classical'
  - `customScript` string: Custom script for voiceover
  - `voiceoverEnabled` boolean

## Response `200`

Video job created

- VideoJobResponse
  - `success` boolean
  - `jobId` string: Job ID for tracking
  - `status` 'scraping' | 'processing' | 'rendering' | 'completed' | 'failed'
  - `message` string

## Other responses

- `400`: Bad request - invalid parameters
- `401`: Unauthorized - invalid or missing credentials
- `402`: Payment required - insufficient credits
- `429`: Rate limit exceeded
- `500`: Internal server error

---

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