Media

Upload a video

Tells us a video is coming and gives you a URL to send it to. PUT the file to upload.url with upload.headers, then call complete. The URL works for 15 minutes; an upload that never finishes is cleared away after 6 hours.

post/media/uploads

Request

  • Base URL: https://api.deploy.social/v1
  • URL: https://api.deploy.social/v1/media/uploads
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

Any unique string, like a UUID. Send the same request again with the same key within 24 hours and you get the first response back instead of a second post.

Example:5f0c7a1e-8d0b-4c0e-9d8a-1c2b3a4d5e6f

Request body

filenamestring required

The file's name.

size_bytesinteger required

The file's size in bytes. Up to 1 GB for a video, 30 MB for a photo.

content_typestring required

The file's type: a video (MP4, MOV, WebM, AVI or MTS) or a photo (JPEG, PNG or WebP).

Example request

{
  "filename": "studio-update.mp4",
  "size_bytes": 48213377,
  "content_type": "video/mp4"
}

Response

The new video and where to upload it.

Example response

{
  "media": {
    "id": "media_cmf3k0m2b0000ab12cd34ef56",
    "kind": "video",
    "status": "ready",
    "filename": "studio-update.mp4",
    "content_type": "video/mp4",
    "size_bytes": 48213377,
    "duration_sec": 42.5,
    "width": 1080,
    "height": 1920,
    "progress": {
      "phase": "transcoding",
      "percent": 62
    },
    "created_at": "2026-10-01T15:00:00.000Z",
    "updated_at": "2026-10-01T15:00:00.000Z"
  },
  "upload": {
    "headers": {
      "Content-Type": "video/mp4"
    },
    "expires_at": "2026-10-01T15:00:00.000Z"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.