SwishXKnowledge Base
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/videos

Request body

ParameterTypeRequiredDescription
modelstringYesA finsen-3.x version. See Models.
promptstringYesWhat the shot should show. 25–500 characters recommended.
negative_promptstringNoWhat to avoid. Merged with account-level defaults, not a replacement for them.
duration_secondsintegerNo416. Defaults to 8.
resolutionstringNo"720p" or "1080p". Defaults to "1080p".
keyframe_idstringNoReuse 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.

On this page