POST/v1/media/create-upload-url

Create media upload URL

Request a signed upload URL, then `PUT` the file bytes to `upload_url`. Pass the returned `media_id` into `POST /v1/posts`.

Request

bash·cURL
curl -X POST "https://YOUR_PROJECT.supabase.co/functions/v1/public-api/v1/media/create-upload-url" \
  -H "Authorization: Bearer px_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{   "mime_type": "image/png",   "size_bytes": 245760,   "name": "slide-1.png" }'

Body

NameTypeDescription
mime_typerequiredstringMIME type, e.g. `image/png`, `image/jpeg`, `video/mp4`.
size_bytesrequiredintegerExact file size in bytes.
namestringOptional filename hint used for extension detection.
json·Example body
{
  "mime_type": "image/png",
  "size_bytes": 245760,
  "name": "slide-1.png"
}

Response

json·200 OK
{
  "media_id": "user-uuid/api/550e8400-e29b-41d4-a716-446655440000.png",
  "upload_url": "https://…supabase.co/storage/v1/object/upload/sign/…",
  "bucket": "images",
  "path": "user-uuid/api/550e8400-e29b-41d4-a716-446655440000.png",
  "token": "…"
}