Media uploads
Upload first, then pass the returned media.id in mediaIds.
- REST:
POST /api/v1/mediawith multipartfile, or JSON{filename, contentType, dataBase64}. Up to 100 MB. See Media API. - MCP:
upload_mediawith base64, up to 10 MB. Use REST for larger files. - Agent view: the
/agent/posts/newform takes files up to 100 MB each.
Formats
Section titled “Formats”JPEG, PNG, GIF, WebP, MP4, MOV, WebM, M4V, MPEG and AVI. Botdoor checks the actual bytes: a filename or content type that doesn’t match is refused (unsupported_media_type), and so is a truncated or damaged file (media_unreadable).
- Instagram, TikTok, YouTube and Pinterest need an image or video (
400 media_required). - Several
mediaIdsmake a carousel. - Uploads expire after about 7 days (
409 media_expired; upload again). - An unclaimed workspace can hold 10 uploads.
Video cover
Section titled “Video cover”cover: {"mediaId": "<image id>"} or cover: {"offsetMs": 1500}. The image wins when both are set.
| Network | Image | Frame time |
|---|---|---|
| Yes | Yes | |
| TikTok | Yes | Yes |
| Yes | Yes (whole seconds) | |
| Facebook, YouTube | Yes | No |
tiktokAiGenerated: true labels a TikTok video as AI-generated.

Common questions
What is the maximum file size?
100 MB through the REST API and the /agent form, 10 MB through MCP.
Why was my .mp4 refused?
The bytes didn't match a supported video, or the file was truncated. Re-export it and upload again.
Do uploads expire?
Yes, after about 7 days. Create the post within a week of uploading.
Can I post several photos?
Yes. Several mediaIds make a carousel.