CLI Inbox Commands
Read and reply to DMs, comments, and mentions from Instagram, Facebook, and LinkedIn company pages, TikTok and YouTube video comments, X (Twitter) DMs for workspaces that have enabled them, and Threads replies and mentions (currently rolling out). See the Social Inbox guide for concepts, platform coverage, and reply limits.
Inbox access is opt-in: your API key needs the inbox:read scope for reading and
inbox:write for replying, marking read, and hiding or deleting comments. Enable
them when creating the key under Settings -> API.
Commands
| Command | Description |
|---|---|
inbox:list | List conversations (latest message each) with participant, unread count, and related post. Flags: --platform <instagram|facebook|linkedin|tiktok|youtube|x|threads>, --type <dm|comment|mention>, --unread, --unanswered (only conversations that still need a reply), --limit, --cursor. Requires inbox:read |
inbox:next | The next conversation that needs an answer, with its thread (oldest first) and the post it is on, plus how many more are waiting. Flags: --platform, --type <dm|comment|mention>, --order <oldest|newest> (default oldest), --include-read, --exclude <conversation-id,...>. Requires inbox:read |
inbox:messages <conversation-id> | Full message history for one conversation, oldest to newest, each with its message id. Comment threads print the post (caption, url, thumbnail) first. Flags: --limit, --cursor. Requires inbox:read |
inbox:read <conversation-id> | Mark a conversation's messages as read. Also the durable skip for inbox:next. Requires inbox:write |
inbox:reply <conversation-id> | Send a reply. Flags: --text (required), --attachment-url, --attachment-type, --next (also returns the next conversation that needs an answer). Requires inbox:write |
inbox:hide <message-id> | Hide a comment someone left on one of your posts, as the post owner; --unhide reverses it. Facebook, Instagram, TikTok, YouTube, and Threads (top-level replies only). Takes the message id from inbox:messages or inbox:next, not the conversation id. Requires inbox:write |
inbox:delete <message-id> | Delete a comment from the platform. Facebook, Instagram, and TikTok comments only (YouTube: use inbox:hide). Cannot be undone; replies under the comment go with it. Takes the message id, not the conversation id. Requires inbox:write |
Conversation ids can contain : and () (LinkedIn URNs); the CLI URL-encodes them
for you. Lists are cursor-paginated: pass the cursor from the previous response
to fetch the next page.
Two ids show up in the output. The conversation id is what inbox:messages,
inbox:read, and inbox:reply take. The message id, printed on every message,
is what inbox:hide and inbox:delete take.
What counts as unanswered
inbox:list --unanswered and inbox:next use the same rule. A conversation
still needs an answer when the customer's latest DM has no reply after it
(Instagram and Facebook DMs only within Meta's 24-hour messaging window, since
replies outside it are refused), or when a comment or mention has not been
replied to and is not hidden. Replies typed in the native apps (the Instagram
app, Messenger) are mirrored into the inbox as outgoing messages and count as
answers, so a thread a colleague answered on their phone is not served again.
Instagram mentions are skipped because there is no reply path for them.
Examples
Triage unread Instagram DMs:
Code
Only the conversations still waiting for a reply:
Code
Work through everything that needs an answer:
Code
inbox:next serves unread items only, so marking a conversation read skips it
for good. To leave some out of a single call instead, pass --exclude:
Code
Read a conversation and reply:
Code
Answer a TikTok video comment (replies are text only, 150 characters max):
Code
Answer a YouTube video comment (conversations group per video):
Code
Hide a comment on your own post (Facebook, Instagram, TikTok, YouTube, Threads):
Code
Delete a comment for good (Facebook, Instagram, TikTok):
Code
On YouTube, hiding sets the comment's moderation status to rejected, which
removes it and its replies from public view; there is no delete. Hiding needs
the account to have been connected with the moderation permission: a
reconnect_required error means reconnecting the account in the dashboard.
YouTube's daily API quota can return quota_exceeded; retry after midnight
Pacific.
Replies are limited to existing conversations (no cold outreach), the platform's messaging window applies, and each workspace can send up to 1,000 replies per rolling 24 hours. TikTok conversations are video comments only; see TikTok comments. YouTube conversations are video comments only too; channels are checked for new comments once per day, so a new comment can take up to a day to show up; see Platform notes. X conversations are DMs only, require the workspace to opt in, and each reply uses 2 credits; see X direct messages. Threads conversations are replies on your posts and mentions, replies publish as native Threads replies, and only incoming top-level replies on your own posts can be hidden. Threads inbox support is currently rolling out: until Meta approves the permissions, Threads conversations do not appear and Threads replies and hides return a clear error; see Threads replies and mentions.