Skip to main content
Generate videos through Eden AI’s OpenAI-compatible video endpoints. Point any OpenAI client at https://api.edenai.run/v3 and the video API works as a drop-in replacement for OpenAI’s video generation.

Overview

The surface is a facade over POST /v3/universal-ai/async for video/generation_async: same providers, same pricing, same job table, same polling and webhooks. Only the wire shape is OpenAI’s.
Video models are not in GET /v3/models (chat / responses only) nor in GET /v3/images/models.

Usage

Image-to-Video

Image-to-video with the SDK’s file upload (multipart):
Image-to-video with JSON, referencing an upload or a URL:
input_reference accepts {"file_id": "<id from /v3/upload>"} or {"image_url": "https://..."} (an http(s) URL to a JPEG or PNG). Base64 data URLs are rejected; upload the image instead.

Request fields

Eden extensions (not in OpenAI’s API): seed, provider_params (gated by the per-provider allow-list), webhook_receiver, user_webhook_parameters. On a JSON body, unknown fields are rejected (422), so fallbacks and @edenai routing are not available here. A multipart form silently ignores unknown form fields instead.

Video object

  • status: queued on the create response, in_progress on later reads while the job runs, then completed or failed. progress goes from 0 to 100.
  • provider and cost (USD) are Eden extensions. cost is 0 while the job is queued or in progress, and updates to the settled amount once the job completes or fails.
  • id is the universal-ai job id: the same job is visible at GET /v3/universal-ai/async/{id}.

Limitations

  • Response size: size is only echoed on the create response; reads return null (the job row does not store the request). seconds on reads is the duration the provider actually rendered.
  • Unsupported Routes: No remix, extensions, edits or characters: these OpenAI routes answer 400.
  • Keyset Pagination: after is a keyset cursor on (created_at, id): pass the previous page’s last_id to get the jobs that follow it in newest-first order, rather than an offset-style page number.
  • Only the video content variant (no thumbnails / spritesheets).
  • The content redirect points at a signed link valid for 7 days; after that the endpoint serves the stored bytes directly.
  • Authentication errors (401 for a bad token, 403 when the header is missing), rate-limit (429) and query-parameter validation errors (e.g. ?limit=0) use the platform’s {"detail": ...} shape rather than the OpenAI error envelope.

Pricing

Identical to universal-ai video generation: info_pricing rows per provider/model, per-second or per-request, with resolution tiers where seeded. Nothing is priced differently for coming through this surface.