dotCMS · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for dotCMS REST Site API
21 actions
21 updates
phrasing
extends
openapi/dotcms-site-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for dotCMS's API. It is a proposal applied on top of the contract, not a document dotCMS publishes.
What the actions change
x-apievangelist-phrasing
Targets 21 · first 16 shown; the file carries all of them
$.info
$.paths['/api/v1/site/{siteId}/_archive'].put
$.paths['/api/v1/site/_copy'].put
$.paths['/api/v1/site'].get
$.paths['/api/v1/site'].put
$.paths['/api/v1/site'].post
$.paths['/api/v1/site/currentSite'].get
$.paths['/api/v1/site/defaultSite'].get
$.paths['/api/v1/site/{siteId}'].get
$.paths['/api/v1/site/{siteId}'].delete
$.paths['/api/v1/site/thumbnails'].get
$.paths['/api/v1/site/_byname'].post
$.paths['/api/v1/site/{siteId}/setup_progress'].get
$.paths['/api/v1/site/variable/{siteId}'].get
$.paths['/api/v1/site/{siteId}/_makedefault'].put
$.paths['/api/v1/site/{siteId}/_publish'].put
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for dotCMS REST Site API
version: 1.0.0
extends: openapi/dotcms-site-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 20
- target: $.paths['/api/v1/site/{siteId}/_archive'].put
update:
x-apievangelist-phrasing:
intent: Archive a site
effect: write
questions:
- How do I archive a site I no longer use in dotCMS?
- Can the default site be archived?
instructions:
- text: Archive site {siteId}.
slots:
siteId: path.siteId
- text: Unlock and archive the site with host ID {siteId}.
slots:
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/_copy'].put
update:
x-apievangelist-phrasing:
intent: Create a new site by copying another
effect: write
questions:
- 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?
instructions:
- text: Copy everything from site {copyFromSiteId} into a new site {site}.
slots:
copyFromSiteId: requestBody.copyFromSiteId
site: requestBody.site
- text: Clone site {copyFromSiteId}, copying only templates, containers and folders.
slots:
copyFromSiteId: requestBody.copyFromSiteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site'].get
update:
x-apievangelist-phrasing:
intent: List sites I can access
effect: read
questions:
- Which sites do I have access to?
- Can I list only archived sites, or only live ones?
instructions:
- text: List the sites whose name matches {filter}.
slots:
filter: query.filter
- text: Show page {page} of my sites, {per_page} per page, including system sites.
slots:
page: query.page
per_page: query.per_page
- text: List all archived sites.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site'].put
update:
x-apievangelist-phrasing:
intent: Update a site's properties
effect: write
questions:
- How do I change an existing site's aliases or SEO keywords?
- Can I update a site's description and Google Analytics code?
instructions:
- text: Update site {id} with hostname {siteName} and aliases {aliases}.
slots:
id: query.id
siteName: requestBody.siteName
aliases: requestBody.aliases
- text: Set the description of site {id} ({siteName}) to {description}.
slots:
id: query.id
siteName: requestBody.siteName
description: requestBody.description
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site'].post
update:
x-apievangelist-phrasing:
intent: Create a new site
effect: write
questions:
- How do I add a new site with its own hostname?
- Can I set aliases, tag storage and site variables when creating a site?
instructions:
- text: Create a new site named {siteName}.
slots:
siteName: requestBody.siteName
- text: Create site {siteName} with aliases {aliases} and keywords {keywords}.
slots:
siteName: requestBody.siteName
aliases: requestBody.aliases
keywords: requestBody.keywords
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/currentSite'].get
update:
x-apievangelist-phrasing:
intent: Get the site selected in my session
effect: read
questions:
- Which site am I currently working in?
- What site does the site selector show for my session right now?
instructions:
- text: Show the site currently selected in my session.
- text: Tell me which site I'm working in right now.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/defaultSite'].get
update:
x-apievangelist-phrasing:
intent: Get the system default site
effect: read
questions:
- Which site is marked as the default in dotCMS?
- What is the system's default site?
instructions:
- text: Show me the default site.
- text: Get the site flagged as the system default.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/{siteId}'].get
update:
x-apievangelist-phrasing:
intent: Get a site's details
effect: read
questions:
- How do I get the full details of a site from its identifier?
- What settings does a particular site have?
instructions:
- text: Get the details of site {siteId}.
slots:
siteId: path.siteId
- text: Show everything configured on host ID {siteId}.
slots:
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/{siteId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a site
effect: destructive
questions:
- How do I permanently delete a site?
- Why can't I delete the default site?
instructions:
- text: Delete site {siteId}.
slots:
siteId: path.siteId
- text: Permanently remove the site with host ID {siteId}.
slots:
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/thumbnails'].get
update:
x-apievangelist-phrasing:
intent: List thumbnails for all sites
effect: read
questions:
- Which of my sites have a thumbnail image set?
- Can I get every site's thumbnail and tag storage in one list?
instructions:
- text: List all sites with their thumbnail information.
- text: Show which sites have a thumbnail.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/_byname'].post
update:
x-apievangelist-phrasing:
intent: Find a site by hostname
effect: read
questions:
- How do I look up a site by its hostname?
- Can I find a site whose hostname has special characters?
instructions:
- text: Find the site with hostname {siteName}.
slots:
siteName: requestBody.siteName
- text: Look up site {siteName} by name.
slots:
siteName: requestBody.siteName
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/{siteId}/setup_progress'].get
update:
x-apievangelist-phrasing:
intent: Check a site copy's setup progress
effect: read
questions:
- How far along is the asset copy for a site I just cloned?
- Is the background copy job for my new site finished?
instructions:
- text: Show the setup progress of site {siteId}.
slots:
siteId: path.siteId
- text: Check whether assets have finished copying into site {siteId}.
slots:
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/variable/{siteId}'].get
update:
x-apievangelist-phrasing:
intent: List a site's variables
effect: read
questions:
- What site variables are defined on a site?
- Who last changed a site's variables?
instructions:
- text: List the site variables for site {siteId}.
slots:
siteId: path.siteId
- text: Show every variable key and value on site {siteId}.
slots:
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/{siteId}/_makedefault'].put
update:
x-apievangelist-phrasing:
intent: Make a site the default
effect: write
questions:
- How do I change which site is the system default?
- Can I promote another site to default before deleting the current one?
instructions:
- text: Make site {siteId} the default site.
slots:
siteId: path.siteId
- text: Mark host {siteId} as the system default.
slots:
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/{siteId}/_publish'].put
update:
x-apievangelist-phrasing:
intent: Publish a site
effect: write
questions:
- How do I make a site live?
- Can I bring an unpublished site back online?
instructions:
- text: Publish site {siteId}.
slots:
siteId: path.siteId
- text: Make site {siteId} live and accessible.
slots:
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/variable'].put
update:
x-apievangelist-phrasing:
intent: Create or update a site variable
effect: write
questions:
- How do I add a variable to a site?
- Will saving a site variable with an existing key overwrite it?
instructions:
- text: Set site variable {key} to {value} on site {siteId}.
slots:
key: requestBody.key
value: requestBody.value
siteId: requestBody.siteId
- text: Create a site variable named {name} with key {key} on site {siteId}.
slots:
name: requestBody.name
key: requestBody.key
siteId: requestBody.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/switch'].put
update:
x-apievangelist-phrasing:
intent: Switch my session to my default site
effect: write
questions:
- How do I switch back to my default site?
- Can I reset my active site to the default in one step?
instructions:
- text: Switch my active site back to my default site.
- text: Reset the site I'm working in to my default.
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/switch/{id}'].put
update:
x-apievangelist-phrasing:
intent: Switch my session to a specific site
effect: write
questions:
- How do I change the site I'm currently working in?
- Can an agent switch my active site for me?
instructions:
- text: Switch my active site to {id}.
slots:
id: path.id
- text: Start working in site {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/{siteId}/_unarchive'].put
update:
x-apievangelist-phrasing:
intent: Restore an archived site
effect: write
questions:
- How do I bring back a site I archived?
- Can an archived site be made active again?
instructions:
- text: Unarchive site {siteId}.
slots:
siteId: path.siteId
- text: Restore archived site {siteId} to active.
slots:
siteId: path.siteId
method: generated
generated: '2026-09-26'
- target: $.paths['/api/v1/site/{siteId}/_unpublish'].put
update:
x-apievangelist-phrasing:
intent: Unpublish a site
effect: write
questions:
- How do I take a site offline without deleting it?
- Can I remove a site from live status temporarily?
instructions:
- text: Unpublish site {siteId}.
slots:
siteId: path.siteId
- text: Take site {siteId} out of live status.
slots:
siteId: path.siteId
method: generated
generated: '2026-09-26'