dotCMS Site API

Site management, lifecycle, and configuration endpoints

Operations 20

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

PUT /api/v1/site/{siteId}/_archive Archive a site · Archive a site #
Ask an LLM
“How do I archive a site I no longer use in dotCMS?”
“Can the default site be archived?”
Tell an agent
Archive site {siteId}.
Unlock and archive the site with host ID {siteId}.
PUT /api/v1/site/_copy Create a new site by copying another · Copy a site #
Ask an LLM
“Can I clone an existing site with its templates, containers and folders?”
“Which parts of a site can be copied, such as content types, links or site variables?”
Tell an agent
Copy everything from site {copyFromSiteId} into a new site {site}.
Clone site {copyFromSiteId}, copying only templates, containers and folders.
GET /api/v1/site List sites I can access · List sites with pagination #
Ask an LLM
“Which sites do I have access to?”
“Can I list only archived sites, or only live ones?”
Tell an agent
List the sites whose name matches {filter}.
Show page {page} of my sites, {per_page} per page, including system sites.
PUT /api/v1/site Update a site's properties · Update an existing site #
Ask an LLM
“How do I change an existing site's aliases or SEO keywords?”
“Can I update a site's description and Google Analytics code?”
Tell an agent
Update site {id} with hostname {siteName} and aliases {aliases}.
Set the description of site {id} ({siteName}) to {description}.
POST /api/v1/site Create a new site · Create a new site #
Ask an LLM
“How do I add a new site with its own hostname?”
“Can I set aliases, tag storage and site variables when creating a site?”
Tell an agent
Create a new site named {siteName}.
Create site {siteName} with aliases {aliases} and keywords {keywords}.
GET /api/v1/site/currentSite Get the site selected in my session · Get the current site for the logged-in user #
Ask an LLM
“Which site am I currently working in?”
“What site does the site selector show for my session right now?”
Tell an agent
Show the site currently selected in my session.
Tell me which site I'm working in right now.
GET /api/v1/site/defaultSite Get the system default site · Get the default site #
Ask an LLM
“Which site is marked as the default in dotCMS?”
“What is the system's default site?”
Tell an agent
Show me the default site.
Get the site flagged as the system default.
GET /api/v1/site/{siteId} Get a site's details · Get a site by its identifier #
Ask an LLM
“How do I get the full details of a site from its identifier?”
“What settings does a particular site have?”
Tell an agent
Get the details of site {siteId}.
Show everything configured on host ID {siteId}.
DELETE /api/v1/site/{siteId} Delete a site · Delete a site #
Ask an LLM
“How do I permanently delete a site?”
“Why can't I delete the default site?”
Tell an agent destructive · confirm first
Delete site {siteId}.
Permanently remove the site with host ID {siteId}.
GET /api/v1/site/thumbnails List thumbnails for all sites · Get thumbnails for all sites #
Ask an LLM
“Which of my sites have a thumbnail image set?”
“Can I get every site's thumbnail and tag storage in one list?”
Tell an agent
List all sites with their thumbnail information.
Show which sites have a thumbnail.
POST /api/v1/site/_byname Find a site by hostname · Find a site by name #
Ask an LLM
“How do I look up a site by its hostname?”
“Can I find a site whose hostname has special characters?”
Tell an agent
Find the site with hostname {siteName}.
Look up site {siteName} by name.
GET /api/v1/site/{siteId}/setup_progress Check a site copy's setup progress · Get site setup progress #
Ask an LLM
“How far along is the asset copy for a site I just cloned?”
“Is the background copy job for my new site finished?”
Tell an agent
Show the setup progress of site {siteId}.
Check whether assets have finished copying into site {siteId}.
GET /api/v1/site/variable/{siteId} List a site's variables · Retrieve the Site Variables for a site #
Ask an LLM
“What site variables are defined on a site?”
“Who last changed a site's variables?”
Tell an agent
List the site variables for site {siteId}.
Show every variable key and value on site {siteId}.
PUT /api/v1/site/{siteId}/_makedefault Make a site the default · Mark a site as the default #
Ask an LLM
“How do I change which site is the system default?”
“Can I promote another site to default before deleting the current one?”
Tell an agent
Make site {siteId} the default site.
Mark host {siteId} as the system default.
PUT /api/v1/site/{siteId}/_publish Publish a site · Publish a site #
Ask an LLM
“How do I make a site live?”
“Can I bring an unpublished site back online?”
Tell an agent
Publish site {siteId}.
Make site {siteId} live and accessible.
PUT /api/v1/site/variable Create or update a site variable · Save a Site Variable #
Ask an LLM
“How do I add a variable to a site?”
“Will saving a site variable with an existing key overwrite it?”
Tell an agent
Set site variable {key} to {value} on site {siteId}.
Create a site variable named {name} with key {key} on site {siteId}.
PUT /api/v1/site/switch Switch my session to my default site · Switch to the user's default site #
Ask an LLM
“How do I switch back to my default site?”
“Can I reset my active site to the default in one step?”
Tell an agent
Switch my active site back to my default site.
Reset the site I'm working in to my default.
PUT /api/v1/site/switch/{id} Switch my session to a specific site · Switch to a specific site #
Ask an LLM
“How do I change the site I'm currently working in?”
“Can an agent switch my active site for me?”
Tell an agent
Switch my active site to {id}.
Start working in site {id}.
PUT /api/v1/site/{siteId}/_unarchive Restore an archived site · Unarchive a site #
Ask an LLM
“How do I bring back a site I archived?”
“Can an archived site be made active again?”
Tell an agent
Unarchive site {siteId}.
Restore archived site {siteId} to active.
PUT /api/v1/site/{siteId}/_unpublish Unpublish a site · Unpublish a site #
Ask an LLM
“How do I take a site offline without deleting it?”
“Can I remove a site from live status temporarily?”
Tell an agent
Unpublish site {siteId}.
Take site {siteId} out of live status.

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-site-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-site-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: dotCMS REST Site API
  version: '3'
  description: Site management, lifecycle, and configuration endpoints
servers:
- url: /
  description: dotCMS Server
tags:


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