dotCMS Maintenance API

System maintenance and administration operations

Operations 26

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

DELETE /api/v1/maintenance/_contentlets Permanently bulk delete contentlets by identifier · Bulk delete contentlets by identifier #
Ask an LLM
“How do I permanently destroy a batch of contentlets without sending them to the trash?”
“Does bulk deleting a contentlet also remove its other language versions?”
Tell an agent destructive · confirm first
Permanently destroy the contentlets with identifiers {identifiers}, bypassing the trash.
Bulk delete contentlets {identifiers} and all of their language siblings for good.
DELETE /api/v1/maintenance/_pushedAssets Clear all push publishing history records · Delete all pushed assets records #
Ask an LLM
“How can I wipe the pushed assets table so everything looks never pushed?”
“Can I reset push publishing history across all endpoints at once?”
Tell an agent destructive · confirm first
Delete every pushed assets record so all assets appear never pushed.
Clear the whole push publishing history table.
DELETE /api/v1/maintenance/_systemJobs/{group}/{name} Remove a Quartz scheduler job by group and name · Delete a Quartz scheduler job #
Ask an LLM
“How do I remove an orphaned Quartz scheduler job that errored after an upgrade?”
“Does removing a Quartz job also delete its triggers?”
Tell an agent destructive · confirm first
Remove the Quartz job {name} in group {group} along with its triggers.
Clean up the errored scheduler job {name} from job group {group}.
GET /api/v1/maintenance/_downloadAssets Download a zip of the site's asset files · Download assets #
Ask an LLM
“Can I download just the assets folder from my dotCMS instance as an archive?”
“Is there a way to include old asset versions when downloading the assets?”
Tell an agent
Download the assets archive only, without the database.
Download the assets archive with old versions set to {oldAssets} and a max file size of {maxSize}.
GET /api/v1/maintenance/_downloadClusterLog/{fileName} Download a log file collected from the cluster · Download cluster log file #
Ask an LLM
“How do I pull a log file gathered from all cluster nodes?”
“Can I fetch a cluster-wide log bundle by file name?”
Tell an agent
Download the cluster log file {fileName}.
Grab {fileName} from the cluster logs so I can inspect it.
GET /api/v1/maintenance/_downloadDb Download a database dump · Download db #
Ask an LLM
“How do I download a full dump of the dotCMS database?”
“Can I get a database backup file straight from the maintenance API?”
Tell an agent
Download a dump of the database.
Export the database as a backup file for me.
GET /api/v1/maintenance/_downloadLog/{fileName} Download a single server log file · Download log file #
Ask an LLM
“How can I download one of this server's log files by its name?”
“Can I fetch dotcms.log from the local node without shell access?”
Tell an agent
Download the log file {fileName} from this server.
Fetch the local node's {fileName} log.
GET /api/v1/maintenance/_downloadStarter Download a starter site without assets · Download starter #
Ask an LLM
“How do I export a starter package that contains data but no asset files?”
“Can I cap the file size when generating a starter without assets?”
Tell an agent
Download a starter package without assets.
Build a data-only starter limited to files of {maxSize}.
GET /api/v1/maintenance/_downloadStarterWithAssets Download a starter site including assets · Download starter with assets #
Ask an LLM
“How do I export a complete starter that bundles the data together with the asset files?”
“Can a starter with assets also include old asset versions?”
Tell an agent
Download a starter that includes both data and assets.
Generate a starter with assets, old versions {oldAssets}, max file size {maxSize}.
DELETE /api/v1/maintenance/_oldVersions Drop content and asset versions older than a date · Drop old asset versions #
Ask an LLM
“How do I purge old versions of contentlets, templates and containers older than a certain date?”
“What gets removed when I drop old asset versions, and how long can it take?”
Tell an agent destructive · confirm first
Drop all versions of versionable objects older than {date}.
Purge old content, template and workflow history versions from before {date}.
GET /api/v1/maintenance/assets/_clean Check the latest clean-assets job · Get latest clean-assets job #
Ask an LLM
“Is an orphan asset cleanup currently running, and what was its last result?”
“Has a clean-assets job ever run on this cluster?”
Tell an agent
Show me the status of the most recent clean-assets job.
Check whether the orphan asset cleanup has finished.
POST /api/v1/maintenance/assets/_clean Start a job that cleans orphaned assets · Request a clean-assets job #
Ask an LLM
“How do I kick off a cleanup of orphaned asset files on the cluster?”
“What happens if I request an orphan asset cleanup while one is already running?”
Tell an agent destructive · confirm first
Queue a clean-assets job to remove orphaned asset files.
Start the orphan asset cleanup and give me the job id.
GET /api/v1/maintenance/assets/_fix Check the latest fix-assets job · Get latest fix-assets job #
Ask an LLM
“What was the outcome of the last asset inconsistency fix run?”
“Is a fix-assets job active right now?”
Tell an agent
Show me the most recent fix-assets job and its status.
Check how the latest asset inconsistency fix went.
POST /api/v1/maintenance/assets/_fix Start a job that fixes asset inconsistencies · Request a fix-assets job #
Ask an LLM
“How do I trigger a repair of asset inconsistencies across the cluster?”
“Why would requesting a fix-assets job return a 409 conflict?”
Tell an agent
Queue a fix-assets job to repair asset inconsistencies.
Start the asset inconsistency repair and return its status URL.
GET /api/v1/maintenance/_threads Get a full JVM thread dump · JVM thread dump #
Ask an LLM
“How do I get a JVM thread dump with stack traces to diagnose a hung server?”
“Can the thread dump detect deadlocks and filter to only dotCMS threads?”
Tell an agent
Take a full JVM thread dump with stack traces and deadlock detection.
Dump JVM threads with system threads hidden set to {hideSystem}.
GET /api/v1/maintenance/_threads/info Get JVM uptime and thread count summary · JVM thread info #
Ask an LLM
“How long has the JVM been up and what is its peak thread count?”
“Is there a lightweight way to see current thread count without a full dump?”
Tell an agent
Show the JVM start time, uptime and current versus peak thread count.
Give me a quick thread-count summary for the server.
GET /api/v1/maintenance/_pgDumpAvailable Check whether pg_dump is available · Is pg dump available #
Ask an LLM
“Can this server produce a PostgreSQL dump, i.e. is pg_dump installed?”
“Why might the database download not be available on my instance?”
Tell an agent
Check if pg_dump is available on the server.
Tell me whether database dumps can be generated here.
GET /api/v1/maintenance/_sessions List active HTTP sessions · List active HTTP sessions #
Ask an LLM
“Who is currently logged in, i.e. which HTTP sessions are active?”
“How do I get the token needed to kill a specific user session?”
Tell an agent
List every active HTTP session with its session token.
Show me who has an open session right now.
DELETE /api/v1/maintenance/_sessions Log out every session except mine · Invalidate all sessions except the caller's #
Ask an LLM
“How do I force everyone else to log out of dotCMS at once?”
“Will invalidating all sessions also end my own session?”
Tell an agent destructive · confirm first
Invalidate all active sessions except my own.
Kick every other user out and tell me how many sessions were ended.
DELETE /api/v1/maintenance/_sessions/{token} Invalidate one user session · Invalidate a single session #
Ask an LLM
“How do I end one specific user's session without logging out everyone?”
“Why does killing a session return 403 after fifteen minutes?”
Tell an agent destructive · confirm first
Invalidate the session with token {token}.
Log out the single session identified by {token}.
GET /api/v1/maintenance/_systemJobs List Quartz scheduler jobs · List Quartz scheduler jobs #
Ask an LLM
“Which Quartz scheduler jobs exist and when will they fire next?”
“How can I find scheduler jobs that errored after an upgrade?”
Tell an agent
List all Quartz scheduler jobs with their triggers and running status.
Show me any scheduler jobs flagged with an error.
POST /api/v1/maintenance/_searchAndReplace Find and replace text across the whole database · Database-wide search and replace #
Ask an LLM
“How do I replace a string everywhere in content, templates, containers and links?”
“Can a database-wide search and replace be undone?”
Tell an agent destructive · confirm first
Replace every occurrence of {searchString} with {replaceString} across all content.
Swap the old domain {searchString} for {replaceString} in all working and live versions.
DELETE /api/v1/maintenance/_shutdown Shut down this server node · Shutdown #
Ask an LLM
“How do I shut down the dotCMS instance I'm connected to?”
“Can I stop a single node remotely through the maintenance API?”
Tell an agent destructive · confirm first
Shut down this dotCMS server.
Stop the current node only.
DELETE /api/v1/maintenance/_shutdownCluster Shut down every node in the cluster · Shutdown cluster #
Ask an LLM
“How do I shut down all nodes in the cluster at once?”
“Can I stagger a cluster shutdown with a rolling delay between nodes?”
Tell an agent destructive · confirm first
Shut down the entire cluster.
Do a rolling cluster shutdown with a {rollingDelay} delay between nodes.
POST /api/v1/upgradetask Run a specific upgrade task · Upgrade #
Ask an LLM
“How do I manually re-run a single upgrade task by class name?”
“Can I execute a specific database upgrade task that was skipped?”
Tell an agent
Run the upgrade task {upgradeTaskClass}.
Execute upgrade class {upgradeTaskClass} now.
DELETE /api/v1/caches/menucache Flush the navigation menu cache · Deletes the menu cache #
Ask an LLM
“My site navigation is stale, how do I clear the menu cache?”
“Can I flush only the menu cache without touching other caches?”
Tell an agent destructive · confirm first
Clear the menu cache.
Flush the navigation menu cache so menus rebuild.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dotcms:dotcms-maintenance-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

dotcms-maintenance-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: dotCMS REST Maintenance API
  version: '3'
  description: System maintenance and administration operations
servers:
- url: /
  description: dotCMS Server
tags:


# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dotcms/refs/heads/main/openapi/dotcms-maintenance-api-openapi.yml