Flag Mode
File Mode
--profile-id or profile_id to use your default Mallary profile. Run mallary profiles list to find the random public ID for each profile.
posts create returns Mallary job IDs immediately. Once each job finishes publishing, mallary jobs get <id> and mallary posts list --json include platform_post_id and platform_post_url when the platform returns or exposes them.
Edit a Scheduled Post
Read the saved post and its revision:--platform names part of the complete final destination list. If you change only the profile, Mallary keeps the current platforms. If you change only the platforms, it keeps the current profile. Use --profile-id when reading a post in a non-default current profile. The CLI checks that the target profile has ready connections, and the API stops the edit if any destination has started publishing.
For automation, use --expected-revision <n> with the revision from posts get --json. A stale revision stops the edit. --media and --comment replace the complete saved lists. Use --file for platform options, multiple fields, or an empty list to clear media or comments:
mallary posts edit 123 --file ./post-changes.json. When destinations is present, include both fields and the complete final platform list. Omit it to keep current destinations. platform_options replaces the complete saved options map when present. The CLI uploads local replacement media before the edit request; if the post changes during upload, the API returns a conflict and leaves the post unchanged.
File Mode Rules
--fileis mutually exclusive with payload-building flags--post-typeworks in flag mode when every selected destination should use the same supported type- use
platform_optionsin file mode when destinations need different post types - Mallary uploads local
media[].urlfile paths to the Mallary CDN first - Mallary uploads local
media[].thumbnail_urlfile paths to the Mallary CDN first - existing remote media URLs must already point to
https://files.mallary.ai/... - Mallary rejects external remote media URLs
- Mallary passes platform-specific payloads through to the API
- use
platform_options.<platform>.messagefor a platform-specific message or caption
Video Thumbnails
In flag mode, use--thumbnail with exactly one --media item:
thumbnail_url on the media item. Mallary uploads local thumbnail paths automatically. Existing remote thumbnail URLs must already point to https://files.mallary.ai/....
To add a YouTube video to an existing playlist, set platform_options.youtube.playlist_id in file mode. The playlist must belong to the connected channel.
To add YouTube video tags, set platform_options.youtube.tags to a list of text values in file mode. Each tag can use up to 100 characters. The full list can use up to 500 characters after YouTube counts separators.
To disclose realistic AI-generated or altered content, set platform_options.youtube.containsSyntheticMedia to true in file mode. YouTube may show a disclosure label on the video.
Current thumbnail support:
- YouTube regular videos: use a
jpg,jpeg, orpngthumbnail up to 50 MB. Use 16:9. - YouTube Shorts: YouTube may store the image but show a video frame instead. Mallary returns a warning because the YouTube API cannot confirm the cover viewers will see.
- Facebook feed videos: supported with
jpg,jpeg, orpngup to 10 MB. - Instagram videos/Reels: supported with a Mallary-hosted cover URL. Use an image that matches the video placement.
- TikTok video posts: Mallary does not send arbitrary thumbnail images to TikTok. If you supply
thumbnail_url, Mallary skips itsvideo_cover_timestamp_msbehavior, and TikTok uses its default cover. - TikTok photo posts:
thumbnail_urlselects the cover only when it exactly matches one of the image URLs in the samemedia[]array.
Scheduling Rules
- use
--scheduled-at 2026-04-06T18:30:00Zwhen you already know the absolute publish timestamp - use
--scheduled-at 2026-04-06T14:30 --scheduled-timezone America/New_Yorkwhen you want a local wall-clock time in a specific timezone - in file mode, send
scheduled_atand optionalscheduled_timezone scheduled_timezonemust be an IANA timezone such asAmerica/New_York
Supported Platform-Specific Payload Areas
Mallary CLI README currently documents platform-specific payload examples for:- YouTube
- TikTok
- Threads
- Bluesky
- X
platform_options fields currently supported by the posting API, see:
Platform options reference
Every publishing platform accepts platform_options.<platform>.message as an optional platform-specific message. Leave it blank or omit it to use the top-level message.
Threads Notes
platform_options.threads.post_typecan betext,image,video, orcarousel.- If you omit
platform_options.threads.post_type, Mallary chooses from the media payload: no media =text, one image =image, one video =video, multiple supported media items =carousel. - Threads media constraints are:
text= no media,image= 1 image,video= 1 video,carousel= 2 to 20 media items. - Threads-supported media formats are
jpg,jpeg,png,webp,mp4, andmov.
Platform-Specific Media Rules
Mallary CLI uses the same platform media validation as the Mallary API. Important current rules:- Threads supports text-only posts, one image, one video, or a 2 to 20 item carousel.
- YouTube requires exactly one video.
- Facebook supports
feed,story, andreelthroughplatform_options.facebook.post_type. Reels use one 9:16 MP4 or MOV video that is 3 to 90 seconds long. - Instagram supports
feed,story,reel, andcarouselthroughplatform_options.instagram.post_type. Stories use one image or video, Reels use one video, and carousels use 2 to 10 mixed items. For a Reel, useshareToFeedfor profile feed placement. AddtrialParams.graduationStrategyin file mode to publish a Trial Reel. With a Facebook Login connection, file mode also supportsisPaidPartnershipand up to twobrandedContentSponsorson feed posts, Reels, and carousels. - LinkedIn supports text-only posts, one image or GIF, or one MP4 video. Videos can be up to 1 GB (1,073,741,824 bytes) and 3 seconds to 30 minutes long. Do not mix images and video.
- TikTok video posts require one video, and TikTok photo posts support up to 35 JPEG/WebP images.
- TikTok defaults to
DIRECT_POST, which publishes through Mallary. Setplatform_options.tiktok.post_mode = MEDIA_UPLOADonly when you want to finish the post in the TikTok app. Inbox uploads stayaction_requireduntil you add the final TikTok post URL. - Pinterest requires exactly one image or GIF, or exactly one video, plus
boardId. Mallary shortens Pin descriptions longer than 800 characters so they can publish. - Reddit image posts require one image or GIF. The current public API path does not support Reddit video upload.
- X allows up to 4 images, or 1 video, or 1 GIF.
- Bluesky supports text-only posts, up to four JPG, PNG, or WEBP images, or one MP4 video. Add
alt_textto a media item when it needs an accessible description.
Comments Under Post
- use repeatable
--commentflags in flag mode - in file mode, send
comments_under_postas an array - the current limit is 3 items
- TikTok does not currently support
comments_under_post
AI Auto Reply
- available on Pro and Business plans only
- you can enable it account-wide with
mallary settings update - you can enable it per post with
--auto-reply-enabled - it depends on saved account settings, not just the current payload
business_namewebsite_urlbusiness_descriptionservicescontact_info

