Wan 3.0 30-second clip via API: request, poll and the $3.75 price
Ask for model wan-3.0 with duration 30 on Sume's POST /v1/videos. At 720p the clip prices at $3.75 on Sume; here is the request and a poll loop.

Send model: "wan-3.0" with duration: 30 to POST https://api.sume.com/v1/videos and poll the job. At 720p, Sume prices 30 seconds of Wan 3.0 at $3.75, which is fal's $0.10 per second list rate times Sume's 1.25 factor.
Wan 3.0 accepts 2 to 30 seconds on Sume, so the full length needs no stitching.
The request
Same async route as every Sume video model. Keep the Idempotency-Key stable across retries.
curl -X POST https://api.sume.com/v1/videos \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: wan-3.0-30s-001" \
-d '{"model": "wan-3.0", "prompt": "A chef plates a dish, slow push-in, kitchen ambience", "duration": 30, "resolution": "720p", "aspect_ratio": "16:9"}'Poll until completed
Poll the polling_url roughly every 30 seconds and read usage.cost on completion.
import os, time, requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
job = requests.post(
"https://api.sume.com/v1/videos",
headers=H,
json={"model": "wan-3.0", "prompt": "A chef plates a dish, kitchen ambience",
"duration": 30, "resolution": "720p", "aspect_ratio": "16:9"},
).json()
while True:
time.sleep(30)
s = requests.get(job["polling_url"], headers=H).json()
if s["status"] == "completed":
print(s["unsigned_urls"][0], s["usage"]["cost"])
break
if s["status"] in ("failed", "cancelled"):
print(s.get("error", s["status"]))
breakPrice by resolution
fal's page lists $0.05, $0.10 and $0.20 per second at 480p, 720p and 1080p, and notes pricing is subject to change. Sume bills the provider list times 1.25.
| Resolution | fal list per second | Sume for 30 s |
|---|---|---|
| 480p | $0.05 | $1.88 |
| 720p | $0.10 | $3.75 |
| 1080p | $0.20 | $7.50 |
Notes
- Audio is optional through
generate_audio. bitrate_modeis not supported on Wan 3.0.- Confirm the range with
GET /v1/videos/modelsbefore you build on it.
Why Wan 3.0 suits full-length iteration
fal lists Wan 3.0 at $0.10 per second at 720p, and Sume bills list times 1.25, so a full half-minute is $3.75. That makes it practical to iterate on a prompt at full length.
Wan 3.0 on Sume runs text-to-video, image-to-video and reference-to-video. It has no edit mode.
- Use 480p ($1.88 for 30 s) for storyboards.
- Move to 720p once the motion is right.
- Use 1080p ($7.50 for 30 s) only for the deliverable.
Reading the cost afterwards
The submit response reserves the price; the poll response ends with usage.cost. If you run many clips, log that number rather than recomputing it from the table, because the table follows list prices that fal says can change.
Sources
Related posts
More in Developers
- Wan 3.0 API in Node: vertical image-to-video from a first frame
Call Wan 3.0 on Sume from Node with fetch: pin a first frame, ask for 9:16 at 720p, poll the job and save the MP4. Includes limits and the 8-second price.
- Wan 3.0 API request cheat sheet: three modes, 2 to 30 seconds
Wan 3.0 on Sume: the request body for text, first/last frame and reference modes, the 480p/720p/1080p rates and the 2 to 30 second window, on one page.
- Wan 3.0 API rate limit: 300 RPM on Model Studio vs Sume jobs
Alibaba lists 300 requests per minute for Wan 3.0 on Model Studio. Here is what that means for a batch, and how Sume submits Wan 3.0 as async jobs.
- Wan 3.0 reference-to-video body: images, videos and audio in one job
A Wan 3.0 reference job on Sume takes up to 10 images, 5 videos and 5 audio files. Request body, the audio rule, and the frame-versus-reference conflict.
Written by Sume