Skip to main content
Upload between 1 and 50 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 file is rejected as corrupt or unplayable. See File Types for details.
  • Metadata: Metadata (camera, GPS location, timestamp) is stripped by default. For images, metadata is removed from PNG, JPG, WebP and GIF at any size, without re-encoding, so the pixels are untouched. Display orientation is preserved on JPG and WebP, and GIF animation and looping are preserved. 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.
  • Failures: when every file in the request fails, the response is 400. For a single-file upload the reason is returned directly as error (for example Weekly usage limit exceeded.). For multi-file uploads the response is All files failed to upload. with a failed array naming each file by index.

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 and the message counts what landed.