Why Sume's video models list shows 11 ids, not 12
Docs describe 12 video router ids, but GET /v1/videos/models can return 11. higgsfield-genjutsu lists only when its provider is configured. Check yours.

Why does your GET /v1/videos/models response have one fewer model than the docs table? Almost certainly higgsfield-genjutsu. In Sume's code, that one id is listed only when its provider is configured for the platform; every other public id is listed unconditionally. A missing Genjutsu row is expected behavior, not an outage.
What the filter does
The model listing function in Sume's API filters descriptors to the public video router ids, and keeps higgsfield-genjutsu only if the generation model for it is configured. The video models docs describe the endpoint as the place to find supported models, capabilities and prices, so treat its response, not a doc table, as the source of truth for your account.
| Id | Listed when | Kind |
|---|---|---|
| seedance-2.5, seedance-2, seedance-2-fast, seedance-2-mini | Always | General video |
| kling-3, wan-3.0, grok-imagine-video-1.5 | Always | General video |
| minimax-h3, minimax-h3-max, gemini-omni-flash-1.1 | Always | General video |
| h3-max-recast | Always | Person swap |
| higgsfield-genjutsu | Only if its provider is configured | Motion transfer |
Why Genjutsu is special
Genjutsu is not a text-to-video model. Its catalog description says it takes exactly one source video and 1 to 8 images, with a source duration of 4 to 30 seconds, and offers no text-only generation, frame images, aspect ratio or audio toggle. It defaults to 480p. If your code assumes every listed model takes a prompt alone, it would break on this one anyway.
h3-max-recast is similarly narrow: one source video of 5 to 30 seconds and 1 to 4 photos.
Coding for it
Do not hard-code a count. Read supported_input_references and supported_frame_images from each entry and only offer text-to-video on models whose descriptions allow it. Handle a model_not_found error from POST /v1/videos by falling back to another id, since a model you saw yesterday may not be listed tomorrow. The generation admission docs list the error codes.
A quick check
Run the list call and look for higgsfield-genjutsu in data[].id. If it is absent and the rest are present, nothing is broken. If several other ids are missing too, check that your key is valid and belongs to the workspace you expect, because an invalid key returns an error rather than a short list. Counting ids is a poor health check; checking for the ids your code actually requests is a better one, and it makes the Genjutsu case irrelevant to you unless you use motion transfer.
If you do need Genjutsu, its request shape is also different: exactly one video_url and 1 to 8 image_url entries in input_references, with duration set to the source clip length rounded up.
Sources
Related posts
More in Developers
- Sume waitForJob pollInterval is a floor; next_poll_after_seconds wins
waitForJob never polls faster than pollInterval, and a longer next_poll_after_seconds from the server raises the gap. Defaults, timing table, sample.
- Sume webhook fails the 300-second window: find the clock drift
A valid Sume signature still fails if your server clock is more than five minutes off. Tell drift from a bad secret with a small Python check.
- Sume webhook handler over 10 seconds: acknowledge first, then work
Sume gives each webhook attempt 10 seconds. Verify, answer 2xx, then process in the background and dedupe on job_id. Node sample you can run locally.
- Sume webhook retries for 4.5 minutes: dedupe on job_id in Python
Sume retries a webhook up to 10 times, 30 s apart. Make the effect happen once with a claim row keyed on job_id, shown in runnable Python with SQLite.
Written by Sume