Start an upload
Returns the generated media_id plus a presigned PUT URL. Upload the raw bytes to upload_url with the same Content-Type you declared here, then call POST /transcriptions with the media_id to start the job.
Both video and audio files are accepted, so an audio-only podcast never has to be wrapped in a video container. The ceiling is the smaller of your plan's upload limit and the storage quota you still have free; FILE_TOO_LARGE reports the effective ceiling in max_size and STORAGE_LIMIT_EXCEEDED means the quota is full.
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/transcriptions/upload" \ -H "Content-Type: application/json" \ -d '{ "file_name": "string", "file_size": 0 }'{ "media_id": "string", "kind": "video", "upload_url": "string", "expires_in": 0}List templates GET
Returns a paginated list of video editing templates. Use `filter=mine` (default) to list your own templates, or `filter=public` for CutPro's built-in public templates. Pass a template's `id` to `POST /clips/{videoId}/submissions/{submissionId}/apply_template` to apply it in bulk to your generated clips.
List transcriptions GET
Returns a paginated list of the workspace's transcription jobs, newest first.