Trim and conform a clip to 1080x1920 at 30 fps in one call
video-trim takes an optional output {width, height, fps} that conforms on the way out, exact precision only. Width and height 256-2160, fps 24, 25, 30 or 60.

Add output: { width, height, fps } to POST /v1/video-trim and the cut is conformed on the way out in the same job. It only works with precision: "exact"; with keyframe the request fails video_trim_output_requires_exact.
This is from the Video trim docs, read 2026-09-30.
What values are allowed?
width and height are 256 to 2160; fps is 24, 25, 30 or 60. Omit output to inherit the source. The cut itself takes start and exactly one of end or duration (0.2 to 900 s). The job costs $0.02.
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: trim-conform-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/source.mp4",
"start": 5,
"duration": 10,
"precision": "exact",
"output": { "width": 1080, "height": 1920, "fps": 30 }
}'Why conform before a Timeline?
Timeline 1.0 renders 1080x1920 by default and, without output.fps, follows the source frame rate. A rate that differs from a source's is met by repeating or dropping frames, reported as output_fps_resamples_sources. Conforming clips first to the rate you will render at avoids that resample.
What does the result confirm?
GET /v1/jobs/:id/result is kind: video_trim with video_url (a new artf_, never the source), duration_seconds, actual_start_seconds, precision, audio, output and optional warnings[]. A range past the source clamps and warns trim_clamped_to_source.
| Field | Values | Needs exact |
|---|---|---|
| output.width / height | 256 to 2160 | Yes |
| output.fps | 24, 25, 30, 60 | Yes |
| audio | keep, drop | No |
| precision | exact, keyframe | - |
Sources
Related posts
More in Developers
- TTS invalid_voice_id 400: a voice name from another vendor
Sume returns 400 `invalid_voice_id` for a voice name that is not a UUID or `voi_` id, before any job or credit. Copy an id verbatim or send an avatar.
- TTS locale vs language field: getting an en-GB accent
Cartesia's locale field picks a regional accent such as en-GB on Sonic 3.6. Sume's TTS request has a language field only, so pick the accent via the voice.
- TTS reads 1999-2000 wrong: write ranges and fractions as words
Cartesia does not normalize ranges like 1999-2000 or fractions like 2/3. Sume sends your transcript literally, so write them as words before you submit.
- TTS voice-language mismatch warning: confirm, then retry
Sume's TTS warns when a voice's language differs from `language`. No job or charge exists yet; after the user agrees, retry with `confirm_language_mismatch`.
Written by Sume