---
title: "Video Engine Generate Custom"
method: POST
path: "/api/admin/video/generate-custom"
tags: ["Admin"]
---

# Video Engine Generate Custom

`POST /api/admin/video/generate-custom`

## Request

- Base URL: `https://api.xfinlab.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.xfinlab.com/api/admin/video/generate-custom`
- Auth: none declared

2026-08-09 (admin chat-to-video feature, requested as "Video Engine
可以加個CHAT更彈性做任何影片嗎" -- confirmed admin-only, not public):
sibling to /admin/video/generate above, but instead of the fixed
today's-signals format, takes a free-text `prompt` (e.g. "make a video
about NVDA earnings, in Spanish, square format") and generates
narration/slides for that arbitrary topic via
services/video_engine_service.generate_custom_video(). Same
admin-token + video_engine feature-flag gating as the daily-video
endpoint -- this is still the heaviest single operation in Growth OS
(TTS + ffmpeg), a chat text box doesn't change that cost.

Uses a JSON body (not query params) since `prompt` is free text that
can run long, unlike the daily endpoint's short enum-like query params.

## Query parameters

- `token` string, required

## Request body

- object

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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