---
title: "Seedance 2.5 Pro 480p - Create video from text or image"
method: POST
path: "/v1/ai/video/seedance-2-5-pro-480p"
tags: ["video"]
---

# Seedance 2.5 Pro 480p - Create video from text or image

`POST /v1/ai/video/seedance-2-5-pro-480p`

## Request

- Base URL: `https://api.magnific.com`
- URL: `https://api.magnific.com/v1/ai/video/seedance-2-5-pro-480p`
- Auth: API key in header `x-magnific-api-key`

Generate 480p video using Seedance 2.5 Pro. Supports text-to-video, image-to-video (first/last frame), and reference-to-video with up to 30 reference images (@Image1..@Image30), 10 reference videos (@Video1..@Video10) and 10 reference audios (@Audio1..@Audio10). Also supports camera motion, multishot sequences (up to 6 shots) and native audio (sound effects).

## Request body

- Seedance25Request
  - `webhook_url` string, uri: URL to receive a webhook notification when the video generation task completes. The webhook payload includes the task ID and status.
  - `image` string, byte: Optional image to use as the first frame for image-to-video generation. Accepts a publicly accessible URL or a base64-encoded image. Mutually exclusive with `reference_images` and `reference_videos`.
  - `image_end` string, byte: Optional image to use as the last frame for image-to-video generation. Requires `image`. When provided together with `image`, the model generates a transition video between the first and last frame. Mutually exclusive with `reference_images` and `reference_videos`.
  - `reference_images` string[]: Up to 30 reference images (subjects, characters, products or style references). Each item is a publicly accessible URL or a base64-encoded image. Reference them in the prompt using @Image1, @Image2, ... @Image30 (1-indexed to the array order). Mutually exclusive with `image` and `image_end`.
  - `reference_videos` string[]: Up to 10 reference videos. Each item must be a publicly accessible HTTPS URL or a video upload file_id (`upl_vid_...`). Reference them in the prompt using @Video1, @Video2, ... @Video10 (1-indexed to the array order). Each video must be MP4 or MOV, 2 to 30 seconds, 24 to 60 fps, no larger than 200 MB, with 409600 to 8295044 pixels and an aspect ratio from 0.4 to 2.5. Combined duration must not exceed 30 seconds. Mutually exclusive with `image` and `image_end`.
  - `reference_audios` string[]: Up to 10 reference audios (2-60s each, mp3 or wav). Each item is a publicly accessible URL: unlike `reference_images`, this field does not take upload file_ids. Reference them in the prompt using @Audio1, @Audio2, ... @Audio10 (1-indexed to the array order). **The audio is not copied into the video.** The model composes its own soundtrack, guided by the rhythm and character of what you send: a 120 BPM reference produces a soundtrack at that tempo, but it is a new recording, not your file muxed into the result. A reference with a clear beat, music or speech gives the model something to follow; a flat tone or near-silence does not.
  - `prompt` string, required: Text prompt describing the video to generate. To use references, mention them as @Image1, @Video1, @Audio1, ... matching the 1-indexed order of each reference array. Maximum 40000 characters. Prompts longer than 5,000 characters are accepted, but results may become less predictable.
  - `duration` integer: Video duration in seconds. Any integer from 4 to 30.
  - `aspect_ratio` 'film_horizontal_21_9' | 'widescreen_16_9' | 'classic_4_3' | 'square_1_1' | 'traditional_3_4' | 'social_story_9_16' | 'film_vertical_9_21': Output video aspect ratio. Only applies to text-to-video and reference-to-video; ignored when `image` (first frame) is provided (the output inherits the start frame ratio).
  - `camera_fixed` boolean: When `true`, the camera position stays fixed (tripod shot). When `false`, the model may apply natural camera movements.
  - `camera_motion` 'static' | 'moveLeft' | 'moveRight' | 'moveUp' | 'moveDown' | 'pushIn' | 'pullOut' | 'zoomIn' | 'zoomOut' | 'panLeft' | 'panRight' | 'tiltUp' | 'tiltDown' | 'truckLeft' | 'truckRight' | 'pedestalUp' | 'pedestalDown' | 'superDollyIn' | 'superDollyOut' | 'crashZoomIn' | 'crashZoomOut' | 'doubleDolly' | 'jibUp' | 'jibDown' | 'craneUp' | 'craneDown' | 'craneOverTheHead' | 'orbitLeft' | 'orbitRight' | '360Orbit' | 'leftCircling' | 'rightCircling' | 'leftWalking' | 'rightWalking' | 'upwardTilt' | 'downwardTilt' | 'fisheye' | 'overhead' | 'objectPov' | 'whipPan' | 'dutchAngle' | 'dirtyLens' | 'lensCrack' | 'lensFlare' | 'focusChange' | 'lowShutter' | 'fpvDrone' | 'handheld' | 'headTracking' | 'snorricam' | 'stageLeft' | 'stageRight' | 'scenicShot' | 'carChasing' | 'throughObjectIn' | 'timelapseHuman' | 'timelapseLandscape': Optional camera movement to guide the shot. Each value is expanded into a descriptive instruction appended to the prompt.
  - `multishot` Seedance25RequestMultishotInner[]: Optional multishot sequence of up to 6 shots. When provided, the shots drive the generation and replace the top-level `prompt` (which is still required). If any shot has a `duration`, all shots must have one and the durations must sum to `duration`.
    - `prompt` string, required: The prompt describing this shot. Prompts longer than 5,000 characters are accepted, but results may become less predictable.
    - `duration` integer: Duration of this shot in seconds.
  - `seed` integer: Random seed for reproducible video generation. Use `-1` for a random seed.
  - `sound_effects` boolean: Whether to generate native audio (sound effects and ambience) for the video.
  - `no_music` boolean: Suppress background music in the generated native audio. Only applies when `sound_effects` is enabled.
  - `output_format` 'mp4' | 'mov': Container format of the generated video. `mov` trades file size for colour fidelity; `mp4` is the default.
  - `enable_safety_checker` boolean: Enable content safety filtering to ensure generated videos comply with safety guidelines.

## Response `200`

OK - The task exists and the status is returned

- InlineObject4
  - `data` TaskDetail1, required
    - `task_id` string, uuid, required: Task identifier
    - `status` 'CREATED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED', required: Task status
    - `generated` string[], required

## Other responses

- `400`: Bad Request - The server could not understand the request due to invalid syntax.
- `401`: Unauthorized - The client must authenticate itself to get the requested response.
- `500`: Internal Server Error - The server has encountered a situation it doesn't know how to handle.
- `503`: Service Unavailable

---

[API](https://skmtc.dev/magnific/apis/magnific-api.md) · [All operations](https://skmtc.dev/magnific/apis/magnific-api/llms.txt) · [OpenAPI document](https://skmtc.dev/magnific/apis/magnific-api/revisions/60711fb082c7?raw)
