Create Upload Tool
create_uploadCreate an upload for a video, audio file, or image the user wants to process.
Returns an opaque video id and a presigned PUT upload_url, NOT a completed
upload. Upload the actual bytes with one HTTP PUT before calling another tool.
In a client with authorized local file access, use e.g.
curl -X PUT --upload-file ./source.mp4 "<upload_url>". Never invent file bytes
or download URLs, or claim an upload succeeded without a successful PUT.
Clients without file-transfer capability must use an existing OpenClip
file or ask the user to upload through the matching tool at openclip.app.
After uploading: use caption_video for a whole video up to 3 minutes;
complete_upload ONLY for the paid video clipping pipeline; transcribe for
video/audio; edit_video, convert_media, or extract_thumbnails for video;
edit_image for an image (pass the returned video id as its file).
Media utilities and caption_video do NOT need complete_upload. Uploading
alone does not start processing or spend credits. Single PUT limit: 5 GB;
each processing tool also enforces its own account and file limits.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Optional file size in bytes, up to 5 GB. | |
| filename | Yes | Source filename including extension. | |
| content_type | Yes | Source MIME type, e.g. video/mp4, audio/mpeg, or image/png. Generic MIME types such as application/octet-stream are resolved from the filename. | |
| audio_language | No | Optional spoken-language code, e.g. en. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| next | Yes | ||
| video | Yes | ||
| method | Yes | ||
| uploaded | Yes | ||
| max_bytes | Yes | ||
| upload_url | Yes | ||
| expires_in_seconds | Yes |