# Settings actions

> Settings: 15 Xholic actions (8 read, 7 change), each with its MCP tool, REST endpoint and CLI command.

Source: https://docs.xholic.ai/actions/settings/

15 actions. Every field marked *Required* must be sent; `account`, `dryRun`, `idempotencyKey`, `confirmCredits` and `quoteId` are the [control fields](/api/responses/#control-fields) every surface adds.

## Xholic account

`settings.account` · read

The signed-in Xholic user's account: name, email, avatar and whether their main X login is still connected.

- **MCP tool:** `settings_account`. Catalog: reach it with `find_actions` and `run_read_action`, or turn on the full toolset.
- **REST:** `GET /v1/settings/account`
- **CLI:** `xholic settings account`
- **Scope:** `read`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `read`

**Input**

No input.

## Reply rules

`settings.reply_preferences` · read

The account's custom rules for reply drafts (what every Xholic reply writer must follow).

- **MCP tool:** `settings_reply_preferences`. Catalog: reach it with `find_actions` and `run_read_action`, or turn on the full toolset.
- **REST:** `GET /v1/settings/reply-preferences`
- **CLI:** `xholic settings reply-preferences`
- **Scope:** `read`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `read`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |

## Update reply rules

`settings.update_reply_preferences` · write

Replace the account's custom reply rules. Read settings.reply_preferences first; null or leaving it out clears the rules. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `settings_update_reply_preferences`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/settings/update-reply-preferences`
- **CLI:** `xholic settings update-reply-preferences`
- **Scope:** `write`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `customRules` | string ≤ 500 chars or null | No |  |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |
| `dryRun` | boolean | No | Return exactly what would happen without doing it. |
| `idempotencyKey` | string ≤ 200 chars | No | A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice. |

## About You settings

`settings.about_you` · read

The account's About You settings as Stark shows them: the free-text description, selected topics and tones. To change them use update_account_context.

- **MCP tool:** `settings_about_you`. Catalog: reach it with `find_actions` and `run_read_action`, or turn on the full toolset.
- **REST:** `GET /v1/settings/about-you`
- **CLI:** `xholic settings about-you`
- **Scope:** `read`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `read`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |

## Set account type

`settings.set_account_type` · write

Tell Xholic whether the account is a person, a brand or a topic page, which changes the voice every writer uses. Pass null to go back to the detected type. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `settings_set_account_type`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/settings/set-account-type`
- **CLI:** `xholic settings set-account-type`
- **Scope:** `write`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `override` | "PERSON" \\| "BRAND" \\| "TOPIC" or null | Yes |  |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |
| `dryRun` | boolean | No | Return exactly what would happen without doing it. |
| `idempotencyKey` | string ≤ 200 chars | No | A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice. |

## Suggest topics

`settings.suggest_interests` · write

Suggest About You topics from the account's recent posts. Free, a few per day; it changes nothing until the user saves them.

- **MCP tool:** `settings_suggest_interests`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/settings/suggest-interests`
- **CLI:** `xholic settings suggest-interests`
- **Scope:** `write`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `read`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |
| `dryRun` | boolean | No | Return exactly what would happen without doing it. |
| `idempotencyKey` | string ≤ 200 chars | No | A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice. |

**Example: Suggest topics**

```bash
curl https://api.xholic.ai/v1/settings/suggest-interests \
  -H "Authorization: Bearer $XHOLIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

## Personalization settings

`settings.personalization` · read

The account's audience override, style vocabulary override and global rules that every writer reads, plus the generated style guide.

- **MCP tool:** `settings_personalization`. Catalog: reach it with `find_actions` and `run_read_action`, or turn on the full toolset.
- **REST:** `GET /v1/settings/personalization`
- **CLI:** `xholic settings personalization`
- **Scope:** `read`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `read`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |

## Update personalization

`settings.update_personalization` · write

Replace the audience override, style vocabulary override and global rules. Read settings.personalization first and send all three: any field left out is cleared. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `settings_update_personalization`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/settings/update-personalization`
- **CLI:** `xholic settings update-personalization`
- **Scope:** `write`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `audienceOverride` | string ≤ 600 chars or null | No |  |
| `styleVocabularyOverride` | string ≤ 1000 chars or null | No |  |
| `globalRules` | string ≤ 500 chars or null | No |  |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |
| `dryRun` | boolean | No | Return exactly what would happen without doing it. |
| `idempotencyKey` | string ≤ 200 chars | No | A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice. |

## Rebuild the style guide

`settings.regenerate_style_guide` · write

Rebuild the account's writing style guide from its posts and style creators. Free, capped per day; it replaces the current guide. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `settings_regenerate_style_guide`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/settings/regenerate-style-guide`
- **CLI:** `xholic settings regenerate-style-guide`
- **Scope:** `write`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |
| `dryRun` | boolean | No | Return exactly what would happen without doing it. |
| `idempotencyKey` | string ≤ 200 chars | No | A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice. |

## Style creators

`settings.style_creators` · read

The up to 3 creators the account writes like (favourite creators), with the current count.

- **MCP tool:** `settings_style_creators`. Catalog: reach it with `find_actions` and `run_read_action`, or turn on the full toolset.
- **REST:** `GET /v1/settings/style-creators`
- **CLI:** `xholic settings style-creators`
- **Scope:** `read`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `read`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |

## Find style creators

`settings.search_style_creators` · read

Search X creators to write like, by name or handle (at least 2 characters). Returns creator ids for settings.add_style_creator.

- **MCP tool:** `settings_search_style_creators`. Catalog: reach it with `find_actions` and `run_read_action`, or turn on the full toolset.
- **REST:** `GET /v1/settings/search-style-creators`
- **CLI:** `xholic settings search-style-creators`
- **Scope:** `read`
- **Plan:** Every plan, including the trial
- **Cost:** Live X lookup: no credits, counts toward the plan's X data limits.
- **Rate limit bucket:** `live_x`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `q` | string ≤ 100 chars | Yes |  |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |

## Add a style creator

`settings.add_style_creator` · write

Add one creator to write like (up to 3). Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `settings_add_style_creator`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/settings/add-style-creator`
- **CLI:** `xholic settings add-style-creator`
- **Scope:** `write`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `creatorId` | string ≤ 120 chars | Yes | Creator id from settings.search_style_creators. |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |
| `dryRun` | boolean | No | Return exactly what would happen without doing it. |
| `idempotencyKey` | string ≤ 200 chars | No | A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice. |

## Set style creators

`settings.save_style_creators` · write

Replace the creators to write like with this list (up to 3). Leaving one out removes it. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `settings_save_style_creators`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/settings/save-style-creators`
- **CLI:** `xholic settings save-style-creators`
- **Scope:** `write`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `creatorIds` | array of string ≤ 120 chars (max 3) | Yes |  |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |
| `dryRun` | boolean | No | Return exactly what would happen without doing it. |
| `idempotencyKey` | string ≤ 200 chars | No | A unique key for this write. Repeating a call with the same key returns the first result instead of acting twice. |

## X data usage

`settings.usage` · read

The user's external X data usage per feature over the last few days (default 30).

- **MCP tool:** `settings_usage`. Catalog: reach it with `find_actions` and `run_read_action`, or turn on the full toolset.
- **REST:** `GET /v1/settings/usage`
- **CLI:** `xholic settings usage`
- **Scope:** `read`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `read`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `days` | integer 1–90 | No |  |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |

## Daily limits

`settings.quota` · read

What the plan allows today per feature and how much is used. Check it before a batch so a limit doesn't stop it halfway.

- **MCP tool:** `settings_quota`. Catalog: reach it with `find_actions` and `run_read_action`, or turn on the full toolset.
- **REST:** `GET /v1/settings/quota`
- **CLI:** `xholic settings quota`
- **Scope:** `read`
- **Plan:** Every plan, including the trial
- **Cost:** Free.
- **Rate limit bucket:** `read`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `details` | boolean | No | Include the per-feature breakdown. |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |
