create_media_upload
Get presigned upload URLs for media you generated locally (e.g. rendered carousel slides or a video) that is too large to inline as base64Images. Returns one uploadUrl per file -- HTTP PUT each file's raw bytes to its uploadUrl with the matching "Content-Type" header (no auth header), then call finalize_media_upload with the returned uploadId. A batch is EITHER up to 10 images (one carousel, kept in order) OR exactly one video. Images: jpeg/png/webp/gif, max 25MB each. Video: max 512MB. Upload URLs expire in 1 hour. This is for media YOU produced; if the USER uploaded media in the Socialync app, use list_media instead. If the PUT can't connect (a sandbox network block, a proxy 403, "host not allowed", a DNS failure), do not retry it and do not call finalize_media_upload. Tell the user plainly that their AI app can't reach Socialync's upload server, then offer the two ways forward: (1) they add the file in Socialync (socialync.io: start a post and add the file, no need to finish it), come back, and you find it with list_media; or (2) they allow the upload host in their AI app's code or network settings and you try again. Images up to 8MB each can also go inline as base64Images instead.
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": {
"files": "<files>"
},
"name": "create_media_upload"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| files | Yes | The files to upload. EITHER 1..10 images (a carousel, in order) OR exactly one video. |