Docs

Generate short vertical clips from a video

Generates ready-to-post vertical 9:16 clips from a video’s most engaging moments, each with animated word-level captions and framing that keeps the active speaker in shot. The work runs asynchronously: this call returns immediately with a job you poll for status and the finished clips. You can cap the number of clips and their length and pick a caption style. Billed in credits per minute of the source video (not per clip); the debit is refunded in full if no clips are produced or the job fails. An identical request already in flight for the same video is reused rather than charged again.

POST
/v1/videos/{id}/reels

Authorization

BearerAuth
AuthorizationBearer <token>

Pass the raw API key as a Bearer token (Authorization: Bearer <key>). Publishable keys start with mvi_pub_ (playback-scoped). Other prefixes denote private/admin keys for general REST routes. GET /v1/embeds/{embedId}/playback accepts publishable keys only.

In: header

Path Parameters

id*string

Video identifier.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.moviie.ai/v1/videos/497f6eca-6276-4993-bfeb-53cbbbba6f08/reels" \  -H "Content-Type: application/json" \  -d '{}'
{
  "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39",
  "status": "completed",
  "creditsCharged": 20,
  "deduped": false
}
{
  "jobId": "9d222c6d-893e-4e79-8201-3c9ca16a0f39",
  "status": "completed",
  "creditsCharged": 20,
  "deduped": false
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}
{
  "error": "rate_limited"
}