Uploads and media
File size limits, allowed types, upload-from-url, workspace storage, and API payload size in OpenQuok.
Connect your agent today
Draft from chat, review in your calendar, and publish only what you approve.
Uploads and media
Images and videos must pass OpenQuok checks before they attach to a post or land in the library.
Dashboard limits match Add media and Media in the composer. This page adds API and automation notes.
Size limits (dashboard)
| Rule | Limit |
|---|---|
| Image (browser check) | 30 MB per file before upload |
| Image (server) | 10 MB per file |
| Video | 1 GB per file |
| One batch (multi-select or drop) | 1 GB combined |
The media library page accepts images and videos only. The post composer accepts the same. Audio and PDF can upload through the API and CLI when your workflow needs them.
Allowed types
Library and composer: JPEG, PNG, GIF, WebP, SVG, AVIF, and common video containers (MP4, MOV, WebM, M4V, MPEG) — full table in Creating posts → Media.
Public API and programmatic upload: images, video, audio, and PDF. The server infers type from the file name and content type. Other types return an unsupported-media error.
Workspace storage full
On OpenQuok Cloud, each workspace has a media storage cap. When you hit it, new uploads are blocked until you delete files or upgrade. See the banner on Media and Cloud limits.
Upload succeeded but publish failed
OpenQuok can store a file and still reject the post at save or publish time — for example too many images on X, mixed photo and video on TikTok, or Instagram with no media. Fix the attachment list or per-channel media. See Media rules.
Public API: large JSON bodies
Most API routes accept JSON bodies up to about 10 MB by default (server.bodyLimit in backend config). Do not embed huge base64 files inside POST /public/posts.
Fix: upload first with POST /public/upload or POST /public/upload-from-url, then pass the returned id and path in the post body media array. CLI: openquok upload — see Media upload.
upload-from-url fails
OpenQuok fetches the URL from the server. The request fails when:
- The URL is not public http:// or https://.
- The host is slow, returns an error status, or blocks automated fetch.
- The link needs login, or a signed URL already expired.
What to try
- Use a direct HTTPS link with no auth.
- Download the file locally and use multipart POST /public/upload or openquok upload instead.
- For dashboard library imports, use Upload on Media.
Video metadata errors
OpenQuok inspects videos before publish. Providers often expect MP4 with H.264 video and AAC audio, 30 fps or less, and reasonable resolution (for example 1920×1080 landscape or 1080×1920 portrait for short-form networks). Exotic codecs may upload but fail on the network later.
Multipart and cancel
Large direct-to-storage uploads support POST /public/uploads/abort-multipart to cancel an in-flight multipart session. Simple dashboard uploads do not always stop cleanly if you click away mid-transfer — wait for completion or refresh, then delete the asset if needed.