Move from a polished concept to cinematic 4K, faster.

Use Wan 3 Prime Pro for faster high-resolution delivery when skin detail, fabric, lighting, and controlled camera movement matter most.
Generation prompt
623/5000
1080P–4KUp to 30 seconds16:9Fine-detail render
Generate this scene with Wan 3 Prime ProOne-time 18+ confirmation required. You will see the estimated price before running.Example: 5s at 1080P costs about $1.001. Your settings determine the final estimate before generation.Regular one-time top-ups start at $10; first-top-up options appear on the billing page. No subscription. Your draft stays saved.
Sample resultDemo
Up to 30 seconds · 16:9
$0.2002 / second

API reference

Integrate this model from your server. Parameters and prices below come from the current ModelRush registry.
Create an API key with video permission and access to this model. Complete the adult-access confirmation in your ModelRush account. Keep the key on your server. Reuse the same Idempotency-Key when retrying the same submission.
generate-video.mjsjavascript
const origin = "https://api.modelrush.ai";
const headers = {
Authorization: `Bearer ${process.env.MODELRUSH_API_KEY}`,
"Content-Type": "application/json",
};
const submissionKey = crypto.randomUUID();
const response = await fetch(origin + "/v1/videos/generations", {
method: "POST",
headers: { ...headers, "Idempotency-Key": submissionKey },
body: JSON.stringify({
"mode": "text-to-video",
"audio": true,
"ratio": "16:9",
"prompt": "A polished cinematic cityscape with fine architectural detail and a slow aerial move",
"duration": 5,
"resolution": "4K",
"prompt_extend": true,
"model": "modelrush/wan3-prime-pro-spicy",
"region": "auto"
}),
});
if (!response.ok) throw new Error(await response.text());
const job = await response.json();
console.log({ id: job.id, poll_url: job.poll_url });
let finished = false;
for (let attempt = 0; attempt < 60; attempt++) {
await new Promise(resolve => setTimeout(resolve, 10000));
const statusResponse = await fetch(new URL(job.poll_url, origin), {
headers,
});
if (!statusResponse.ok) throw new Error(await statusResponse.text());
const result = await statusResponse.json();
if (result.status === "failed") throw new Error(JSON.stringify(result.error));
if (result.status === "completed") {
console.log(result.video_url);
finished = true;
break;
}
}
if (!finished) console.log({ id: job.id, poll_url: job.poll_url });
HTTP 202 means the job is queued. Save id and poll_url, then poll with the same API key until completed or failed. A successful video response contains video_url. Download the output within 24 hours. A polling timeout does not cancel the job; resume using the saved poll_url.
text-to-video requires a prompt. image-to-video requires first_frame and allows last_frame. reference-to-video requires at least one reference array. Do not mix keyframes and reference arrays. Use publicly accessible media URLs; region can be auto.duration = -1 selects smart duration. Reference video time plus generated video time must fit within 30 seconds. Image references accept public URLs or Base64 (JPEG, PNG, BMP, WebP data URIs). Video and audio references require accessible URLs. The gateway checks media type and reference video duration before submission.
ParameterRequirementAccepted values and limits
modeOptionaltext-to-video · image-to-video · reference-to-video
seedOptionalinteger; Minimum: 0; Maximum: 2147483647
audioRequiredboolean
modelRequired"modelrush/wan3-prime-pro-spicy"
ratioRequiredadaptive · 16:9 · 4:3 · 1:1 · 3:4 · 9:16
promptOptionalstring; Maximum characters: 20000
regionOptionalstring
durationRequired-1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 · 11 · 12 · 13 · 14 · 15 · 16 · 17 · 18 · 19 · 20 · 21 · 22 · 23 · 24 · 25 · 26 · 27 · 28 · 29 · 30
last_frameOptionalstring; Minimum characters: 1
resolutionRequired1080P · 2K · 4K
first_frameOptionalstring; Minimum characters: 1
prompt_extendOptionalboolean; Default: true
reference_audiosOptionalarray; Maximum items: 5
reference_imagesOptionalarray; Maximum items: 10
reference_videosOptionalarray; Maximum items: 5
input.schema.jsonjson
{
"type": "object",
"required": [
"model",
"duration",
"resolution",
"ratio",
"audio"
],
"properties": {
"mode": {
"enum": [
"text-to-video",
"image-to-video",
"reference-to-video"
]
},
"seed": {
"type": "integer",
"maximum": 2147483647,
"minimum": 0
},
"audio": {
"type": "boolean"
},
"model": {
"const": "modelrush/wan3-prime-pro-spicy"
},
"ratio": {
"enum": [
"adaptive",
"16:9",
"4:3",
"1:1",
"3:4",
"9:16"
]
},
"prompt": {
"type": "string",
"maxLength": 20000
},
"region": {
"type": "string"
},
"duration": {
"enum": [
-1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30
],
"type": "integer"
},
"last_frame": {
"type": "string",
"minLength": 1
},
"resolution": {
"enum": [
"1080P",
"2K",
"4K"
]
},
"first_frame": {
"type": "string",
"minLength": 1
},
"prompt_extend": {
"type": "boolean",
"default": true
},
"reference_audios": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 5
},
"reference_images": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 10
},
"reference_videos": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 5
}
}
}

Current API pricing

These are customer prices in USD per second. Reference-video requests include input reference video time in the billable duration. Smart duration is settled after generation. Do not infer price from the landing-page example alone.
ModelCapabilityExecution RegionPrice variantCustomer price
Wan 3 Prime Pro Spicy · modelrush/wan3-prime-pro-spicyVideo generationus-virginia1080P$0.2002 / second
Wan 3 Prime Pro Spicy · modelrush/wan3-prime-pro-spicyVideo generationus-virginia2K$0.2156 / second
Wan 3 Prime Pro Spicy · modelrush/wan3-prime-pro-spicyVideo generationus-virginia4K$0.2387 / second

Errors and access

401: check your API key. 403: check key permissions and adult-access confirmation. 400: check this model's schema and mode-specific inputs. 429: respect Retry-After before retrying. Keep the request ID when reporting a failed task.
© 2026 ModelRush