API ReferenceVideos
Create a video generation
POST /v1/videos
Starts a video generation. Runs asynchronously through all six reasoning-pipeline stages — this returns immediately
with the generation in a queued state; poll Retrieve a video generation
for the result.
POST https://api.swishx.com/v1/videosRequest body
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | A finsen-3.x version. See Models. |
prompt | string | Yes | What the shot should show. 25–500 characters recommended. |
negative_prompt | string | No | What to avoid. Merged with account-level defaults, not a replacement for them. |
duration_seconds | integer | No | 4–16. Defaults to 8. |
resolution | string | No | "720p" or "1080p". Defaults to "1080p". |
keyframe_id | string | No | Reuse an existing keyframe image instead of generating a new one. See Images. |
curl https://api.swishx.com/v1/videos \
-H "Authorization: Bearer $SWISHX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "finsen-3.2",
"prompt": "A pharma rep opens with a warm, confident smile.",
"duration_seconds": 8,
"resolution": "1080p"
}'Response
{
"id": "vid_8f2c1a9b3d4e",
"object": "video",
"status": "queued",
"model": "finsen-3.2",
"prompt": "A pharma rep opens with a warm, confident smile.",
"negative_prompt": null,
"duration_seconds": 8,
"resolution": "1080p",
"routed_model": null,
"keyframe": null,
"compliance": null,
"output": null,
"error": null,
"cost_cents": null,
"created_at": "2026-08-07T18:22:04Z",
"completed_at": null
}routed_model, keyframe, compliance, output, and cost_cents are only populated once the request has
progressed far enough through the pipeline — see the video object's field reference.