Skip to content

API reference

Set a conversation's state in X Chat

dm_conversation_set_state — Mark a conversation unread / read, mute / unmute or pin / unpin it in the account's own X Chat inbox, through the row menu X shows, each read back after the inbox reloads.

dm_conversation_set_state · Write on X (creates a job)

Mark a conversation unread / read, mute / unmute or pin / unpin it in the account's own X Chat inbox, through the row menu X shows, each read back after the inbox reloads. Give only the states to change; one already there is changed=false with no click. Only the account sees these states (nothing is sent to the person); a later inbox sync that opens the conversation marks it read again. Refused while X Chat is locked without a working saved passcode. Not limited.

REST POST /api/public/v1/accounts/{account}/actions/conversation-state
MCP tool dm_conversation_set_state
Permission needed inbox.reply — Owner, Manager, Operator
Scope group inbox:send
Group Actions on X
Shown up front in profiles Operate X accounts

Input

Field Type Required Description
account string (1–100 chars) Yes The X account to use: its X-Buddy account_id (from account_list) or its @handle. Ambiguous names return candidates instead of guessing.
thread_id string (uuid) Yes X-Buddy conversation id (inbox_list_threads).
unread boolean No true = mark unread on X, false = mark read.
muted boolean No Mute notifications of this conversation on X.
pinned boolean No Pin the conversation to the top of the X Chat inbox.

Result

Creates a job for the X account's VPS. REST waits up to wait seconds (default 15, max 20): when done it returns 200 with the result, otherwise 202 with Location: /api/public/v1/jobs/{job_id}. The final status is succeeded, failed, cancelled or unknown.

Needs an idempotency key (Idempotency-Key, 8–128 characters). Retrying with the same key never repeats the action.

A job that ends unknown may already have happened on X: never resend it with a new idempotency key.

Example

Call over REST

curl -X POST "https://reach-link-craft.lovable.app/api/public/v1/accounts/%40your_x_account/actions/conversation-state" \
  -H "Authorization: Bearer $XBUDDY_API_KEY" \
  -H "Idempotency-Key: 6f1c2a90-example-key" \
  -H "Content-Type: application/json" \
  -d '{"thread_id":"00000000-0000-4000-8000-000000000001"}'

Call over MCP

{
  "method": "tools/call",
  "params": {
    "name": "dm_conversation_set_state",
    "arguments": {
      "account": "@your_x_account",
      "thread_id": "00000000-0000-4000-8000-000000000001",
      "idempotency_key": "6f1c2a90-example-key"
    }
  }
}

Errors you may get

Back to all operations