dotCMS Content Type API

Content type definitions and schema management

Business capability
Content Management AE-170.70

Operations 12

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

GET /api/structure/{path} List content types that have WYSIWYG fields · Get structures with WYSIWYG fields #
Ask an LLM
“Which content types include a WYSIWYG rich text field?”
“Is there a legacy structure endpoint for finding types with WYSIWYG fields?”
Tell an agent
List structures with WYSIWYG fields for path {path}, type {type}, callback {callback}.
Find content types with rich text fields named {name} using path {path}, type {type} and callback {callback}.
POST /api/v1/contenttype/{baseVariableName}/_copy Copy an existing content type · Copies a content type #
Ask an LLM
“How do I create a new content type based on an existing one?”
“Can I copy a content type into a different site or folder?”
Tell an agent
Copy content type {baseVariableName} as {name}.
Duplicate content type {baseVariableName} into {name} on site {host}.
GET /api/v1/contenttype List content types · Retrieves a list of content types #
Ask an LLM
“What content types are defined in my dotCMS instance?”
“Can I list only content types of a certain base type, like widgets?”
Tell an agent
List all content types.
List content types of base type {type} on site {host}.
POST /api/v1/contenttype Create one or more content types · Creates one or more content types #
Ask an LLM
“How do I define a new content type with its fields in one request?”
“Can I create several content types at once?”
Tell an agent
Create a content type named {name} of class {clazz}.
Create content type {name} ({clazz}) with fields {fields} and workflow {workflow}.
GET /api/v1/contenttype/id/{idOrVar} Get a content type and its fields · Retrieves a single content type #
Ask an LLM
“What fields does my Blog content type have?”
“Can I look up a content type by its Velocity variable name?”
Tell an agent
Show content type {idOrVar} with all its fields.
Get the definition of content type {idOrVar} in language {languageId}.
PUT /api/v1/contenttype/id/{idOrVar} Replace a content type's full definition · Updates a content type #
Ask an LLM
“Will fields I leave out of a content type update be removed?”
“What's the safe pattern for updating a content type without losing fields?”
Tell an agent destructive · confirm first
Update content type {idOrVar} with name {name} and class {clazz}, keeping every existing field.
Replace the field list of content type {idOrVar} with {fields}.
DELETE /api/v1/contenttype/id/{idOrVar} Delete a content type · Deletes a content type #
Ask an LLM
“How do I delete a content type I no longer need?”
“Why is the response entity a string when I delete a content type?”
Tell an agent destructive · confirm first
Delete content type {idOrVar}.
Permanently remove the {idOrVar} content type.
POST /api/v1/contenttype/_filter Filter content types with paging controls · Filters content types #
Ask an LLM
“Can I filter content types by name and control page size and sort order?”
“Is there a POST-based way to search content types?”
Tell an agent
Filter content types by {filter} with {perPage} per page.
Search content types for {filter} sorted by {orderBy}.
GET /api/v1/contenttype/page List content types usable on a page · Retrieves a list of content types for a page #
Ask an LLM
“Which content types can I add to a particular page?”
“Can I list the content types allowed on a page in a given language?”
Tell an agent
List content types I can use on page {pagePathOrId}.
Show content types for page {pagePathOrId} in language {language}.
GET /api/v1/contenttype/basetypes List the base content types · Retrieves base content types #
Ask an LLM
“What base types can a content type be built on?”
“Which base content types does dotCMS support, like widget or file asset?”
Tell an agent
List the base content types.
Show every base type I can create a content type from.
GET /api/v1/contenttype/render/id/{idOrVar} Get a content type with custom fields rendered · Retrieves a single content type with their rendered custom fields #
Ask an LLM
“Can I see a content type with its custom Velocity fields already rendered?”
“How do custom fields render for a specific content version?”
Tell an agent
Get content type {idOrVar} with its custom fields rendered.
Render the custom fields of {idOrVar} for content inode {inode}.
PATCH /api/v1/contenttype/id/{idOrVar}/metadata Merge metadata into a content type · Updates the metadata of a Content Type #
Ask an LLM
“Can I add metadata to a content type without touching its fields?”
“Does a metadata patch remove keys I don't send?”
Tell an agent
Merge these metadata keys into content type {idOrVar}.
Set only the metadata of content type {idOrVar}, leaving fields alone.

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-content-type-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-content-type-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: dotCMS REST Content Type API
  version: '3'
  description: Content type definitions and schema management
servers:
- url: /
  description: dotCMS Server
tags:


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