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.

5 min readSume
All posts

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"]))
        break

Price 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.

Wan 3.0 on Sume, 30 s (read 2026-10-07)
Resolutionfal list per secondSume 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_mode is not supported on Wan 3.0.
  • Confirm the range with GET /v1/videos/models before 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

All Developers posts

Written by Sume