Get API Key Get API
Docs

Video (image-to-video)

Midjourney image-to-video (i2v), fixed FAST, no t2v support, ~5 second duration

Request example

curl --request POST \
  --url https://api.openveer.com/v1/midjourney/generations/video \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "prompt": "the cat slowly turns its head to the camera",
    "image_urls": [
      "https://example.com/cat.png"
    ],
    "motion": "high",
    "batch_size": 4
  }'

Response example

{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KV52C0TEJSYZMCG0NCS4YWKK"
    }
  ]
}

Image-to-video (i2v). Fixed FAST mode, no speed dimension; text-to-video (t2v) is not supported — a first frame is required. Duration is fixed at \~5 seconds.

Item Value
action VIDEO
Billing midjourney@video / midjourney@video-720p, charged = unit price × batch_size
Required image_urls (first frame) or task_id (reuse a SUCCESS imagine)

Parameters

Field Type Required Notes
prompt string No Default: (inherits parent); Video prompt; if empty, task_id is required
nsfw_check boolean No Defaults to false.
Run content moderation before submitting a Midjourney task.
• true: use omni-moderation-latest to review prompts and input images
• false: skip moderation without adding moderation cost or latency
image_urls string[] △ First frame (1 image, ≤ 12 MiB); one of image_urls / task_id
task_id string △ Reuse a SUCCESS imagine; one of image_urls / task_id
index int No Which of the imagine 4 tiles is the first frame (0–3, with task_id)
video_type string No Default: vid_1.1_i2v_480; Resolution tier (see table); 720 → @video-720p billing
animate_mode string No Default: manual; manual / auto; auto requires task_id + index
motion string No Default: high; low / high; motion amount, no billing impact
batch_size int No Default: 1; Must be 1 / 2 / 4, other values treated as 1; billed × N
end_url string No End frame; when set, video_type auto-upgrades to start_end_*

Valid video_type values

Value Resolution Mode Billing
vid_1.1_i2v_480 480p basic i2v (default) midjourney@video
vid_1.1_i2v_720 720p basic i2v midjourney@video-720p
vid_1.1_i2v_start_end_480 480p start/end frame (auto when end_url set) midjourney@video
vid_1.1_i2v_start_end_720 720p start/end frame (auto when end_url set) midjourney@video-720p

extend-style values are not accepted; only the video_type values listed above are supported.

Request examples

Simple i2v (own first frame, batch 4):

{
  "prompt": "the cat slowly turns its head to the camera",
  "image_urls": ["https://example.com/cat.png"],
  "motion": "high",
  "batch_size": 4
}

Start/end transition (end_url auto-upgrades to start_end):

{
  "prompt": "transition smoothly from sunrise to sunset",
  "image_urls": ["https://example.com/sunrise.jpg"],
  "end_url": "https://example.com/sunset.jpg",
  "video_type": "vid_1.1_i2v_720"
}

Response

Submission returns a task_id; poll GET /v1/tasks/{task_id}. On SUCCESS it includes video_url (the first) plus video_urls (length === batch_size; with batch=1 it still has 1 element):

{
  "id": "task_xxx",
  "status": "SUCCESS",
  "action": "VIDEO",
  "mode": "FAST",
  "video_url": "https://r2.example.com/video-0.mp4",
  "video_urls": [
    "https://r2.example.com/video-0.mp4",
    "https://r2.example.com/video-1.mp4"
  ]
}

Notes

  • Text-to-video (t2v) is not supported: you must pass image_urls or task_id, otherwise it returns 400; you cannot pass both.
  • Fixed FAST mode, no speed dimension (@video-fast / @video-turbo in the billing table are never hit).
  • batch_size is strictly validated as 1 / 2 / 4; batch=4 charges 4×, use batch=1 when budget-sensitive.
  • animate_mode=auto requires both task_id + index.
  • The first / end frame must each be ≤ 12 MiB.

This documentation is built and hosted on Mintlify, a developer documentation platform.