Media library
Upload and reuse images and video
Every image and video you upload to OpenPost lives in your Media library. Files are stored in your workspace’s S3 bucket, served via a CDN, and can be attached to any number of posts without re-uploading.
Upload from the dashboard
Open Media
Click Mediain the left nav. You’ll see a grid of every asset in your workspace.
Drag files in
Drop one or many files onto the page. Each file uploads in parallel. Progress bars show per-file status.
Tag and describe (optional)
Tags help you find assets later. Descriptions double as alt-text defaults when you attach the asset to a post — good for accessibility and SEO.
Supported formats
| Field | Type | Description |
|---|---|---|
| images | JPEG, PNG, GIF, WebP, HEIC | HEIC is auto-converted to JPEG on upload. |
| video | MP4, MOV, WebM | We transcode to each channel's preferred codec before publish. |
| documents | For LinkedIn document posts only. | |
| max image size | 30 MB | Larger files are rejected — compress first. |
| max video size | 1 GB | Product-wide cap on upload. For larger files, upload natively on the platform. |
Finding assets
The library supports:
- Full-text search— searches filenames, tags, and descriptions.
- Filters— by type (image/video/PDF), by tag, by upload date.
- Sort— most recent, alphabetical, most-used in posts.
Attaching to a post
In the composer, click + Mediato open the picker. Select one or many assets. The same asset can be used across multiple posts — no duplicate uploads.
Upload via the API
For programmatic uploads, we use pre-signed S3 URLs — the file never passes through our servers, so uploads are fast and private.
# 1. Request a pre-signed URL
curl -X POST https://api.openpost.so/v1/media/upload \
-H "Authorization: Bearer $OP_KEY" \
-H "Content-Type: application/json" \
-d '{ "filename": "hero.jpg", "content_type": "image/jpeg", "size": 2148304 }'
{
"id": "med_abc123",
"upload_url": "https://openpost-media.s3.amazonaws.com/...",
"expires_at": "2026-04-20T14:10:00Z"
}
# 2. PUT the file directly to S3
curl -X PUT "$UPLOAD_URL" \
-H "Content-Type: image/jpeg" \
--data-binary @hero.jpg
Once the upload completes, med_abc123 is ready to use in a POST /v1/posts call.
Lifecycle
- Media is kept forever by default — until you delete it or cancel your workspace.
- Deleted media moves to Trash for 30 days, then is permanently removed.
- After workspace cancellation, all media is deleted from S3 after a 30-day retention window.
Transformations
OpenPost handles per-channel transformations automatically at publish time:
- Aspect-ratio cropping (the composer previews the crop first).
- Video codec transcode (e.g., HEVC → H.264 for X).
- Image compression (below platform caps, above “looks bad”).
- Watermark removal from TikTok re-uploads (where allowed).