Videos
Generate videos
Create videos from text or image prompts
POST
Generate videos from a text prompt or input image using AI models from various providers.
OpenAI compatibilityThis endpoint implements the OpenAI Videos API. You can use any OpenAI SDK by changing the base URL to
https://api.lumenfall.ai/openai/v1.Lumenfall normalizes behavior across all models - mapping parameters, emulating features, and standardizing errors - so your code works consistently regardless of which provider handles the request.Async workflowVideo generation is asynchronous. A successful request returns a
202 response with a video object in queued status. Poll GET /v1/videos/{id} until the status is completed or failed. You can also use webhooks to receive a notification when the video is ready.Content typesThis endpoint accepts both
application/json and multipart/form-data requests. Use multipart when you want to upload image files directly instead of passing URLs.Request body
You can include additional parameters not listed here. They will be passed through to the underlying provider.
What do the parameter badges mean?
What do the parameter badges mean?
Each parameter has a badge showing how Lumenfall handles it across different providers:
Learn more about unified model behavior.
| Badge | Meaning |
|---|---|
| Passthrough | Passed as-is; some providers may ignore it |
| Renamed | Field name is mapped to the provider’s expected name |
| Converted | Value is transformed to match each provider’s format |
| Emulated | Works consistently on all models, even if the provider doesn’t natively support it |
A text description of the desired video. Maximum length varies by model.Renamed
Duration of the video in seconds. Also accepted as
duration.ConvertedThe dimensions of the generated video, as
WIDTHxHEIGHT (e.g., 1920x1080) or aspect ratio (e.g., 16:9). Supported sizes vary by model.ConvertedThe number of videos to generate. Must be between 1 and 4.Emulated
Aspect ratio for the video (e.g.,
16:9, 9:16, 1:1). Lumenfall extension - converted to the provider’s native format.ConvertedVideo resolution shorthand:
720p, 1080p. Converted to appropriate dimensions per provider.ConvertedReference image(s) for image-to-video generation. Not all models support this - check the model’s capabilities.Accepts a single object or an array of objects:
image_url can be an HTTPS URL or a base64 data URI. The number of references accepted depends on the model (most models support at most 1).When using multipart/form-data, send file uploads or URL strings as input_reference fields instead. Multiple files are supported via input_reference, input_reference[], or input_reference[N] field names.RenamedText describing what to avoid in the video. Maximum 5000 characters.Renamed
How long to retain generated media. See Media retention.
URL to receive a webhook notification when the video completes or fails. Deliveries are signed with your organization’s webhook secret - retrieve it via Get webhook secret. See Webhooks for payload format and verification.
A unique key (up to 256 characters) to prevent duplicate requests. If you send the same key twice, the second request returns the existing video instead of creating a new one.
Key-value pairs of strings to attach to the video object.
A unique identifier representing your end-user. Only used by some providers.Passthrough
Query parameters
If
true, returns a cost estimate without generating the video. See Cost estimation.Response
Returns a202 Accepted response with the video object.
Unique identifier for the video.
Always
"video".Unix timestamp of when the video was created.
The generation status. One of
queued, in_progress, completed, or failed.The model used for generation.
The requested duration.
Output dimensions as
"WIDTHxHEIGHT" (e.g., "1920x1080") or aspect ratio (e.g., "16:9").