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 and drafts
Section titled “Queue and drafts”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. |
Reschedule a post
Section titled “Reschedule a post”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. |
Unschedule a post
Section titled “Unschedule a post”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. |
Edit a queued post
Section titled “Edit a queued post”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. |
Delete a draft or scheduled post
Section titled “Delete a draft or scheduled post”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
Section titled “Queue counts”queue.counts · read
How many posts are queued, drafted, posted and failed.
- MCP tool:
queue_counts. Catalog: reach it withfind_actionsandrun_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. |
Get a queued post
Section titled “Get a queued post”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 withfind_actionsandrun_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. |
Post a queued post now
Section titled “Post a queued post now”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 withfind_actionsandrun_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. |
Cancel a post
Section titled “Cancel a post”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 withfind_actionsandrun_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. |
Share a draft link
Section titled “Share a draft link”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 withfind_actionsandrun_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. |
Turn off draft links
Section titled “Turn off draft links”queue.revoke_share · write
Turn off every public link to a draft.
- MCP tool:
queue_revoke_share. Catalog: reach it withfind_actionsandrun_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. |
Add an automation to a live post
Section titled “Add an automation to a live post”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 withfind_actionsandrun_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. |
Edit a live post’s automation
Section titled “Edit a live post’s automation”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 withfind_actionsandrun_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. |
Remove a live post’s automation
Section titled “Remove a live post’s automation”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 withfind_actionsandrun_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. |
