Skip to main content
POST
Creates one or more video clips from a live stream’s recording. Each clip becomes a standalone content item (contentType: "video") that appears in your feed once processing completes. You can clip from a stream that is still active (real-time clipping while the broadcast is in progress) or from one that has ended. Authenticated with your secret key.
This endpoint requires your secret key, so it must be called from a server-side context — never directly from a client app. If you want users of your iOS / Android / web client to be able to create clips themselves (for example, a “clip this moment” button), expose your own backend endpoint that accepts the request from your client (using whatever user-auth your app already uses), then forward to this endpoint with your secret key. That pattern lets you apply your own rate limits, attribution, and abuse controls before a clip is created.

Path parameters

string
required
The live stream’s UUID.

Body parameters

array
required
An array of clip ranges to create. Up to 20 per request. Each entry has:
  • startSec (number, required) — Offset from the beginning of the stream, in seconds. Must be >= 0.
  • endSec (number, required) — End offset, in seconds. Must be greater than startSec.
  • title (string, optional) — Display title for the resulting content item.
string
An HTTPS URL that ShortKit will POST to once each clip’s media is fully processed and ready to play. Useful when you want to publish a clip in your own UI without polling.

Clip availability

Clips are returned immediately with a new contentId, but the underlying media takes a few seconds to a few minutes to process depending on length. The clip’s content item will report uploadStatus: "processing" until processing finishes, then transition to ready. If you provided a callbackUrl, ShortKit will POST to it once each clip is ready, with the clip’s contentId and current state. Otherwise, poll the content item directly.

Errors