dotCMS Content Type API

Content type definitions and schema management

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"

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-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 (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dotcms/refs/heads/main/openapi/dotcms-content-type-api-openapi.yml