Build with Wan 3.0 Video Prime
Make your first request
Use your Sorceress API key on your server. The playground uses your signed-in account; your application uses the same model with an API key.
curl -X POST 'https://sorceress.games/api/v1/jobs' \
-H 'Authorization: Bearer $SORCERESS_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "wan-3-0-video-prime",
"input": {
"audio": true,
"duration": 5,
"resolution": "1080P",
"aspect_ratio": "adaptive"
}
}'Inputs & settings
seedintegerRandom seed used to reproduce results. If omitted, a random seed is used.
audiobooleanWhether the output video includes an audio track. Default: true.
promptstringText prompt. Chinese and English are supported. Up to 20,000 characters. Required for text-to-video; for other modes, it is recommended to provide it together with media. In reference mode, use Image1/Video1/Audio1 to reference the provided materials.
durationintegerOutput video duration in seconds. Default: 5. When there is no video input, the value must be within [2, 30]. When reference videos are provided: input video duration plus output duration ≤ 30. Pass `-1` to use an intelligent duration determined by the model.
resolutionstringOutput resolution level. Default: **1080P**.
Options: 480P, 720P, 1080P
aspect_ratiostringOutput aspect ratio. `adaptive` (default) automatically selects the aspect ratio based on the input materials and intent.
Options: adaptive, 16:9, 4:3, 1:1, 3:4, 9:16
nsfw_checkerbooleanDefaults to false. When false, no additional content filtering is applied and results are returned directly by the model.
last_frame_urlstringURL of the last-frame image. Use together with first_frame_url. Same format limits as first_frame_url.
first_frame_urlstringURL of the first-frame image. Up to 1 image, used strictly as the first frame of the video. Used for first-frame-to-video or first-and-last-frame-to-video generation. Cannot be provided together with `reference_*_urls`. Formats: JPEG/JPG, PNG (transparency not supported), BMP, WEBP; each side [240, 8000] px; aspect ratio ≤ 8:1; ≤ 20MB.
reference_file_urlsarrayFile-to-video generation. Up to 1 file. Cannot be provided together with `reference_link_urls`, or with the first-frame/last-frame image. Formats: docx/doc/xlsx/xls/pptx/ppt/pdf/txt/key/pages/numbers/md; ≤ 100MB; pdf/docx/ppt/key/pages, etc. ≤ 50 pages.
reference_link_urlsarrayLink-to-video generation. Up to 1 publicly accessible webpage that does not require login. Cannot be provided together with `reference_file_urls`, or with the first-frame/last-frame image.
reference_audio_urlsarrayReference audio files for all-purpose reference mode. Up to 5 audio files. Each file must be 1–15s, with a combined duration of ≤ 15s. Correspond to Audio1, Audio2, and so on according to array order. Formats: wav, mp3; ≤ 15MB. Reference audio can be used as the only media input; pairing it with a reference image or video usually gives better results.
reference_image_urlsarrayReference images for all-purpose reference mode. Up to 10 images. Correspond to Image1, Image2, and so on in the prompt according to array order. Same specifications as `first_frame_url`. Cannot be provided together with the first-frame or last-frame image.
reference_video_urlsarrayReference videos for all-purpose reference mode. Up to 5 videos. Each video must be 1–15s, with a combined duration of ≤ 15s. Correspond to Video1, Video2, and so on according to array order. Formats: mp4, mov; each side [240, 4096] px; aspect ratio ≤ 8:1; each file ≤ 100MB. There is an additional output-side limit: the input video duration plus `duration` cannot exceed 30 seconds.
Full input schema
{
"type": "object",
"properties": {
"seed": {
"type": "integer",
"title": "Seed",
"maximum": 2147483647,
"minimum": 0,
"description": "Random seed used to reproduce results. If omitted, a random seed is used."
},
"audio": {
"type": "boolean",
"title": "Audio",
"default": true,
"description": "Whether the output video includes an audio track. Default: true."
},
"prompt": {
"type": "string",
"title": "Prompt",
"maxLength": 20000,
"description": "Text prompt. Chinese and English are supported. Up to 20,000 characters. Required for text-to-video; for other modes, it is recommended to provide it together with media. In reference mode, use Image1/Video1/Audio1 to reference the provided materials."
},
"duration": {
"type": "integer",
"title": "Duration",
"default": 5,
"description": "Output video duration in seconds. Default: 5. When there is no video input, the value must be within [2, 30]. When reference videos are provided: input video duration plus output duration ≤ 30. Pass `-1` to use an intelligent duration determined by the model."
},
"resolution": {
"enum": [
"480P",
"720P",
"1080P"
],
"type": "string",
"title": "Resolution",
"default": "1080P",
"description": "Output resolution level. Default: **1080P**."
},
"aspect_ratio": {
"enum": [
"adaptive",
"16:9",
"4:3",
"1:1",
"3:4",
"9:16"
],
"type": "string",
"title": "Aspect ratio",
"default": "adaptive",
"description": "Output aspect ratio. `adaptive` (default) automatically selects the aspect ratio based on the input materials and intent."
},
"nsfw_checker": {
"type": "boolean",
"title": "NSFW checker",
"description": "Defaults to false. When false, no additional content filtering is applied and results are returned directly by the model."
},
"last_frame_url": {
"type": "string",
"title": "Last frame URL",
"format": "uri",
"x-media": "image",
"description": "URL of the last-frame image. Use together with first_frame_url. Same format limits as first_frame_url."
},
"first_frame_url": {
"type": "string",
"title": "First frame URL",
"format": "uri",
"x-media": "image",
"description": "URL of the first-frame image. Up to 1 image, used strictly as the first frame of the video. Used for first-frame-to-video or first-and-last-frame-to-video generation. Cannot be provided together with `reference_*_urls`. Formats: JPEG/JPG, PNG (transparency not supported), BMP, WEBP; each side [240, 8000] px; aspect ratio ≤ 8:1; ≤ 20MB."
},
"reference_file_urls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"title": "Reference file URLs",
"x-media": "image",
"maxItems": 1,
"description": "File-to-video generation. Up to 1 file. Cannot be provided together with `reference_link_urls`, or with the first-frame/last-frame image. Formats: docx/doc/xlsx/xls/pptx/ppt/pdf/txt/key/pages/numbers/md; ≤ 100MB; pdf/docx/ppt/key/pages, etc. ≤ 50 pages."
},
"reference_link_urls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"title": "Reference link URLs",
"x-media": "image",
"maxItems": 1,
"description": "Link-to-video generation. Up to 1 publicly accessible webpage that does not require login. Cannot be provided together with `reference_file_urls`, or with the first-frame/last-frame image."
},
"reference_audio_urls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"title": "Reference audio URLs",
"x-media": "audio",
"maxItems": 5,
"description": "Reference audio files for all-purpose reference mode. Up to 5 audio files. Each file must be 1–15s, with a combined duration of ≤ 15s. Correspond to Audio1, Audio2, and so on according to array order. Formats: wav, mp3; ≤ 15MB. Reference audio can be used as the only media input; pairing it with a reference image or video usually gives better results."
},
"reference_image_urls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"title": "Reference image URLs",
"x-media": "image",
"maxItems": 10,
"description": "Reference images for all-purpose reference mode. Up to 10 images. Correspond to Image1, Image2, and so on in the prompt according to array order. Same specifications as `first_frame_url`. Cannot be provided together with the first-frame or last-frame image."
},
"reference_video_urls": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"title": "Reference video URLs",
"x-media": "video",
"maxItems": 5,
"description": "Reference videos for all-purpose reference mode. Up to 5 videos. Each video must be 1–15s, with a combined duration of ≤ 15s. Correspond to Video1, Video2, and so on according to array order. Formats: mp4, mov; each side [240, 4096] px; aspect ratio ≤ 8:1; each file ≤ 100MB. There is an additional output-side limit: the input video duration plus `duration` cannot exceed 30 seconds."
}
}
}Results, saved runs & billing
Media requests return a job ID. Poll GET /api/v1/jobs/:id until it succeeds or fails; keep the same ID while it is processing. Long chat requests can also return a saved job to poll. Completed outputs are stored in your account, and successful work is billed using your model's current rates.
A multi-step workflow may include separately billed successful actions. If a connection drops, check your saved run before submitting it again.






