Wan 3.0 file_url, web_url, enable_thinking: not in Sume v1
Sume's wan-3.0 id does not expose file_url, web_url or enable_thinking, and provider.options must stay empty. Use references and prompt fields instead.

If you are porting a Wan 3.0 call and it carries file_url, web_url or enable_thinking, drop them. The Sume catalog states that wan-3.0 does not expose those fields in v1, and the provider.options object must stay empty, so there is no passthrough route for them either.
What you can send instead is the normal Sume request: prompt, duration (2 to 30 seconds), resolution, aspect_ratio, frame_images for first and last frame, and input_references for images, video and audio.
What replaces each field
The mapping is not one to one, so decide per field whether you need the behavior at all.
| Field you may be porting | On Sume wan-3.0 | What to do |
|---|---|---|
file_url | Not exposed in v1 | Send the media as an input_references entry with a public HTTPS URL |
web_url | Not exposed in v1 | Fetch the page content yourself and put the facts in prompt |
enable_thinking | Not exposed in v1 | Write a fuller prompt; there is no reasoning toggle to set |
Anything in provider.options | Rejected when non-empty | Remove it |
Why Sume rejects instead of ignoring
The video API fails closed on anything it cannot honor. A silently ignored field would leave you billed for a clip that did not do what you asked, so the API returns an error and you fix the request. That is the same rule that rejects size and seed on this surface.
A minimal Wan request
This is a request that uses only fields the catalog accepts. Replace the URL with a public HTTPS image you control.
curl -X POST https://api.sume.com/v1/videos \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-3.0",
"prompt": "A slow push-in on the product, soft daylight",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "16:9",
"input_references": [
{"type": "image_url", "image_url": {"url": "https://example.com/product.png"}}
]
}'When the missing field matters: checklist
If your workflow depends on a web-grounded or reasoning mode, Sume's wan-3.0 is the wrong tool for that step. Do the research or planning in an agent turn, then hand the result to the video call as plain prompt text. Read the live catalog row to see whether a later release adds any of these fields.
Work through the request body once before you send the first job. Each line below removes a way for the call to fail.
Treat the catalog row as the contract. Provider documentation may describe more fields than the Sume row exposes, and only the row tells you what your request can include today. When it changes, your validator should pick the change up from the row, not from a code edit.
- Strip every field that is not in the catalog row, then diff your body against
GET /v1/video-router/models/wan-3.0. - Move media to
input_referenceswith public HTTPS URLs. - Keep
durationbetween 2 and 30 andresolutionto 480p, 720p or 1080p. - Send an
Idempotency-Keyso a retry replays the job and does not start a second one.
Sources
Related posts
More in Developers
- Sume webhook beat your database write: handle an unknown job_id
A fast Sume job can send its webhook before your submit handler commits the job id. Park the event in an inbox table and reconcile it, in runnable Python.
- Webhook for an unknown job_id: park it, then reconcile on insert
A Sume job.completed webhook can name a job_id your database has not stored yet. Return 2xx, park the event in SQLite, and apply it when the insert lands.
- Sume webhook blocked target is never retried; a DNS miss is
A blocked Sume webhook target fails once and is never retried, while a hostname that does not resolve is retried. What each looks like and how to recover.
- Sume webhook_url with :8443 is rejected: HTTPS default port only
Sume rejects any webhook_url with an explicit port such as :8443. Use the default HTTPS port, or poll instead. What the check accepts, and where it runs.
Written by Sume