# Workers actions

> Workers: 21 Xholic actions (6 read, 15 change), each with its MCP tool, REST endpoint and CLI command.

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

21 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.

## Workers

`workers.list` · read

The account's Workers (always-on AI writers): settings, schedule and status.

- **MCP tool:** `get_workers`. Loaded by default in MCP clients.
- **REST:** `GET /v1/workers/list`
- **CLI:** `xholic workers list`
- **Scope:** `read`
- **Plan:** Pro plan or higher
- **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. |

## Worker drafts

`workers.drafts` · read

Drafts a Worker wrote that are waiting for review.

- **MCP tool:** `get_worker_drafts`. Loaded by default in MCP clients.
- **REST:** `GET /v1/workers/drafts`
- **CLI:** `xholic workers drafts`
- **Scope:** `read`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `read`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `neuronId` | string (uuid) | No |  |
| `limit` | integer 1–30 | No | Default: `12`. |
| `account` | string ≤ 64 chars | No | X account to act on, as @handle. Leave it out to use the connection's default account. |

## Growth overview

`workers.overview` · read

The account's growth overview: milestones, Workers and what they produced.

- **MCP tool:** `workers_overview`. Catalog: reach it with `find_actions` and `run_read_action`, or turn on the full toolset.
- **REST:** `GET /v1/workers/overview`
- **CLI:** `xholic workers overview`
- **Scope:** `read`
- **Plan:** Pro plan or higher
- **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 creators for a Worker

`workers.find_creators` · read

Find X creators whose style a Worker can learn from.

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

**Input**

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

## Create a Worker

`workers.create` · write

Create a Worker that writes posts on a schedule or on demand. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `create_worker`. Loaded by default in MCP clients.
- **REST:** `POST /v1/workers/create`
- **CLI:** `xholic workers create`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string ≤ 80 chars | Yes |  |
| `status` | "ACTIVE" \\| "PAUSED" | No | PAUSED saves the worker without running it, for when the plan's active workers are all in use. Default: `"ACTIVE"`. |
| `voiceMode` | "OWN" \\| "CREATOR" \\| "HYBRID" | Yes | OWN is "My voice"; CREATOR writes in the creators' style; HYBRID is the user's voice with the creators' rhythm. |
| `creatorXIds` | array of string ≤ 120 chars (max 3) | No | Creator xid values from findWorkerCreators: one for HYBRID unless the user asks for more (up to three), one to three for CREATOR, none for OWN. Default: `[]`. |
| `instructions` | string ≤ 2000 chars or null | No | The worker's brief, broad boundaries only: who it writes for, who speaks, how the account likes to write, the areas it usually writes in, when to mention products and hard bans. Never a thesis, a point of view to push or specific topics to cover. |
| `applyAccountRules` | boolean | No | Follow the account's saved writing rules. Default: `true`. |
| `mirrorProvenPosts` | boolean | No | Shape posts on formats that already work in the niche. Default: `true`. |
| `topicMode` | "FOR_YOU" \\| "PRODUCT" \\| "CUSTOM_TOPIC" \\| "NICHE_TRENDING" | Yes | FOR_YOU is "For you" (topics from the profile); PRODUCT is "Your products"; CUSTOM_TOPIC is a custom topic; NICHE_TRENDING follows what is trending for its keywords. |
| `customTopic` | string ≤ 500 chars or null | No | CUSTOM_TOPIC: what to post about. NICHE_TRENDING: one to five comma-separated keywords. |
| `productIds` | array of string ≤ 120 chars (max 5) | No | PRODUCT only: saved product IDs from getAutomationSetup or getAccountContext. Default: `[]`. |
| `outputCount` | 8 or 12 or 24 | Yes | Posts written per run: 8, 12 or 24. |
| `scheduleMode` | "ON_DEMAND" \\| "DAILY" \\| "WEEKLY" | Yes |  |
| `scheduleTimeMinutes` | integer 0–1439 or null | No | DAILY or WEEKLY: minutes after midnight in the account's timezone, e.g. 540 for 9:00. |
| `scheduleDayOfWeek` | integer 0–6 or null | No | WEEKLY: 0 is Sunday, 6 is Saturday. |
| `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. |

## Edit a Worker

`workers.update` · write

Change a Worker's instructions, voice, topics, products, size or schedule. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `update_worker`. Loaded by default in MCP clients.
- **REST:** `POST /v1/workers/update`
- **CLI:** `xholic workers update`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `workerId` | string (uuid) | Yes |  |
| `changes` | object | Yes |  |
| `changes.name` | string ≤ 80 chars | No |  |
| `changes.status` | "ACTIVE" \\| "PAUSED" | No | PAUSED saves the worker without running it, for when the plan's active workers are all in use. |
| `changes.voiceMode` | "OWN" \\| "CREATOR" \\| "HYBRID" | No | OWN is "My voice"; CREATOR writes in the creators' style; HYBRID is the user's voice with the creators' rhythm. |
| `changes.creatorXIds` | array of string ≤ 120 chars (max 3) | No | Creator xid values from findWorkerCreators: one for HYBRID unless the user asks for more (up to three), one to three for CREATOR, none for OWN. |
| `changes.instructions` | string ≤ 2000 chars or null | No | The worker's brief, broad boundaries only: who it writes for, who speaks, how the account likes to write, the areas it usually writes in, when to mention products and hard bans. Never a thesis, a point of view to push or specific topics to cover. |
| `changes.applyAccountRules` | boolean | No | Follow the account's saved writing rules. |
| `changes.mirrorProvenPosts` | boolean | No | Shape posts on formats that already work in the niche. |
| `changes.topicMode` | "FOR_YOU" \\| "PRODUCT" \\| "CUSTOM_TOPIC" \\| "NICHE_TRENDING" | No | FOR_YOU is "For you" (topics from the profile); PRODUCT is "Your products"; CUSTOM_TOPIC is a custom topic; NICHE_TRENDING follows what is trending for its keywords. |
| `changes.customTopic` | string ≤ 500 chars or null | No | CUSTOM_TOPIC: what to post about. NICHE_TRENDING: one to five comma-separated keywords. |
| `changes.productIds` | array of string ≤ 120 chars (max 5) | No | PRODUCT only: saved product IDs from getAutomationSetup or getAccountContext. |
| `changes.outputCount` | 8 or 12 or 24 | No | Posts written per run: 8, 12 or 24. |
| `changes.scheduleMode` | "ON_DEMAND" \\| "DAILY" \\| "WEEKLY" | No |  |
| `changes.scheduleTimeMinutes` | integer 0–1439 or null | No | DAILY or WEEKLY: minutes after midnight in the account's timezone, e.g. 540 for 9:00. |
| `changes.scheduleDayOfWeek` | integer 0–6 or null | No | WEEKLY: 0 is Sunday, 6 is Saturday. |
| `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. |

## Pause or resume a Worker

`workers.set_status` · write

Pause or resume a Worker.

- **MCP tool:** `pause_or_resume_worker`. Loaded by default in MCP clients.
- **REST:** `POST /v1/workers/set-status`
- **CLI:** `xholic workers set-status`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `workerId` | string (uuid) | Yes |  |
| `status` | "ACTIVE" \\| "PAUSED" | 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. |

## Run a Worker now

`workers.run` · write

Queue a Worker to write a new batch now with Xholic's writer. Spends Xholic AI credits per post: quote first, show it to the user, and pass confirmCredits after they agree. Returns right away; drafts arrive in get_worker_drafts.

- **MCP tool:** `run_worker`. Loaded by default in MCP clients.
- **REST:** `POST /v1/workers/run`
- **CLI:** `xholic workers run`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Xholic AI: up to about 120 credits (Xholic's Worker writer, charged per post in the batch). Returns a quote first; pass `confirmCredits` after the user agrees.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `neuronId` | string (uuid) | 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. |
| `confirmCredits` | number 0–100000 | No | Xholic AI credits the user agreed to spend. Call first without it to get the quote, show the quote to the user, and pass the amount only after they say yes. |
| `quoteId` | string ≤ 100 chars | No | The quoteId from the quote the user agreed to. Send it with confirmCredits. |

## Create the ready-made Worker

`workers.create_ready_made` · write

Create the preset Worker built from the account's context (voice, creators it already has posts for, products). Fails while a ready-made Worker exists; rebuild that one instead. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `workers_create_ready_made`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/workers/create-ready-made`
- **CLI:** `xholic workers create-ready-made`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **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. |

## Rebuild the ready-made Worker

`workers.rebuild_ready_made` · write

Refresh the ready-made Worker's creators and brief from the account's current context. Name, schedule, drafts and runs stay; no run starts. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `workers_rebuild_ready_made`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/workers/rebuild-ready-made`
- **CLI:** `xholic workers rebuild-ready-made`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string ≤ 160 chars | Yes | Worker id from get_workers. |
| `keepInstructions` | boolean | No | Keep the user's own brief and refresh only voice and 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. |

## Stop a queued Worker run

`workers.cancel_queued_run` · write

Stop a Worker run that is queued and hasn't started yet. Its credits are returned. A run that already started can't be stopped.

- **MCP tool:** `workers_cancel_queued_run`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/workers/cancel-queued-run`
- **CLI:** `xholic workers cancel-queued-run`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string ≤ 160 chars | Yes | Worker id from get_workers. |
| `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. |

## Worker runs

`workers.runs` · read

Recent Worker runs, newest first: status, trigger, credits and why a run failed or was skipped.

- **MCP tool:** `workers_runs`. Catalog: reach it with `find_actions` and `run_read_action`, or turn on the full toolset.
- **REST:** `GET /v1/workers/runs`
- **CLI:** `xholic workers runs`
- **Scope:** `read`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `read`

**Input**

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

## Takes and expertise

`workers.voice` · read

The account's takes (opinions) and expertise areas that Workers write from, each marked as mined or added by the user.

- **MCP tool:** `workers_voice`. Catalog: reach it with `find_actions` and `run_read_action`, or turn on the full toolset.
- **REST:** `GET /v1/workers/voice`
- **CLI:** `xholic workers voice`
- **Scope:** `read`
- **Plan:** Pro plan or higher
- **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. |

## Add a take

`workers.add_take` · write

Add an opinion the user holds, in their words, for Workers to write from. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `workers_add_take`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/workers/add-take`
- **CLI:** `xholic workers add-take`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `text` | string ≤ 200 chars | 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. |

## Remove a take

`workers.remove_take` · write

Remove a take so Workers stop writing from it. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `workers_remove_take`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/workers/remove-take`
- **CLI:** `xholic workers remove-take`
- **Scope:** `write`. Destructive: it can't be taken back
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string ≤ 64 chars | Yes | Take id from workers.voice. |
| `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. |

## Add an expertise area

`workers.add_expertise` · write

Add a subject the account teaches, so Workers write knowledge posts about it. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `workers_add_expertise`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/workers/add-expertise`
- **CLI:** `xholic workers add-expertise`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | string ≤ 80 chars | 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. |

## Remove an expertise area

`workers.remove_expertise` · write

Remove an expertise area and its insight cards. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `workers_remove_expertise`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/workers/remove-expertise`
- **CLI:** `xholic workers remove-expertise`
- **Scope:** `write`. Destructive: it can't be taken back
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string ≤ 64 chars | Yes | Expertise area id from workers.voice. |
| `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. |

## Review a Worker draft

`workers.review_draft` · write

Move a Worker draft: DRAFT keeps it in the user's drafts, DISMISSED throws it away, TO_REVIEW puts it back in review. When dismissing because it isn't the user's opinion, pass reason NOT_MY_OPINION so Workers learn. To post or schedule it, use schedule_post with its text. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `review_worker_draft`. Loaded by default in MCP clients.
- **REST:** `POST /v1/workers/review-draft`
- **CLI:** `xholic workers review-draft`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string ≤ 160 chars | Yes | Worker draft id from get_worker_drafts. |
| `status` | "TO_REVIEW" \\| "DRAFT" \\| "DISMISSED" | Yes |  |
| `reason` | "NOT_MY_OPINION" | No | Only with DISMISSED: why, when it teaches the Workers something. |
| `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. |

## More or less like this

`workers.draft_feedback` · write

Tell the Workers to write more or fewer drafts like this one. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `workers_draft_feedback`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/workers/draft-feedback`
- **CLI:** `xholic workers draft-feedback`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string ≤ 160 chars | Yes | Worker draft id from get_worker_drafts. |
| `action` | "MORE_LIKE_THIS" \\| "LESS_LIKE_THIS" | 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. |

## Worker meme image

`workers.draft_meme` · write

The reaction image (GIF or meme) attached to a Worker meme draft. The first call picks one.

- **MCP tool:** `workers_draft_meme`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/workers/draft-meme`
- **CLI:** `xholic workers draft-meme`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `read`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string (uuid) | Yes | Worker draft id of a meme draft. |
| `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. |

## Change a Worker meme image

`workers.set_draft_meme` · write

Swap or remove the reaction image on a Worker meme draft. Pass pick null to remove it. Call it only when the user asked for this in the conversation; never on your own initiative.

- **MCP tool:** `workers_set_draft_meme`. Catalog: reach it with `find_actions` and `run_write_action`, or turn on the full toolset.
- **REST:** `POST /v1/workers/set-draft-meme`
- **CLI:** `xholic workers set-draft-meme`
- **Scope:** `write`
- **Plan:** Pro plan or higher
- **Cost:** Free.
- **Rate limit bucket:** `write`

**Input**

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string (uuid) | Yes | Worker draft id of a meme draft. |
| `kind` | "gifs" \\| "memes" | Yes |  |
| `pick` | object or null | Yes | A pick as returned by workers.draft_meme, or null to remove the image. |
| `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. |
