Port a Kling 3 request to Sume motion control: three fields to remove
Sume Kling 3.0 Motion Control has a strict body. Moving from a Video Router kling-3 request means dropping model and reference urls and adding two fields.

If you already call Kling 3 through the Sume Video Router and want motion control, do not just change the URL. The Kling 3.0 Motion Control route has a strict body: it rejects model, reference_image_urls, reference_video_urls, and provider endpoint fields, and it requires motion_video_url and duration_seconds. Remove three fields, add two, and the same request shape works.
The two are different products on Sume. Video Router kling-3 generates from text or start and end frames, and has no reference_*_urls. Motion control animates a still with the motion of a video you supply.
Field by field
| Field | Video Router kling-3 | Motion control | Port action |
|---|---|---|---|
| model | Required, a catalog id | Rejected | Delete; the URL selects the model |
| reference_image_urls | Not accepted for kling-3 | Rejected | Use image_url, one still |
| reference_video_urls | Not accepted for kling-3 | Rejected | Use motion_video_url, one clip |
| prompt | Drives the scene | Optional, appearance only | Shorten it; motion comes from the video |
| motion_video_url | Not applicable | Required, up to 30 s | Add |
| duration_seconds | Chosen per clip | Required, 1 to 30, reservation basis | Add the measured clip length |
Before and after
A Video Router request names the model in the body and posts to /v1/video-router/generate. The motion control request posts to its own path, and the model id is stored by Sume as kling/3.0/motion-control.
curl -X POST https://api.sume.com/v1/kling/3.0/motion-control \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: port-demo-001" \
-d '{"image_url": "https://example.com/mascot.png", "motion_video_url": "https://example.com/reference.mp4", "duration_seconds": 10, "mode": "async"}'What changes in the result
The output length is the length of the motion video, so there is no duration choice to make beyond declaring it honestly. The reference audio is kept by default (keep_original_sound), and character_orientation decides whether the video's framing or the still's wins.
The price model changes too. Motion control is ceil(duration_seconds) times $0.1575. Check the current per-clip price of kling-3 in the live catalog before you compare, since it depends on resolution and audio.
Picking between them
A 30-second comparison of the two routes is in motion control at $4.725 against two kling-3 jobs.
- You have a motion reference and one still: motion control.
- You have only text, or a first and last frame: Video Router
kling-3. - You need several reference images to steer a scene: neither of these two; look at the models that list
reference_image_urlsinGET /v1/video-router/models.
Sources
Related posts
More in Developers
- Portuguese speech to text API: Sume STT language_code pt or pt-BR
Transcribe Portuguese audio with Sume STT using language_code pt or pt-BR, then check the reported language and word times. $0.01 per audio minute.
- POST /v1/images returns 200 or 202: one Python handler for Sume
Sume's image route blocks up to 30 seconds and returns 200 with images, or 202 with a job envelope. One handler that covers both and never double-submits.
- Probe a finished video before upload: duration, size and aspect
Run video inspect with frames false to read a render's duration, size and frame rate before posting. Check it against the 3-minute Shorts limit.
- URL or QR code in an AI avatar video: say it, caption it, or link it
An avatar clip cannot reliably carry a QR code or a long URL. Three Sume-supported options: spoken words, authored caption cues, or the text beside the video.
Written by Sume