---
title: "Create a clipping job"
method: POST
path: "/jobs"
---

# Create a clipping job

`POST /jobs`

## Request

- Base URL: `https://katto.tech/api/v1`
- URL: `https://katto.tech/api/v1/jobs`
- Auth: HTTP bearer

Submit a video URL (YouTube, Twitch, Kick, Vimeo, Zoom, Google Drive, Dropbox, Loom, LinkedIn, Facebook, Rumble, Dailymotion, Medal.tv, or a direct https link to a .mp4/.mov/.m4v/.webm/.mkv file). For a local file use POST /uploads. Consumes one slot of your monthly video quota. Pass an Idempotency-Key header to make retries safe.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `url` string, uri, required: Public video URL.
  - `webhook_url` string, uri: Optional public https URL. Receives a signed POST (X-Katto-Signature: HMAC-SHA256 of timestamp.body) when the job completes.
  - `config` object: Optional pre-clip settings.
    - `genre` string
    - `clipLength` 'lt30' | '30_60' | '60_90' | '90_180'
    - `customPrompt` string
    - `topics` string

## Response `200`

Idempotent replay: the original job for a reused Idempotency-Key (no new job created, no quota charged).

- object
  - `id` string, uuid
  - `status` string
  - `status_url` string, uri
  - `idempotent_replay` boolean

## Other responses

- `201`: Job queued
- `400`: Error
- `401`: Error
- `403`: Error
- `409`: Error
- `413`: Error
- `429`: Error

---

[API](https://skmtc.dev/katto/apis/katto-api.md) · [All operations](https://skmtc.dev/katto/apis/katto-api/llms.txt) · [OpenAPI document](https://skmtc.dev/katto/apis/katto-api/revisions/f2ae2d85e51d?raw)
