Skip to content

Platform Examples

Every example assumes you ran nadia auth login (or exported NADIA_API_KEY), and that $IG and $TT hold your channel ids — see Integrations.

Terminal window
nadia post -i "$IG" -s 2026-10-02T10:00:00+02:00 \
-c "Three things nobody tells you about Malta." \
-m ./photo.jpg \
--settings '{"post_type":"post"}'

A single video with post_type: "post" publishes as a Reel:

Terminal window
nadia post -i "$IG" -s 2026-10-02T10:00:00+02:00 \
-c "Reel caption" -m ./reel.mp4 \
--settings '{"post_type":"post"}'

Add "share_to_feed":false to keep it out of the profile grid.

Exactly one video, and a graduation strategy:

Terminal window
nadia post -i "$IG" -s 2026-10-02T10:00:00+02:00 \
-c "Trial reel caption" -m ./reel.mp4 \
--settings '{"post_type":"post","is_trial_reel":true,"graduation_strategy":"SS_PERFORMANCE"}'

One story per attachment, in the order given:

Terminal window
nadia post -i "$IG" -s 2026-10-02T18:00:00+02:00 \
-c "" -m ./story-1.jpg,./story-2.jpg,./story-3.mp4 \
--settings '{"post_type":"story"}'
Terminal window
nadia post -i "$IG" -s 2026-10-02T10:00:00+02:00 \
-c "Collab" -m ./reel.mp4 \
--settings '{"post_type":"post","collaborators":[{"label":"someone"}]}'
Terminal window
nadia post -i "$TT" -s 2026-10-02T10:00:00+02:00 \
-c "Three things nobody tells you about Malta." -m ./video.mp4 \
--settings '{"content_posting_method":"DIRECT_POST","privacy_level":"PUBLIC_TO_EVERYONE","duet":true,"stitch":true,"comment":true,"autoAddMusic":"no","brand_content_toggle":false,"brand_organic_toggle":false}'

duet, stitch and video_made_with_ai are video-only; autoAddMusic is photo-only. A photo post takes several pictures and a separate title capped at 90 characters; a video post takes exactly one video and the content becomes the title.

Upload once, then post twice with each platform’s settings:

Terminal window
VIDEO=$(nadia upload ./video.mp4 | jq -r '.path')
CAPTION="Three things nobody tells you about Malta."
WHEN="2026-10-02T10:00:00+02:00"
nadia post -i "$IG" -s "$WHEN" -c "$CAPTION" -m "$VIDEO" \
--settings '{"post_type":"post"}'
nadia post -i "$TT" -s "$WHEN" -c "$CAPTION" -m "$VIDEO" \
--settings '{"content_posting_method":"DIRECT_POST","privacy_level":"PUBLIC_TO_EVERYONE"}'

A different text per platform in a single call: nadia create-post --body, see The full body.

#!/bin/bash
set -e
DATES=("2026-10-02T09:00:00+02:00" "2026-10-03T09:00:00+02:00" "2026-10-04T09:00:00+02:00")
VIDEOS=(./day-1.mp4 ./day-2.mp4 ./day-3.mp4)
for i in "${!DATES[@]}"; do
nadia post -i "$IG" -s "${DATES[$i]}" \
-c @"captions/day-$((i + 1)).txt" -m "${VIDEOS[$i]}" \
--settings '{"post_type":"post"}'
done

set -e stops at the first refusal: nadia exits 1 when the API refuses, 2 when the command itself is wrong.

Terminal window
CARD=$(nadia idea "Three mistakes in Malta" --hook "Nobody told me about the third" | jq -r '.id')
nadia move "$CARD" to-shoot
# … shot and edited …
nadia post -i "$IG" -s 2026-10-05T09:00:00+02:00 -c "Three mistakes" -m ./reel.mp4 \
--settings '{"post_type":"post"}'

Then tie the card to the post with nadia link: see Board, inbox and automations.