Skip to content

API reference

Change the account's settings on X

x_settings_set — Set some of the account's own settings on X, through X's Settings pages, each read back after a reload: protected posts, sensitive media (show / mark your own), discoverability by email / phone, perso

x_settings_set · Write on X (creates a job)

Set some of the account's own settings on X, through X's Settings pages, each read back after a reload: protected posts, sensitive media (show / mark your own), discoverability by email / phone, personalised ads, location on posts, notification quality filter, photo tagging (all / following / none). Give only the keys to change; one already at its target is changed=false with no click. Direct-message settings live in X Chat and are not here. Owner / Manager only; protected / discoverability / tagging changes are audited with the old value. Not limited.

REST POST /api/public/v1/accounts/{account}/actions/settings
MCP tool x_settings_set
Permission needed infra.manage — Owner, Manager
Scope group x:engage
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.
protected boolean No Protect posts: only approved followers see them.
displaySensitiveMedia boolean No Show media that may contain sensitive content.
markMediaSensitive boolean No Mark the account's own media as sensitive.
discoverableByEmail boolean No People who have the account's email can find it.
discoverableByPhone boolean No People who have the account's phone number can find it.
personalizedAds boolean No Personalised ads.
locationInfo boolean No Add location information to the account's posts.
qualityFilter boolean No Notification quality filter.
allowMediaTagging all · following · none No Who can tag the account in photos: all, following or none.

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/settings" \
  -H "Authorization: Bearer $XBUDDY_API_KEY" \
  -H "Idempotency-Key: 6f1c2a90-example-key" \
  -H "Content-Type: application/json" \
  -d '{}'

Call over MCP

{
  "method": "tools/call",
  "params": {
    "name": "x_settings_set",
    "arguments": {
      "account": "@your_x_account",
      "idempotency_key": "6f1c2a90-example-key"
    }
  }
}

Errors you may get

Back to all operations