dotCMS Template API

Template CRUD, publish, archive, and layout management endpoints

Business capability
Content Management AE-170.70

Operations 14

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/templates/_archive Archive templates in bulk · Archive templates in bulk #
Ask an LLM
“How do I archive several page templates at once?”
“Will archiving a batch of templates report which ones failed?”
Tell an agent
Archive the templates in my list.
Bulk-archive these template identifiers and report any failures.
PUT /api/v1/templates/{templateId}/_copy Copy a template · Copy a template #
Ask an LLM
“How do I duplicate an existing page template?”
“Does copying a template give it a new identifier?”
Tell an agent
Copy template {templateId}.
Make a duplicate of template {templateId} as a new working version.
GET /api/v1/templates List templates · List templates #
Ask an LLM
“Which page templates can I use on my site?”
“Can I search templates by title across all sites?”
Tell an agent
List my templates.
List templates matching {filter} on site {host}.
PUT /api/v1/templates Update an existing template · Update an existing template #
Ask an LLM
“How do I change the layout or body of a template that already exists?”
“Can I update a template without publishing the change?”
Tell an agent
Update template {identifier} with title {title}.
Save a new working version of existing template {identifier} titled {title} with layout {layout}.
POST /api/v1/templates Create a new template · Create a new template #
Ask an LLM
“How do I create a new page template in dotCMS?”
“Can I create a template from a designed layout with a theme?”
Tell an agent
Create a template titled {title}.
Create template {title} on site {siteId} using theme {theme}.
DELETE /api/v1/templates Delete templates in bulk · Delete templates in bulk #
Ask an LLM
“Can I permanently delete templates that pages no longer use?”
“Why can't I delete a template that isn't archived?”
Tell an agent destructive · confirm first
Delete the archived templates in my list.
Permanently remove these template identifiers and report failures.
POST /api/v1/templates/image Get a template's thumbnail image info · Get the image associated with a template #
Ask an LLM
“Which image is attached to a template as its preview?”
“Can I get the name and file type of a template's thumbnail?”
Tell an agent
Get the image linked to template {templateId}.
Show the thumbnail metadata for template {templateId}.
GET /api/v1/templates/{templateId}/live Get the live version of a template · Get live version of a template #
Ask an LLM
“What does the published version of a template contain?”
“Is there a live version of this template yet?”
Tell an agent
Get the live version of template {templateId}.
Show published template {templateId}.
GET /api/v1/templates/{templateId}/working Get the working draft of a template · Get working version of a template #
Ask an LLM
“How do I see the latest unpublished draft of a template?”
“Can I load a template's working copy by its identifier?”
Tell an agent
Get the working version of template {templateId}.
Show the latest draft of template {templateId}.
PUT /api/v1/templates/_publish Publish templates in bulk · Publish templates in bulk #
Ask an LLM
“How do I publish several templates at once?”
“Can archived templates be published in a batch?”
Tell an agent
Publish the templates in my list.
Bulk-publish these template identifiers and summarize failures.
PUT /api/v1/templates/_savepublish Save and publish a template in one step · Save and publish a template #
Ask an LLM
“Can I save a template and make it live in a single action?”
“Does save-and-publish create a template if I don't pass an identifier?”
Tell an agent
Save and publish template {title}.
Save template {identifier} titled {title} and publish it immediately.
PUT /api/v1/templates/draft Save a template as a draft · Save a template as draft #
Ask an LLM
“How do I save template edits as a draft without publishing?”
“Can I keep a draft version of a template separate from the live one?”
Tell an agent
Save a draft of template {identifier} titled {title}.
Store draft changes to template {identifier} titled {title} with body {body}.
PUT /api/v1/templates/_unarchive Unarchive templates in bulk · Unarchive templates in bulk #
Ask an LLM
“How do I restore archived templates?”
“Can I unarchive several templates at the same time?”
Tell an agent
Unarchive the templates in my list.
Restore these archived template identifiers.
PUT /api/v1/templates/_unpublish Unpublish templates in bulk · Unpublish templates in bulk #
Ask an LLM
“How do I take several templates out of live status?”
“Can I unpublish a batch of templates at once?”
Tell an agent
Unpublish the templates in my list.
Bulk-unpublish these template identifiers.

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-template-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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-template-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: dotCMS REST Template API
  version: '3'
  description: Template CRUD, publish, archive, and layout management endpoints
servers:
- url: /
  description: dotCMS Server
tags:


# --- truncated at 32 KB (34 KB total) ---
# Full source: https://artifacts.apis.io/dotcms/openapi/dotcms-template-api-openapi.yml