Forge is available: build a website with AI from your RodiumAi account.

Try Forge
RodiumAi docs
API

POST /v1/videos/generations

Long-running video generation. Authenticate with the same Bearer rd_sk_* key as chat.

POSThttps://api.rodiumai.io/v1/videos/generations

Body parameters

ParameterTypeRequiredDescription
modelstringRequiredVideo model id (e.g. google/veo-3.1, google/veo-3.1-fast, openai/sora-2).
promptstringRequiredText description of the video to generate or animate.
duration_secondsnumberOptionalClip length in seconds (alias: seconds). Default 8. Sora snaps to 4, 8 or 12. Billed per second of the returned clip.
aspect_ratiostringOptionalAspect ratio, e.g. "16:9" or "9:16". On Sora it selects the size when size is absent.
sizestringOptionalSora: output size "1280x720" (default) or "720x1280".
resolutionstringOptionalVeo: output resolution when the model supports it (e.g. "720p", "1080p").
resize_modestringOptionalVeo image-to-video: how the first frame is fitted (e.g. "pad" or "crop").
imageobject | stringOptionalFirst frame (Veo) or reference image (Sora, resized to the output size). Accepts { b64_json }, a data URL, raw base64 or a gs:// URI; HTTP(S) URLs are rejected. Aliases: input_image, image_url.
last_frameobject | stringOptionalVeo only: optional end frame (same encodings as image) for start → end transitions.

Request examples

…

SDK helpers

…

A synchronous call

  • POST /v1/videos/generations keeps the connection open until the clip is ready, usually one to several minutes and up to about 10. There is no job id and nothing to poll: set a client timeout of at least 10 minutes.
  • Veo models (google/veo-3.1, google/veo-3.1-fast, google/veo-3.1-lite) accept aspect_ratio, resolution, resize_mode, a first frame (image) and a last_frame.
  • Sora (openai/sora-2) accepts size (or aspect_ratio), duration_seconds snapped to 4, 8 or 12, and an optional reference image resized to the output size.
  • Authenticate with Authorization: Bearer (no x-api-key). Keep the request body under 10 MiB.

Response

The body has created, model and data[0] with b64_json (MP4, with mime_type) and/or url, plus duration_seconds when the provider reports it. Prefer b64_json when present.

Billing is per second: the hold uses duration_seconds (8 when omitted) and you pay the duration the provider returns. A generation that fails or is blocked by safety filters is not billed.

Video generation guide