Modulify

Remove a queued message

remove_queued_message

Takes a message out of a site's queue so the site agent never runs it.

POST /v1/remove_queued_messageScopesites:deleteDestructive

It cannot be undone. Unlike an edit, it is not limited to messages you queued yourself, and the queue belongs to the whole workspace, so an entry you did not write may be one somebody queued and is waiting on. The tool tells the client to read list_queued_messages first and to confirm with you before removing anything that is not yours.

Only a message that is still queued can be removed. One the agent has already started is refused with That message already left the queue and is running!, and cancel_job is the tool for that. See Message queue.

Request

Call it with a POST to https://api.modulify.ai/v1/remove_queued_message, sending the inputs below as a JSON object. The token needs the sites:delete scope.

This method is marked destructive: it deletes or overwrites data. Check the inputs before you call it, and send an Idempotency-Key header whenever you might retry it.

curl -X POST https://api.modulify.ai/v1/remove_queued_message \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"PROJECT_ID","itemId":"ITEM_ID"}'

Over MCP, the same method is the remove_queued_message tool.

Inputs

Input Type Required Description
projectId string Yes The site id, from list_sites or get_site.
itemId string Yes The Id of the queued message, exactly as list_queued_messages reported it.

Response

Every call answers with the JSON envelope of success, message, data, code and version. data holds the result described above, and on a method that returns a total, count carries it. The response headers carry the call's X-Request-Id and what is left of your per-minute budget in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Errors explains every status code a call can answer with.