Skip to content

Workers actions

21 actions. Every field marked Required must be sent; account, dryRun, idempotencyKey, confirmCredits and quoteId are the control fields every surface adds.

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.

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.

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.

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.

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
voiceMode “OWN” \ “CREATOR” \ “HYBRID”
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” \
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”
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.

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
changes.voiceMode “OWN” \ “CREATOR” \ “HYBRID”
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” \
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”
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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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.

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.

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.