Katama·Docs
StatsWorkspace ↗

Video generation

Same endpoint as images, two more fields: how long, and how sharp. Video is priced per second, so those two fields are the invoice.

Endpoint

POST /api/generate

Request body

FieldTypeRequiredNotes
kindstringyesUse "video".
promptstringyesChecked by the safety guard before anything is priced or run.
modelstringyesOne of the ids below.
secondsnumbernoClamped server-side to the model range. The clamped value is what gets priced and what gets run.
qualitystringnoThe resolution: "480p", "720p" or "1080p". Defaults per model.
aspectstringno"16:9" or "9:16", snapped to what the model supports.
Resolution goes in quality. There is no resolution field. Send one and it is ignored without complaint — you get the model default and the price that goes with it.
Short clips can come back longer than you asked for. Some models only produce fixed durations, and a request below their shortest clip is served at that shortest clip. A three-second request on a model whose minimum is six seconds returns roughly six seconds of video. Ask for a duration the model actually offers if the exact length matters to you.

Models, durations and cost per second

Read straight from the pricing table the billing code uses. Total credits = seconds × the rate for the resolution you chose.

Model idSecondsDefaultCredits per second
wan5105s · 720p720p 10.11080p 15.1
kling5105s · 720p480p 8.5720p 8.51080p 13
kling-3-pro31510s · 720p480p 28.1720p 35.11080p 56.1
seedance4155s · 720p480p 9.6720p 20.61080p 51.1
seedance-2-fast3125s · 720p480p 8720p 16.61080p 51.1
seedance-2-54305s · 720p480p 24720p 51
seedance-lite3125s · 720p480p 2720p 31080p 6
sora4205s · 720p480p 7720p 121080p 67
veo485s · 720p480p 15.1720p 181080p 56
veo31486s · 720p480p 40.1720p 40.11080p 40.1
hailuo6106s · 720p480p 5720p 51080p 8.2
ltx6106s · 1080p1080p 6.1
kie-wan-2-55105s · 720p480p 6.1720p 6.11080p 10.1
kie-hailuo-026106s · 720p480p 3720p 51080p 8
kie-seedance-23155s · 720p480p 12720p 20.61080p 51.1
kie-seedance-2-fast3125s · 720p480p 10720p 16.61080p 51.1
kie-seedance-2-mini3125s · 720p480p 6720p 10.31080p 20.6
kie-seedance-lite3105s · 720p480p 4720p 61080p 11
kie-kling-3-turbo5105s · 1080p480p 9.1720p 9.11080p 11.3
kie-wan-2-65105s · 720p480p 7.1720p 7.11080p 10.5
kling-25-turbo5105s · 720p480p 8.6720p 8.61080p 8.6

Example

curl https://katama.ai/api/generate \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "video",
    "prompt": "a red paper crane slowly rotating on a grey table",
    "model": "ltx",
    "seconds": 6,
    "quality": "1080p"
  }'

Holds: what happens to your credits

Video takes time, so the credits are not spent up front — they are held. While the run is in flight the balance shows the hold, and creditsCharged is still 0. When the video lands, the hold settles into a charge. If the run fails, the hold is released and nothing is charged.

# during the run
{ "balance": 2787, "holdsActive": 13 }

# after it succeeds
{ "balance": 2787, "holdsActive": 0 }   →  creditsCharged: 13

Polling

The first response usually carries status: "queued" or "running" with an empty outputUrl. Poll the generation until status is "succeeded" or "failed". A short clip typically settles in well under a minute; longer ones take proportionally longer.

Next: Image generation · Plans & credits