Create Video Upload URL
create_media_uploadCreates a signed URL for uploading a video file (MP4 or MOV, max 200MB) straight to FeedSquad storage over HTTP, for clients that can run commands or make HTTP requests. A video's bytes do not fit in a tool argument, so the file goes to upload_url as one HTTP PUT with the raw bytes as the body, the Content-Type header set to mime_type and x-upsert: false; the URL's token authorizes it, with no other credential. Takes kind (video), mime_type (video/mp4 or video/quicktime), size_bytes (the exact file size in bytes, at most 200MB) and an optional filename. Returns upload_id, upload_url, method (PUT), headers, expires_at (two hours after creation), max_bytes, a curl command line and next_step, the attach call that takes upload_id together with a post_id. The storage path is chosen by the server, and a stored file cannot be overwritten through the URL. Clients without HTTP access attach a video by its public HTTPS URL. Nothing counts against the 5GB monthly video budget until the upload is attached; a size_bytes larger than what remains of the budget is refused up front. At most 5 uploads can be open at once and 20 created in any 24 hours. Errors carry error.data = { code, recovery } with codes UNSUPPORTED_FORMAT, UPLOAD_TOO_LARGE, VIDEO_QUOTA_EXCEEDED, TOO_MANY_OPEN_UPLOADS, TOO_MANY_UPLOADS_TODAY and UPLOAD_NOT_AVAILABLE. Included with paid Handler only: on Free Handler the call is refused as not included in the plan.
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": {
"kind": "<kind>",
"mime_type": "<mime_type>",
"size_bytes": "<size_bytes>"
},
"name": "create_media_upload"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | What is being uploaded. Only video for now. | |
| filename | No | Optional original file name, kept for the record. It does not choose the storage path. | |
| mime_type | Yes | The file type: video/mp4 for .mp4, video/quicktime for .mov. The PUT must send the same value as its Content-Type, and the file content must match it. | |
| size_bytes | Yes | The exact file size in bytes (at most 200MB). The uploaded file may not be larger. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| curl | Yes | ||
| kind | Yes | ||
| method | Yes | ||
| headers | Yes | ||
| max_bytes | Yes | ||
| next_step | Yes | ||
| upload_id | Yes | ||
| expires_at | Yes | ||
| upload_url | Yes |