Docs
REST APIVideosReserve upload POST

Reserve upload

Creates a new video record and returns a signed TUS upload endpoint. Use the returned tus.endpoint with a TUS client to upload the file. The upload link expires in 24 hours.

POST
/v1/videos/uploads/reserve

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

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://api.moviie.ai/v1/videos/uploads/reserve" \  -H "Content-Type: application/json" \  -d '{    "filename": "intro.mp4",    "filetype": "video/mp4",    "checksum": "string"  }'
{
  "video": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "external_id": "string",
    "status": "string"
  },
  "tus": {
    "endpoint": "http://example.com",
    "expires_at": 0,
    "library_id": "string",
    "headers": {
      "authorization_signature": "string"
    },
    "metadata": {
      "filetype": "string",
      "checksum": "string"
    }
  }
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}