Social0|Docs
Integrations

REST API — Media

Upload images and video via presigned URLs on the Social0 REST API.

Three-step upload

1. POST /v1/media/presign     → upload_url, key, storage_filename
2. PUT  <upload_url>          → raw file bytes (no API key)
3. POST /v1/media/confirm     → media id

Presign

POST /v1/media/presign
Content-Type: application/json

{
  "filename": "photo.jpg",
  "content_type": "image/jpeg",
  "size_bytes": 1048576
}

Upload

curl -X PUT "$upload_url" \
  -H "Content-Type: image/jpeg" \
  --data-binary @photo.jpg

Confirm

POST /v1/media/confirm
Content-Type: application/json

{
  "key": "uploads/.../uuid.jpg",
  "storage_filename": "uuid.jpg",
  "original_filename": "photo.jpg",
  "content_type": "image/jpeg",
  "size_bytes": 1048576
}

Returns 201 { "id": "media-uuid", "url": "https://cdn..." }.

Limits

TypeMax sizeTypes
Images~50 MBJPEG, PNG, GIF, WebP
Video~500 MBMP4, MOV, WebM

MCP tool

upload_media({ file_path }) runs all three steps automatically.

Full documentation

Media reference · Media upload guide

On this page