Video: Trim — API reference
Trim video to a time range
All API tools
POST
/api/v1/jobs
tool: video-trim
scope: video:write
~2 credits
Trim video to a time range
Request body
| Field | Type | Required | Description |
|---|---|---|---|
tool | string | required | Must be "video-trim" for this endpoint. |
input.url | string (URL) | required | Publicly fetchable URL of the source video file. Use /v1/uploads to upload directly to R2 if you don't have one. |
options | object | optional | Tool-specific knobs. Defaults shown in the example. Unknown keys are ignored. |
webhookUrl | string (URL) | optional | If set, we POST the final result to this URL. Pro/Max only — see Webhooks. |
idempotencyKey | string | optional | Re-submitting with the same key within 24 h returns the original response without re-running the job. |
Code sample
curl -X POST https://api.utified.com/v1/jobs \
-H "Authorization: Bearer utf_live_…" \
-H "Content-Type: application/json" \
-d '{
"tool": "video-trim",
"input": { "url": "https://download.samplelib.com/mp4/sample-5s.mp4" },
"options": {
"start": 0,
"end": 10
}
}'Responses
202
Accepted — job queued
{
"id": "job_abc123def456",
"state": "queued",
"statusUrl": "/api/v1/jobs/job_abc123def456"
}Polled status (GET /api/v1/jobs/<id>)
{
"id": "job_abc123def456",
"tool": "video-trim",
"state": "completed",
"progress": 100,
"result": {
"status": "converted",
"outputFormat": "mp4",
"downloadUrl": "https://media.utified.com/processed/abc123-clip_converted.mp4",
"message": "Successfully converted to mp4"
},
"createdAt": "2026-05-17T15:42:00.000Z",
"startedAt": "2026-05-17T15:42:01.124Z",
"finishedAt": "2026-05-17T15:42:13.842Z",
"queue": "video-standard-queue"
}Pull result.downloadUrl once state === 'completed'. Set up a webhook to skip polling — see /docs/api/webhooks.