Skip to main content
Upload between 1 and 9 files in a single request. Every upload automatically creates a post. When sending multiple files, they are grouped into an album by default.

Headers

Behavior

  • One file: creates a single post. post-type is ignored.
  • Two or more files, no header or album: creates one album post containing all files.
  • Two or more files, individual: creates a separate post for each file.
  • post-privacy: private: the returned url (and any urls in albums) is a signed URL with a 24-hour expiry. After it expires, call GET /posts/{code} or GET /uploads to get a fresh signed URL.
  • Video uploads: .mp4, .mov, and .mkv files are remuxed to MP4 with +faststart so the browser can begin playback before the full file has downloaded. .mov and .mkv uploads are stored (and returned) with an .mp4 extension. If remuxing fails, the original file is stored unchanged. See File Types for details.
  • Metadata: Metadata (camera, GPS location, timestamp) is stripped by default. For images, EXIF is removed from PNG, JPG, and WebP up to 100 MB (larger images are stored unchanged). For videos, container metadata is removed during the MP4 remux. Send include-metadata: true to keep it.
  • Priority streaming: Eligible videos are streamed with adaptive bitrate by default, spending priority minutes. Send priority: false to upload in standard quality instead and save your minutes. The post’s priority field reflects whether the video ended up on adaptive streaming.

Examples

Upload a single file:
Upload an album (two or more files default to album):
Upload multiple files as individual posts:

Responses

Single file:
priority is true when the upload is a video that was placed on priority (adaptive) streaming, and false otherwise. Album (two or more files, default): one post containing every file.
Individual (post-type: individual): one entry in post.posts per file. If a file fails, a failed array is included alongside files.