Complete an upload
Registers a finished upload, captures its dimensions/duration, and returns the video metadata together with the exact credit cost, in the same payload shape as POST /clips/info. Pass the returned video_id to POST /clips to start a clipping submission.
Call this only after the PUT to upload_url returned 200. If the file is missing from storage, this returns FILE_NOT_FOUND.
Authorization
apiKey In: header
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/videos/upload/complete" \ -H "Content-Type: application/json" \ -d '{ "video_id": "string", "file_name": "string", "duration": 0, "width": 0, "height": 0 }'{ "video_id": "string", "title": "string", "description": "string", "author": "string", "platform": "string", "duration": 0, "thumbnail_url": "string", "credits_cost": 0, "credits_original": 0, "discount_percent": 0, "force_watermark": true, "current_balance": 0, "credits_unlimited": true}Discard a multipart upload POST
Releases the parts already uploaded. Without this they keep occupying (and billing) storage — there is no object yet for a lifecycle rule to match.
List videos GET
Returns a paginated list of all source videos in your library, ordered by most recent submission. Each item includes lifecycle counters (clips generated, edits, exports, posts) and the status of the latest submission.