Take sites out of a folder
remove_sites_from_folder
Takes one or more sites out of whatever folder they are in, at most 200 per call, so they sit loose in the dashboard.
The sites themselves are untouched and are not deleted. Only the grouping goes, and the folder survives even when this empties it.
Sites already outside a folder or belonging to another workspace are skipped, so read removedIds in the response to see which came out. When none of them were in a folder, the call is refused. See Folders.
Request
Call it with a POST to https://api.modulify.ai/v1/remove_sites_from_folder, sending the inputs below as a JSON object. The token needs the sites:write scope.
It makes changes, so send an Idempotency-Key header whenever you might retry it. A retry with the same key gets the first answer back instead of running again.
curl -X POST https://api.modulify.ai/v1/remove_sites_from_folder \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"workspaceId":"WORKSPACE_ID","projectIds":[]}'Over MCP, the same method is the remove_sites_from_folder tool.
Inputs
| Input | Type | Required | Description |
|---|---|---|---|
workspaceId |
string | Yes | The workspace the sites belong to. |
projectIds |
array of strings | Yes | The site ids to take out, from list_sites, at most 200. |
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.