Media Upload

Boring does not require you to upload files to a dedicated endpoint. Instead, you reference media by URL in the mediaUrls field of the Publishing API. Boring fetches the media, runs any required processing (compression, format checks, async status polling), and hands it off to the target platform.

How to reference media

Pass one or more publicly reachable URLs in post.content.mediaUrls. The field accepts either a single string or an array:

{
  "post": {
    "accountId": "uuid-string",
    "content": {
      "text": "Hello world",
      "mediaUrls": ["https://cdn.example.com/photo.jpg"],
      "platform": "facebook"
    },
    "target": { "targetType": "facebook" }
  }
}

Supported URL sources

Source Notes
Public HTTPS URL Any directly downloadable image/video URL (CDN, object storage, etc.)
Google Drive share link "Anyone with the link" files are auto-converted and downloaded server-side

Google Drive: paste the normal share URL (e.g. https://drive.google.com/file/d/FILE_ID/view). Boring resolves it via the Drive API, with an HTTP-download fallback and magic-byte file-type detection.

Media count → post type

The number of media URLs determines the post type per platform:

Media Count Facebook Instagram Threads
0 Text-only ❌ (media required) Text-only
1 image Single photo Single photo Single photo
2–10 images Album Carousel Carousel (up to 20)
1 video Video Reels Video

For full per-platform request examples, see Publishing API.

Per-platform limits

Platform Images Video Notes
Facebook up to 10 (album) 1 Text/photo/album/video
Instagram up to 10 (carousel) 1 (Reels) Media required; coverUrl sets Reels cover
Threads up to 20 (carousel) 1 Array text = multi-post thread
YouTube 1 Video + optional thumbnail; title/description parsed from text
X (Twitter) up to 4 1 280-char limit; Ultra plan only
TikTok up to 35 (photo carousel) 1 (up to 4 GB / 10 min) Video or photo carousel

Processing & async status

Optional fields

Field Type Applies to Description
coverUrl String Instagram Reels Custom cover image for a video post
thumbnail String YouTube Custom video thumbnail

Tips