dotCMS Administration API

System administration and management tools

Operations 10

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/restexample/layout/{params} Call the REST example layout endpoint · Get layout 2 #
Ask an LLM
“What does the restexample layout endpoint return for given parameters?”
“Can I test the sample REST layout resource with path parameters?”
Tell an agent
Call the REST example layout endpoint with parameters {params}.
Fetch the sample restexample layout for {params}.
GET /api/restexample/test/{params} Call the REST example JSON test endpoint · Load json #
Ask an LLM
“Is there a sample endpoint that returns test JSON?”
“What comes back from the restexample test resource?”
Tell an agent
Load the REST example test JSON for parameters {params}.
Call the restexample test endpoint with {params}.
GET /api/util/encodeQueryParamValue/{params} Encode a query parameter value · Get logged in user #
Ask an LLM
“Can dotCMS URL-encode a value for me to use in a query string?”
“Which utility endpoint encodes query parameter values?”
Tell an agent
Encode {params} as a query parameter value.
Run the query-parameter encoding utility on {params}.
GET /api/ws/v1/system/events Poll for system events · Get events #
Ask an LLM
“How do I poll for dotCMS system events without websockets?”
“Can I get only the system events since my last callback?”
Tell an agent
Get system events since callback {lastcallback}.
Poll for new system events.
GET /api/ws/v1/system/syncevents Fetch system events synchronously · Get sync events #
Ask an LLM
“Is there a synchronous version of the system events feed?”
“Can I pull sync events newer than a given callback timestamp?”
Tell an agent
Fetch synchronous system events since callback {lastcallback}.
Pull the sync system events feed.
GET /api/v1/jvm Get JVM information · Get jvm info #
Ask an LLM
“What JVM is my dotCMS server running on?”
“Can I see the Java runtime details for the instance?”
Tell an agent
Show the JVM information for this dotCMS server.
Get the Java runtime details of the instance.
PUT /api/v1/toolgroups/{layoutId}/_addtouser Give a user a tool group · Add tool group to user #
Ask an LLM
“How do I add a tool group (menu layout) to a user?”
“Can I grant someone access to a back-end tool group?”
Tell an agent
Add tool group {layoutId} to user {userid}.
Give me tool group {layoutId}.
PUT /api/v1/toolgroups/{layoutId}/_removefromuser Remove a tool group from a user · Delete tool group from user #
Ask an LLM
“How do I take a tool group away from a user?”
“Can I revoke a back-end menu layout from someone?”
Tell an agent
Remove tool group {layoutId} from user {userid}.
Take tool group {layoutId} off my account.
GET /api/v1/toolgroups/{layoutId}/_userHasLayout Check whether a user has a tool group · User has layout #
Ask an LLM
“Does a given user already have a particular tool group?”
“Can I check if someone can see a specific back-end layout?”
Tell an agent
Check whether user {userid} has tool group {layoutId}.
Tell me if I have tool group {layoutId}.
GET /api/v1/telemetry/stats Retrieve telemetry usage metrics · Retrieves dotCMS usage data #
Ask an LLM
“What telemetry metrics does dotCMS collect about this instance?”
“Can I get a fast minimal telemetry profile instead of all 100+ metrics?”
Tell an agent
Get telemetry stats using the {profile} profile.
Fetch telemetry metrics {metricNames}, bypassing the cache: {bypassCache}.

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-administration-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-administration-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: dotCMS REST Administration API
  version: '3'
  description: System administration and management tools
servers:
- url: /
  description: dotCMS Server
tags:
- name: Administration
  description: System administration and management tools
paths:
  /api/restexample/layout/{params}:
    get:
      tags:
      - Administration
      operationId: getLayout_2
      parameters:
      - name: params
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        default:
          description: default response
          content:
            text/html: {}
      summary: Get layout 2
      x-summary-source: derived
  /api/restexample/test/{params}:
    get:
      tags:
      - Administration
      operationId: loadJson
      parameters:
      - name: params
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Load json
      x-summary-source: derived
  /api/util/encodeQueryParamValue/{params}:
    get:
      tags:
      - Administration
      operationId: getLoggedInUser
      parameters:
      - name: params
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
      summary: Get logged in user
      x-summary-source: derived
  /api/ws/v1/system/events:
    get:
      tags:
      - Administration
      operationId: getEvents
      parameters:
      - name: lastcallback
        in: query
        schema:
          type: integer
          format: int64
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/javascript: {}
      summary: Get events
      x-summary-source: derived
  /api/ws/v1/system/syncevents:
    get:
      tags:
      - Administration
      operationId: getSyncEvents
      parameters:
      - name: lastcallback
        in: query
        schema:
          type: integer
          format: int64
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/javascript: {}
      summary: Get sync events
      x-summary-source: derived
  /api/v1/jvm:
    get:
      tags:
      - Administration
      operationId: getJvmInfo
      responses:
        default:
          description: default response
          content:
            application/octet-stream: {}
            application/json: {}
      summary: Get jvm info
      x-summary-source: derived
  /api/v1/toolgroups/{layoutId}/_addtouser:
    put:
      tags:
      - Administration
      operationId: addToolGroupToUser
      parameters:
      - name: layoutId
        in: path
        required: true
        schema:
          type: string
      - name: userid
        in: query
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/javascript: {}
      summary: Add tool group to user
      x-summary-source: derived
  /api/v1/toolgroups/{layoutId}/_removefromuser:
    put:
      tags:
      - Administration
      operationId: deleteToolGroupFromUser
      parameters:
      - name: layoutId
        in: path
        required: true
        schema:
          type: string
      - name: userid
        in: query
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/javascript: {}
      summary: Delete tool group from user
      x-summary-source: derived
  /api/v1/toolgroups/{layoutId}/_userHasLayout:
    get:
      tags:
      - Administration
      operationId: userHasLayout
      parameters:
      - name: layoutId
        in: path
        required: true
        schema:
          type: string
      - name: userid
        in: query
        schema:
          type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/javascript: {}
      summary: User has layout
      x-summary-source: derived
  /api/v1/telemetry/stats:
    get:
      tags:
      - Administration
      summary: Retrieves dotCMS usage data
      description: Collects telemetry metrics based on the specified profile. Defaults to FULL profile to return all available metrics. Use MINIMAL profile for dashboard (faster, ~10 metrics) or FULL for complete data (~100+ metrics). Set bypassCache=true to force fresh metric computation bypassing cache.
      operationId: getData
      parameters:
      - name: metricNames
        in: query
        description: Comma-separated list of specific metric names to retrieve. If not specified, all metrics matching the profile will be returned.
        schema:
          type: string
      - name: profile
        in: query
        description: 'Profile type to use for metric collection. Options: MINIMAL (10-15 core metrics, <5s), STANDARD (~50 metrics, <15s), FULL (all 100+ metrics). Defaults to FULL for API access.'
        schema:
          type: string
      - name: bypassCache
        in: query
        description: Bypass cache to force fresh metric computation. Use for diagnostics to see actual database query times. Defaults to false (use cache if available).
        schema:
          type: boolean
          default: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseEntityMetricsSnapshotView'
components:
  schemas:
    MessageEntity:
      type: object
      properties:
        message:
          type: string
    ResponseEntityMetricsSnapshotView:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntity'
        entity:
          $ref: '#/components/schemas/MetricsSnapshot'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/MessageEntity'
        i18nMessagesMap:
          type: object
          additionalProperties:
            type: string
        permissions:
          type: array
          items:
            type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    Pagination:
      type: object
      properties:
        currentPage:
          type: integer
          format: int32
        perPage:
          type: integer
          format: int32
        totalEntries:
          type: integer
          format: int64
    Metric:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        category:
          type: string
          enum:
          - DIFFERENTIATING_FEATURES
          - PAID_FEATURES
          - PLATFORM_SPECIFIC_CUSTOMIZATION
          - SOPHISTICATED_CONTENT_ARCHITECTURE
          - POSITIVE_USER_EXPERIENCE
          - PLATFORM_SPECIFIC_DEVELOPMENT
          - RECENT_ACTIVITY
          - HISTORY_LEGACY_DEPRECATED_FEATURES
        feature:
          type: string
          enum:
          - CONTENTLETS
          - LANGUAGES
          - CONTENT_TYPES
          - SITES
          - URL_MAPS
          - WORKFLOW
          - USERS
          - SITE_SEARCH
          - IMAGE_API
          - LAYOUT
          - CONTENT_TYPE_FIELDS
          - AI
          - EXPERIMENTS
    MetricsSnapshot:
      type: object
      properties:
        stats:
          type: array
          items:
            $ref: '#/components/schemas/MetricValue'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/MetricCalculationError'
        timings:
          type: array
          items:
            $ref: '#/components/schemas/MetricTiming'
        notNumericMetricValues:
          type: array
          items:
            $ref: '#/components/schemas/MetricValue'
    MetricValue:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        category:
          type: string
          enum:
          - DIFFERENTIATING_FEATURES
          - PAID_FEATURES
          - PLATFORM_SPECIFIC_CUSTOMIZATION
          - SOPHISTICATED_CONTENT_ARCHITECTURE
          - POSITIVE_USER_EXPERIENCE
          - PLATFORM_SPECIFIC_DEVELOPMENT
          - RECENT_ACTIVITY
          - HISTORY_LEGACY_DEPRECATED_FEATURES
        feature:
          type: string
          enum:
          - CONTENTLETS
          - LANGUAGES
          - CONTENT_TYPES
          - SITES
          - URL_MAPS
          - WORKFLOW
          - USERS
          - SITE_SEARCH
          - IMAGE_API
          - LAYOUT
          - CONTENT_TYPE_FIELDS
          - AI
          - EXPERIMENTS
        value:
          type: object
    MetricTiming:
      type: object
      properties:
        metricName:
          type: string
        durationMs:
          type: integer
          format: int64
        cacheHit:
          type: boolean
        computationMs:
          type: integer
          format: int64
        timedOut:
          type: boolean
        slow:
          type: boolean
    ErrorEntity:
      type: object
      properties:
        errorCode:
          type: string
        message:
          type: string
        fieldName:
          type: string
    MetricCalculationError:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        category:
          type: string
          enum:
          - DIFFERENTIATING_FEATURES
          - PAID_FEATURES
          - PLATFORM_SPECIFIC_CUSTOMIZATION
          - SOPHISTICATED_CONTENT_ARCHITECTURE
          - POSITIVE_USER_EXPERIENCE
          - PLATFORM_SPECIFIC_DEVELOPMENT
          - RECENT_ACTIVITY
          - HISTORY_LEGACY_DEPRECATED_FEATURES
        feature:
          type: string
          enum:
          - CONTENTLETS
          - LANGUAGES
          - CONTENT_TYPES
          - SITES
          - URL_MAPS
          - WORKFLOW
          - USERS
          - SITE_SEARCH
          - IMAGE_API
          - LAYOUT
          - CONTENT_TYPE_FIELDS
          - AI
          - EXPERIMENTS
        error:
          type: string
        type:
          $ref: '#/components/schemas/Metric'