Skip to Content
DocumentationModelsVideoWan 2.7 Video

Wan 2.7 Video

Use wan2.7-video to create video output. This page contains the complete request needed for this model.

Model facts

PropertyValue
Model IDwan2.7-video
EndpointPOST /api/v1/generation/create
OutputVideo
Modestext-to-video, image-to-video, video reference, audio reference
PricingView current pricing 

Minimal request

curl -X POST https://api.api-stock.com/api/v1/generation/create \ -H "Authorization: Bearer $API_STOCK_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "wan2.7-video", "input": { "prompt": "A cinematic scene with soft natural light" } }'

The create response contains a task ID:

{ "code": 200, "data": { "taskId": "019ca881-9503-7270-a560-f00fc2b15785", "status": "not_started", "createdAt": "2026-08-22T12:00:00.000Z" } }

Parameters

Parameters belong inside the top-level input object. Unknown fields are rejected.

ParameterTypeRequiredDefaultDescription
promptstringNoText prompt. Required for text-to-video, reference-to-video and edit-video; optional for image-to-video.
imageUrlsstring[]NoImage-to-video frames. First URL is the starting frame, an optional second URL is the ending frame. Providing this selects the image-to-video workflow.
referenceImageUrlsstring[]NoReference images for the reference-to-video workflow. Requires a prompt.
referenceVideoUrlsstring[]NoReference videos for the reference-to-video workflow. Requires a prompt.
editVideoUrlstringNoSource video to edit. Providing this selects the edit-video workflow (requires a prompt).
referenceImageUrlstringNoOptional reference image guiding the edit-video workflow.
continueVideoUrlstringNoSource video to continue or extend. Selects the video-continuation workflow. Cannot be combined with imageUrls or audioUrl. Supported duration is 2-10 seconds.
audioUrlstringNoOptional audio URL (text-to-video and image-to-video workflows).
size“16:9” | “9:16” | “1:1” | “4:3” | “3:4”No"16:9"Aspect ratio (text-to-video, reference-to-video and edit-video). Ignored for image-to-video, where it is derived from the input frames.
resolution“720p” | “1080p”No"720p"Output resolution
durationnumberNoVideo duration in seconds (2-15). Allowed values depend on the resolved workflow: text-to-video accepts 5/10/15, image-to-video 2-15, reference-to-video 2-10, edit-video 0 or 2-10 (0 lets PoYo detect the source video duration).
multiShotsbooleanNoEnable multi-shot generation (image, reference and edit workflows).
audioSettingstringNoAudio setting for the edit-video workflow.
seednumberNoRandom seed for controlling randomness
enableSafetyCheckerbooleanNoEnable the model’s safety checker

Modes

Minimal generation

{ "model": "wan2.7-video", "input": { "prompt": "A cinematic scene with soft natural light" } }

With image urls

{ "model": "wan2.7-video", "input": { "prompt": "A cinematic scene with soft natural light", "imageUrls": [ "https://example.com/input.jpg" ] } }

With reference image urls

{ "model": "wan2.7-video", "input": { "prompt": "A cinematic scene with soft natural light", "referenceImageUrls": [ "https://example.com/input.jpg" ] } }

With reference video urls

{ "model": "wan2.7-video", "input": { "prompt": "A cinematic scene with soft natural light", "referenceVideoUrls": [ "https://example.com/input.mp4" ] } }

With edit video url

{ "model": "wan2.7-video", "input": { "prompt": "A cinematic scene with soft natural light", "editVideoUrl": "https://example.com/input.mp4" } }

With reference image url

{ "model": "wan2.7-video", "input": { "prompt": "A cinematic scene with soft natural light", "referenceImageUrl": "https://example.com/input.jpg" } }

With continue video url

{ "model": "wan2.7-video", "input": { "prompt": "A cinematic scene with soft natural light", "continueVideoUrl": "https://example.com/input.mp4" } }

With audio url

{ "model": "wan2.7-video", "input": { "prompt": "A cinematic scene with soft natural light", "audioUrl": "https://example.com/input.mp3" } }

Constraints

  • size: allowed: 16:9, 9:16, 1:1, 4:3, 3:4.
  • resolution: allowed: 720p, 1080p.

Invalid types, unsupported enum values, out-of-range numbers, and missing required fields return HTTP 400 with error.code: "invalid_input". Correct the request rather than retrying it unchanged.

Result

Poll the task or provide a top-level webhook URL in the create request:

curl https://api.api-stock.com/api/v1/task/status/$TASK_ID \ -H "Authorization: Bearer $API_STOCK_KEY"

A successful media task returns one or more files:

{ "code": 200, "data": { "taskId": "019ca881-9503-7270-a560-f00fc2b15785", "status": "finished", "files": [ { "fileUrl": "https://storage.api-stock.com/result.mp4", "fileType": "video" } ], "createdTime": "2026-08-22T12:00:00.000Z" } }

See Tasks and webhooks for terminal statuses, retries and webhook delivery.