Skip to content

Popular guides

↑↓ Navigate↵ Openesc Close
Developer API

Uploads & assets

Upload files and use your own media in API video requests.

Uploads are a separate step from creating a video, so retrying generation does not resend a large file.

  1. Register the file with POST /uploads. Supply the filename, content type, and byte length required by the schema.
  2. For a live upload, send the raw file bytes with an HTTP PUT to the returned upload_url, using your declared content type. Test mode returns no upload URL; skip this transfer step. Never send your Kinema API key to a storage URL.
  3. Call POST /uploads/{id}/complete. Wait for successful validation before using the upload.
  4. Create a video with a validated audio or talking-head video upload_id instead of script. Use exactly one input.

File type and size are checked by the backend. A filename extension alone does not establish a valid media file. Test-mode uploads are only integration fixtures; use live mode when testing real file processing.

GET /uploads lists your API uploads. GET /catalog provides supported choices. The /voices, /avatars, and /brand-profiles endpoints list your available resources. Resources and IDs belong to their workspace and mode.