media_id (UUID) to pass to Posting endpoints as default_image_id, video_id, or carousel image_ids.
Base URL & auth
Use returned
media_id in POST /unified/post/image, carousel, or video requests.POST /media/upload
Single endpoint for image, video, or multiple images (carousel batch upload).Form fields
Provide either file(s) or URL(s) — not empty.
Single image
Single video
Multiple images (carousel batch)
Minimum 2 images, maximum 35 per request. Returns an array of ids.Upload response (single)
Upload response (multiple)
With vs without platform
Chunked upload (large videos)
For large files, use the storage chunk API instead of a single multipart POST.Flow
POST /media/storage/init
JSON body:X-Workspace-Id.
POST /media/storage/chunk
Multipart form:POST /media/storage/complete
JSON body:
Returns same shape as direct upload:
media_id, public_url, etc.
GET /media/storage/progress
GET /media
List media for the current workspace.
Requires
X-Workspace-Id.
GET /media/
Fetch one media record by UUID.DELETE /media/
Delete one media item from DB and storage.Bulk and filter delete
Using media_id in posts
After upload, reference ids in Posting:image_ids (not the bulk upload endpoint count limit of 35 — posting validates 2–20).
MCP equivalent
Thepublish tool accepts default_image_id, default_image_url, video_id, and video_url. Upload media via REST first, then call MCP publish with the returned id.
See MCP tools and Posting.
Related
- Posting — consume
media_idin publish requests - OAuth — connect accounts before platform-scoped uploads
- Authentication — workspace headers and API keys