Files

Complete a direct upload

Finish an upload after every part is in storage. The API checks that all parts are present and add up to the size you declared, then adds the file to your media library and returns it. A video then goes through the same checks, thumbnail and encoding as a Studio upload.

If a part is missing or has the wrong size, the response is UPLOAD_INCOMPLETE and the upload stays open: re-send the part and call this endpoint again.

Calling it again after a success (for example after a lost response) returns the same file, so a retry is safe. A retry that arrives while the first call is still checking the file (this takes up to about 30 seconds for a video) answers 409 UPLOAD_PROCESSING: call again in 30 seconds. If the first call was interrupted, keep calling: after about five minutes a retry finishes the upload. If the check fails (UPLOAD_INVALID), the stored object is deleted: upload the file again. If this call answers FILE_TOO_LARGE or STORAGE_LIMIT_EXCEEDED, this upload cannot be completed: free space or upgrade, then start a new upload.

post/files/upload/complete

Request

  • Base URL: https://api.livereacting.com/v1/external
  • URL: https://api.livereacting.com/v1/external/files/upload/complete
  • Auth: HTTP bearer

Request body

uploadTokenstring required

The uploadToken from POST /files/upload.

Response

The file is in the media library

idstring

Unique file identifier

namestring nullable

File name

type'video' | 'image' | 'audio' nullable

File type

folderIdstring nullable

ID of the folder containing this file. Only present if the file is in a folder.

createdAtstring date-time nullable

File creation timestamp

resolutionstring

Video resolution (e.g., "1920x1080"). Only present when include=metadata is requested.

frameRatenumber

Video frame rate in fps. Only present when include=metadata is requested.

bitrateMbpsnumber

Video bitrate in Mbps. Only present when include=metadata is requested.

durationSecnumber

File duration in seconds. Only present when include=metadata is requested.

sizeBytesinteger

File size in bytes. Only present when include=metadata is requested.

videoCodecstring

Video codec name. Only present when include=metadata is requested.

audioCodecstring

Audio codec name. Only present when include=metadata is requested.

Example response

{
  "id": "507f1f77bcf86cd799439011",
  "name": "intro-video.mp4",
  "type": "video",
  "folderId": "507f1f77bcf86cd799439012",
  "createdAt": "2026-01-25T09:00:00Z",
  "issues": {
    "errors": [
      "bitrate_too_high"
    ],
    "warnings": []
  },
  "resolution": "1920x1080",
  "frameRate": 30,
  "bitrateMbps": 5.42,
  "durationSec": 120.5,
  "sizeBytes": 52428800,
  "videoCodec": "h264",
  "audioCodec": "aac"
}

Changes

No recorded changes to this operation across all 1 revision of this API.