What a 30-second Wan 3.0 job reserves on Sume: list price x 1.25

At submit Sume reserves provider list x 1.25. For Wan 3.0 at $0.05, $0.10, $0.20 per second, a 30-second job reserves $1.88, $3.75 or $7.50. Handle 402.

5 min readSume
All posts

Sume reserves the provider list price times 1.25 when it accepts a video job. If the Wan 3.0 list rate is $0.05, $0.10, and $0.20 per output second at 480p, 720p, and 1080p, a 30-second job reserves about $1.88, $3.75, and $7.50. The balance check happens at submit, so a short balance fails fast with 402 insufficient_credits before provider work starts.

This is arithmetic from the published list rates and Sume's documented multiplier, not a quote. The billable amount appears as usage.cost on the poll response, and the final capture is what counts.

The numbers

Alibaba's launch post gives the per-second list rates. Multiply by 30 for the clip, then by 1.25 for the reservation.

30-second Wan 3.0 job, list price and reservation (read 2026-10-07)
ResolutionList per secondList for 30 sReserve at x1.25
480p$0.05$1.50$1.875
720p$0.10$3.00$3.75
1080p$0.20$6.00$7.50

Reserve, capture, refund

A successful completion captures the reserved usage. Where applicable, failed jobs and failed queue admission release or refund the reservation. Cancelling a queued job before it starts releases it too, which is why a batch with a bad prompt should be cancelled early.

A client timeout does nothing to the money: the job keeps running and keeps billing. Store the job id.

Check the balance before a batch

GET /v1/balance returns the workspace USD balance. Multiply your planned clip count by the reservation for the resolution, and leave headroom.

import os, requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
LIST_PER_SECOND = {"480p": 0.05, "720p": 0.10, "1080p": 0.20}

def reserve_usd(resolution: str, seconds: int) -> float:
    return round(LIST_PER_SECOND[resolution] * seconds * 1.25, 3)

bal = requests.get("https://api.sume.com/v1/balance", headers=H, timeout=30)
bal.raise_for_status()
need = 10 * reserve_usd("720p", 30)
print("balance payload:", bal.json())
print(f"ten 30 s jobs at 720p reserve about ${need:.2f}")

Sources

Related posts

More in Pricing

All Pricing posts

Written by Sume