Create Media Upload URL (large files)
create_media_upload_urlStep 1 of uploading a video or image you hold (up to 200MB video / 25MB image) into the user's oriiion account — no API key and no browser needed. Returns a presigned PUT: send the raw file bytes (not multipart, not base64) to upload.url with exactly upload.headers, before upload.expiresAt (30 minutes), body at most sizeBytes. Then call finalize_media_upload with the mediaId. Allowed contentType: video/mp4, video/quicktime, video/webm, image/jpeg, image/png, image/webp, image/gif. Output: { mediaId, status: 'pending', upload: { method: 'PUT', url, headers, expiresAt, maxBytes }, kind, contentType, filename }.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"filename": "<filename>",
"sizeBytes": "<sizeBytes>",
"contentType": "<contentType>"
},
"name": "create_media_upload_url"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Original filename, e.g. 'launch.mp4'. The stored extension always follows contentType. | |
| sizeBytes | Yes | Exact file size in bytes; the upload is refused if the body is larger | |
| contentType | Yes | MIME type of the file: video/mp4, video/quicktime, video/webm, image/jpeg, image/png, image/webp, image/gif |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| status | Yes | ||
| upload | Yes | ||
| mediaId | Yes | ||
| filename | Yes | ||
| contentType | Yes |