Skip to content

Queue actions

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

queue.list · read

Scheduled posts and drafts, soonest first.

  • MCP tool: get_queue. Loaded by default in MCP clients.
  • REST: GET /v1/queue/list
  • CLI: xholic queue list
  • Scope: read
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: read

Input

Field Type Required Description
view “all” \ “queued” \ “drafts” \
limit integer 1–20 No Default: 10.
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.

queue.reschedule · publish

Move a queued post to a new time. Call it only when the user asked for this in the conversation; never on your own initiative.

  • MCP tool: reschedule_post. Loaded by default in MCP clients.
  • REST: POST /v1/queue/reschedule
  • CLI: xholic queue reschedule
  • Scope: publish
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
postId string (uuid) Yes
scheduledAt string Yes The local date and time in timezone, such as 2026-10-25T10:00. Write the time the user means; do not convert it to UTC or add an offset.
timezone 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.

queue.unschedule · write

Take a scheduled post out of the queue and keep it as a draft.

  • MCP tool: unschedule_post. Loaded by default in MCP clients.
  • REST: POST /v1/queue/unschedule
  • CLI: xholic queue unschedule
  • Scope: write
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
postId string ≤ 120 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.

queue.edit · publish

Change the text, thread, media or automations of a draft or scheduled post.

  • MCP tool: edit_queued_post. Loaded by default in MCP clients.
  • REST: POST /v1/queue/edit
  • CLI: xholic queue edit
  • Scope: publish
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
postId string ≤ 120 chars Yes
text string ≤ 25000 chars Yes
threadParts array of string ≤ 25000 chars (min 2, max 25) No For a thread: every part in order, starting with the same first post as text.
media array of object (max 4) No Media from upload_media, by mediaId. Up to 4 images, or 1 GIF or video.
automation object No Post automations (auto-repost, auto-plug reply, auto-delete, auto-DM). Shape as in the docs: docs.xholic.ai/api/automations.
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.

queue.delete · write

Delete a draft or scheduled post from Xholic. It does not delete anything already on X. Call it only when the user asked for this in the conversation; never on your own initiative.

  • MCP tool: delete_queued_post. Loaded by default in MCP clients.
  • REST: POST /v1/queue/delete
  • CLI: xholic queue delete
  • Scope: write. Destructive: it can’t be taken back
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
postId string ≤ 120 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.

queue.counts · read

How many posts are queued, drafted, posted and failed.

  • MCP tool: queue_counts. Catalog: reach it with find_actions and run_read_action, or turn on the full toolset.
  • REST: GET /v1/queue/counts
  • CLI: xholic queue counts
  • 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.

queue.get_post · read

One draft, scheduled, posted or failed post in Xholic with its text, thread, media, automations and status.

  • MCP tool: queue_get_post. Catalog: reach it with find_actions and run_read_action, or turn on the full toolset.
  • REST: GET /v1/queue/get-post
  • CLI: xholic queue get-post
  • Scope: read
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: read

Input

Field Type Required Description
postId string ≤ 120 chars Yes Xholic scheduled post id, from get_queue.
account string ≤ 64 chars No X account to act on, as @handle. Leave it out to use the connection’s default account.

queue.post_now · publish

Publish an existing draft or scheduled post to X right away. Send its text (the current text from queue.get_post, or the edited one). Call it only when the user asked for this in the conversation; never on your own initiative. Spends a post credit.

  • MCP tool: queue_post_now. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/queue/post-now
  • CLI: xholic queue post-now
  • Scope: publish. Destructive: it can’t be taken back
  • Plan: Every plan, including the trial
  • Cost: Spends a post credit when the post goes live.
  • Rate limit bucket: write

Input

Field Type Required Description
postId string ≤ 120 chars Yes Xholic scheduled post id, from get_queue.
text string ≤ 100000 chars Yes
threadParts array of string ≤ 100000 chars (max 100) No For a thread: every part in order, starting with the same first post as text.
media array of object (max 400) No Media by mediaId, placed by thread part and position (0-3).
automation object No Post automations (auto-repost, auto-plug reply, auto-delete, auto-DM). Shape as in the docs: docs.xholic.ai/api/automations.
expectedUpdatedAt string (date-time) No The post’s updatedAt from queue.get_post; refuses if it changed since.
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.

queue.cancel · write

Cancel a draft, scheduled or failed post so it never goes out. Call it only when the user asked for this in the conversation; never on your own initiative.

  • MCP tool: queue_cancel. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/queue/cancel
  • CLI: xholic queue cancel
  • Scope: write. Destructive: it can’t be taken back
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
postId string ≤ 120 chars Yes Xholic scheduled post id, from get_queue.
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.

queue.share_draft · write

Create a public read-only link to a draft so someone without Xholic can review it. Call it only when the user asked for this in the conversation; never on your own initiative.

  • MCP tool: queue_share_draft. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/queue/share-draft
  • CLI: xholic queue share-draft
  • Scope: write
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write
  • Undo: from the activity log, which runs queue.revoke_share

Input

Field Type Required Description
postId string ≤ 120 chars Yes Xholic scheduled post id, from get_queue.
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.

queue.revoke_share · write

Turn off every public link to a draft.

  • MCP tool: queue_revoke_share. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/queue/revoke-share
  • CLI: xholic queue revoke-share
  • Scope: write
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
postId string ≤ 120 chars Yes Xholic scheduled post id, from get_queue.
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.

queue.add_automation_step · publish

Add one automation step to a post that is already live: repost, unrepost, delete, a plug reply after enough likes, or DMs to people who reply with a keyword. Call it only when the user asked for this in the conversation; never on your own initiative.

  • MCP tool: queue_add_automation_step. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/queue/add-automation-step
  • CLI: xholic queue add-automation-step
  • Scope: publish
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
postId string ≤ 120 chars Yes Xholic scheduled post id, from get_queue.
type “AUTO_REPOST” \ “AUTO_UNREPOST” \ “AUTO_DELETE” \
delayMinutes integer 0–9007199254740991 No AUTO_REPOST, AUTO_UNREPOST, AUTO_DELETE: minutes after the post went live.
viewsThreshold integer 1–9007199254740991 No AUTO_DELETE: delete only if the post has fewer views than this.
likesThreshold integer 1–9007199254740991 No AUTO_PLUG: likes that trigger the plug reply.
templateName string ≤ 60 chars No AUTO_PLUG: a short name for the plug.
templateText string ≤ 4000 chars No AUTO_PLUG: the plug reply text.
monitoringWindowMinutes integer 60–10080 No AUTO_PLUG: minutes after posting when watching for likes stops.
replyKeyword string ≤ 40 chars No AUTO_DM_DISCOVERY: one word repliers type.
requireRepost boolean No AUTO_DM_DISCOVERY: DM only people who also reposted.
maxRecipients integer 1–100 No AUTO_DM_DISCOVERY: most DMs to send.
messageTemplate string No AUTO_DM_DISCOVERY: the DM to send.
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.

queue.update_automation_step · publish

Change a pending automation step on a live post. Send the whole step with its type. Call it only when the user asked for this in the conversation; never on your own initiative.

  • MCP tool: queue_update_automation_step. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/queue/update-automation-step
  • CLI: xholic queue update-automation-step
  • Scope: publish
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
postId string ≤ 120 chars Yes Xholic scheduled post id, from get_queue.
ruleId string (uuid) Yes
type “AUTO_REPOST” \ “AUTO_UNREPOST” \ “AUTO_DELETE” \
delayMinutes integer 0–9007199254740991 No AUTO_REPOST, AUTO_UNREPOST, AUTO_DELETE: minutes after the post went live.
viewsThreshold integer 1–9007199254740991 No AUTO_DELETE: delete only if the post has fewer views than this.
likesThreshold integer 1–9007199254740991 No AUTO_PLUG: likes that trigger the plug reply.
templateName string ≤ 60 chars No AUTO_PLUG: a short name for the plug.
templateText string ≤ 4000 chars No AUTO_PLUG: the plug reply text.
monitoringWindowMinutes integer 60–10080 No AUTO_PLUG: minutes after posting when watching for likes stops.
replyKeyword string ≤ 40 chars No AUTO_DM_DISCOVERY: one word repliers type.
requireRepost boolean No AUTO_DM_DISCOVERY: DM only people who also reposted.
maxRecipients integer 1–100 No AUTO_DM_DISCOVERY: most DMs to send.
messageTemplate string No AUTO_DM_DISCOVERY: the DM to send.
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.

queue.remove_automation_step · write

Remove a pending automation step from a live post before it runs. Call it only when the user asked for this in the conversation; never on your own initiative.

  • MCP tool: queue_remove_automation_step. Catalog: reach it with find_actions and run_write_action, or turn on the full toolset.
  • REST: POST /v1/queue/remove-automation-step
  • CLI: xholic queue remove-automation-step
  • Scope: write. Destructive: it can’t be taken back
  • Plan: Every plan, including the trial
  • Cost: Free.
  • Rate limit bucket: write

Input

Field Type Required Description
postId string ≤ 120 chars Yes Xholic scheduled post id, from get_queue.
ruleId 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.