Skip to main content
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gemini-omni-flash-preview",
    "prompt": "a red apple on a wooden table, short cinematic clip",
    "aspect_ratio": "16:9"
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KS1H7ZYSJWH1N779S2FSHTKA"
    }
  ]
}
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gemini-omni-flash-preview",
    "prompt": "a red apple on a wooden table, short cinematic clip",
    "aspect_ratio": "16:9"
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KS1H7ZYSJWH1N779S2FSHTKA"
    }
  ]
}

Authentication

Authorization
string
required
All requests require Bearer Token authentication.Get an API key:Visit the API Key management page to get your API key.Add the following header when making requests:
Authorization: Bearer YOUR_API_KEY

Request Parameters

model
string
required
Video generation model name. Must be gemini-omni-flash-preview.
prompt
string
required
Text instruction. For Text-to-Video, it is a scene description; for Image/Video-to-Video, it is an action / style / editing instruction.
prompt and reference materials (image_urls / video_urls) — provide at least one of them.
image_urls
array<string>
Reference images, up to 16. Each item is an http(s):// URL.Supports JPEG / PNG. For multiple subjects (e.g. “cat + ball of yarn”), you can pass multiple images and describe how they interact in the prompt.
video_urls
array<string>
Reference / video to be edited, at most 1 (multiple video references are not supported). Can be an http(s):// direct link or data:video/....
Reference videos are 1-24 seconds; the official recommendation is ≤3 seconds.
aspect_ratio
string
default:"16:9"
Video aspect ratio, which actually controls the output frame orientation.Supported values only:
  • 16:9 - landscape (default)
  • 9:16 - portrait
Other values are treated as 16:9.
resolution
string
default:"720p"
Video resolution. Currently only 720p is supported.
extend_from_task_id
string
Previous task ID: fill in the ** task_id** of the previous generation task.

Response

code
integer
Response status code. Successful requests return 200.
data
array
Returned task array.

Query Task Result

Video generation is asynchronous. After submission, the API returns a task_id. Use the Get task status endpoint to query progress and results.

Successful Result Example

{
  "code": 200,
  "data": {
    "id": "task_01KS1H7ZYSJWH1N779S2FSHTKA",
    "status": "completed",
    "progress": 100,
    "created": 1779246294,
    "completed": 1779246334,
    "actual_time": 40,
    "estimated_time": 60,
    "cost": 1.0,
    "credits_cost": 10,
    "result": {
      "videos": [
        {
          "url": ["https://cdn.example.com/gemini_omni_xxx.mp4"],
          "expires_at": 1779332760
        }
      ]
    }
  }
}

Use Cases

Scenario 1: Text-to-Video

{
  "model": "gemini-omni-flash-preview",
  "prompt": "a blue butterfly landing on a flower, macro, soft light",
  "aspect_ratio": "9:16"
}

Scenario 2: Image-to-Video

{
  "model": "gemini-omni-flash-preview",
  "prompt": "turn this drawing into realistic footage, use it only as a motion guide",
  "image_urls": ["https://example.com/sketch.jpg"]
}

Scenario 3: Video-to-Video

{
  "model": "gemini-omni-flash-preview",
  "prompt": "when the person touches the mirror, make it ripple like liquid",
  "video_urls": ["https://example.com/clip.mp4"]
}