Video Generations
Endpoints
Video Generations
Generate video clips. Asynchronous — returns 202 with a job_id; poll GET /v1/jobs/ for the result.
POST
Video Generations
Async endpoint. The request returns immediately with a
Same response shape. Poll every 2–5 seconds until
The
Replaying this exact request returns the same job — no new charge.
job_id; the actual generation runs in the background and is charged on success only. Billed per second of generated footage.
Request body
Kuaishou Kling:
kling-2.5-pro, kling-3-pro, kling-3-pro-audio. ByteDance Seedance: seedance-2-pro, seedance-2-fast. MiniMax Hailuo: hailuo-02-512p, hailuo-02-768p, hailuo-02-1080p. Google Veo: veo-3-fast, veo-3 (720p silent / 1080p+audio). See Video Generation.Veo video SKUs (
veo-3-*) also accept the same model id on POST /v1/genmedia/jobs — same billing, same response shape. /v1/videos/generations is the OpenAI-style alias.Text prompt describing the desired video. Maximum 4000 characters.
Clip length in seconds. Range 1–10. Each second is billed at the model’s per-second rate.
HTTPS URL of a starting frame. When present, Kyma routes the request to the model’s image-to-video variant — the image becomes the first frame and the prompt drives the motion. Optional; all five models accept it.
Client-supplied key (≤128 chars) to make the request safe to retry. Repeated POSTs with the same
(api_key, idempotency_key) pair return the same job — no duplicate charge, no duplicate generation.Pass-through model-specific parameters (e.g.
seed, aspect_ratio). Forwarded to the underlying provider unchanged.Response
202 Accepted for new jobs, 200 OK if the same idempotency_key is replayed.
Job ID. Use it to poll
GET /v1/jobs/{id}.One of:
pending, processing, succeeded, failed, refunded, expired.Hold amount placed at submit time (USD) —
per_second_usd × duration. Refunded if the job fails.Final billed amount once the job succeeds.
null until then.Poll for the result
status is succeeded, failed, refunded, or expired. Most clips complete within 1–3 minutes; the runner times out at 10 minutes.
output.url points to a Vercel Blob URL hosted by Kyma — the original upstream URL is rehosted so it remains stable after the upstream TTL expires.
Errors
When
status becomes failed or refunded, no charge is made and the held funds are returned to your balance via a hold_release ledger entry.