dotCMS Java Script API

JavaScript execution and server-side scripting

Operations 18

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/js/{folder} Call a scripted JS endpoint's GET handler · Get #
Ask an LLM
“How do I call a server-side JavaScript endpoint I've set up in a dotCMS folder?”
“Can I fetch data from a custom JS endpoint with a plain GET?”
Tell an agent
Call the GET handler of the JavaScript endpoint in folder {folder}.
Read the output of scripted endpoint {folder}.
PUT /api/js/{folder} Send a multipart PUT to a scripted JS endpoint · Put multipart #
Ask an LLM
“Can I PUT multipart form data to a custom JavaScript endpoint folder?”
“What happens when I send file parts with PUT to a JS scripting endpoint?”
Tell an agent
Send a multipart PUT with these form parts to the JS endpoint in folder {folder}.
Invoke the PUT handler of scripted endpoint {folder} with body parts {bodyParts}.
POST /api/js/{folder} Send a multipart POST to a scripted JS endpoint · Post multipart #
Ask an LLM
“How do I POST a file upload to a server-side JavaScript endpoint?”
“Can a custom JS endpoint folder accept multipart POST submissions?”
Tell an agent
POST this multipart form to the JavaScript endpoint in folder {folder}.
Submit multipart body parts {bodyParts} to the POST handler of scripted endpoint {folder}.
DELETE /api/js/{folder} Call a scripted JS endpoint's DELETE handler · Delete 1 #
Ask an LLM
“Can I trigger the DELETE logic of a custom JavaScript endpoint folder?”
“What does sending DELETE to a JS scripting endpoint folder do?”
Tell an agent destructive · confirm first
Invoke the DELETE handler of the JavaScript endpoint in folder {folder}.
Send a DELETE request to scripted endpoint {folder}.
PATCH /api/js/{folder} Send a multipart PATCH to a scripted JS endpoint · Patch multipart #
Ask an LLM
“Can I PATCH multipart data to a server-side JavaScript endpoint folder?”
“Does the JS scripting API support partial updates via PATCH on a folder?”
Tell an agent
Send a multipart PATCH to the JavaScript endpoint in folder {folder}.
Invoke the PATCH handler of scripted endpoint {folder} with form fields {fields}.
GET /api/js/{folder}/{pathParam} Call a scripted JS endpoint's GET handler on a sub-path · Get 1 #
Ask an LLM
“Can I pass an extra path segment when calling a custom JavaScript endpoint?”
“How do I GET a specific resource path under a JS endpoint folder?”
Tell an agent
Call the GET handler of JS endpoint {folder} with sub-path {pathParam}.
Read {pathParam} from the scripted endpoint in folder {folder}.
PUT /api/js/{folder}/{pathParam} Send a multipart PUT to a scripted JS endpoint sub-path · Put multipart 1 #
Ask an LLM
“Can I PUT multipart data to a sub-path of a custom JavaScript endpoint?”
“How do I send a PUT with form parts to a specific resource under a JS endpoint folder?”
Tell an agent
Send a multipart PUT to sub-path {pathParam} of JS endpoint {folder}.
PUT body parts {bodyParts} to {pathParam} under scripted endpoint {folder}.
POST /api/js/{folder}/{pathParam} Send a multipart POST to a scripted JS endpoint sub-path · Post multipart 1 #
Ask an LLM
“How do I POST a multipart form to a sub-path of a custom JavaScript endpoint?”
“Can a JS endpoint receive file uploads on a nested path segment?”
Tell an agent
POST this multipart form to sub-path {pathParam} of JS endpoint {folder}.
Submit body parts {bodyParts} to {pathParam} under the POST handler of scripted endpoint {folder}.
DELETE /api/js/{folder}/{pathParam} Call a scripted JS endpoint's DELETE handler on a sub-path · Delete 2 #
Ask an LLM
“Can I send DELETE to a specific resource path under a custom JavaScript endpoint?”
“What does DELETE on a sub-path of a JS scripting endpoint do?”
Tell an agent destructive · confirm first
Invoke the DELETE handler of JS endpoint {folder} for sub-path {pathParam}.
Send DELETE to {pathParam} under scripted endpoint {folder}.
PATCH /api/js/{folder}/{pathParam} Send a multipart PATCH to a scripted JS endpoint sub-path · Patch multipart 1 #
Ask an LLM
“Can I PATCH multipart data to a nested path of a custom JavaScript endpoint?”
“How do I partially update a resource at a sub-path of a JS endpoint folder?”
Tell an agent
Send a multipart PATCH to sub-path {pathParam} of JS endpoint {folder}.
PATCH form fields {fields} onto {pathParam} under scripted endpoint {folder}.
GET /api/js/dynamic/{pathParam} Run dynamic JavaScript via GET with a path · Dynamic get 1 #
Ask an LLM
“Can I execute dynamic JavaScript through a GET request with a path segment?”
“How do I run ad hoc server-side JS on a dynamic sub-path using GET?”
Tell an agent
Run the dynamic JavaScript GET endpoint for path {pathParam}.
Execute dynamic JS with a GET on sub-path {pathParam}.
PUT /api/js/dynamic/{pathParam} Run dynamic JavaScript via PUT with a path · Dynamic put 1 #
Ask an LLM
“Can I send a PUT to the dynamic JavaScript endpoint with a path segment?”
“How do I execute dynamic server-side JS as a PUT on a specific sub-path?”
Tell an agent
Run dynamic JavaScript as a PUT on path {pathParam}.
Execute my dynamic JS PUT against sub-path {pathParam}.
POST /api/js/dynamic/{pathParam} Run dynamic JavaScript via POST with a path · Dynamic post 1 #
Ask an LLM
“Can I POST dynamic JavaScript to run against a particular sub-path?”
“How do I execute ad hoc server-side JS with POST on a dynamic path?”
Tell an agent
Run dynamic JavaScript as a POST on path {pathParam}.
POST my dynamic JS for execution at sub-path {pathParam}.
DELETE /api/js/dynamic/{pathParam} Run dynamic JavaScript via DELETE with a path · Dynamic delete #
Ask an LLM
“Can the dynamic JavaScript endpoint handle a DELETE on a sub-path?”
“What runs when I send DELETE to a dynamic JS path?”
Tell an agent destructive · confirm first
Run dynamic JavaScript as a DELETE on path {pathParam}.
Send a dynamic JS DELETE for sub-path {pathParam}.
PATCH /api/js/dynamic/{pathParam} Run dynamic JavaScript via PATCH with a path · Dynamic patch #
Ask an LLM
“Can I PATCH through the dynamic JavaScript endpoint on a sub-path?”
“How do I execute dynamic server-side JS as a PATCH?”
Tell an agent
Run dynamic JavaScript as a PATCH on path {pathParam}.
Send a dynamic JS PATCH to sub-path {pathParam}.
GET /api/js/dynamic Run dynamic JavaScript via GET · Dynamic get #
Ask an LLM
“Can I call the dynamic JavaScript endpoint with a GET and no sub-path?”
“What does a bare GET to the dynamic JS scripting endpoint return?”
Tell an agent
Call the root dynamic JavaScript endpoint with a GET.
Run dynamic JS via GET without any path segment.
PUT /api/js/dynamic Run dynamic JavaScript via PUT · Dynamic put #
Ask an LLM
“Can I send a PUT to the root dynamic JavaScript endpoint?”
“Does the dynamic JS endpoint accept PUT requests without a sub-path?”
Tell an agent
Send a PUT to the root dynamic JavaScript endpoint.
Run dynamic JS via PUT without any path segment.
POST /api/js/dynamic Run dynamic JavaScript via POST · Dynamic post #
Ask an LLM
“How do I POST server-side JavaScript to the dynamic endpoint for execution?”
“Can I run ad hoc JS by posting to the root dynamic scripting endpoint?”
Tell an agent
POST my JavaScript to the root dynamic endpoint and run it.
Run dynamic JS via POST without any path segment.

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-javascript-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-javascript-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: dotCMS REST JavaScript API
  version: '3'
  description: JavaScript execution and server-side scripting
servers:
- url: /
  description: dotCMS Server
tags:
- name: JavaScript
  description: JavaScript execution and server-side scripting
paths:
  /api/js/{folder}:
    get:
      tags:
      - JavaScript
      operationId: get
      parameters:
      - name: folder
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: object
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Get
      x-summary-source: derived
    put:
      tags:
      - JavaScript
      operationId: putMultipart
      parameters:
      - name: folder
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FormDataMultiPart'
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Put multipart
      x-summary-source: derived
    post:
      tags:
      - JavaScript
      operationId: postMultipart
      parameters:
      - name: folder
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FormDataMultiPart'
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Post multipart
      x-summary-source: derived
    delete:
      tags:
      - JavaScript
      operationId: delete_1
      parameters:
      - name: folder
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: object
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Delete 1
      x-summary-source: derived
    patch:
      tags:
      - JavaScript
      operationId: patchMultipart
      parameters:
      - name: folder
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FormDataMultiPart'
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Patch multipart
      x-summary-source: derived
  /api/js/{folder}/{pathParam}:
    get:
      tags:
      - JavaScript
      operationId: get_1
      parameters:
      - name: folder
        in: path
        required: true
        schema:
          type: string
      - name: pathParam
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: object
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Get 1
      x-summary-source: derived
    put:
      tags:
      - JavaScript
      operationId: putMultipart_1
      parameters:
      - name: pathParam
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      - name: folder
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FormDataMultiPart'
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Put multipart 1
      x-summary-source: derived
    post:
      tags:
      - JavaScript
      operationId: postMultipart_1
      parameters:
      - name: pathParam
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      - name: folder
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FormDataMultiPart'
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Post multipart 1
      x-summary-source: derived
    delete:
      tags:
      - JavaScript
      operationId: delete_2
      parameters:
      - name: folder
        in: path
        required: true
        schema:
          type: string
      - name: pathParam
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties:
                type: object
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Delete 2
      x-summary-source: derived
    patch:
      tags:
      - JavaScript
      operationId: patchMultipart_1
      parameters:
      - name: pathParam
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      - name: folder
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FormDataMultiPart'
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Patch multipart 1
      x-summary-source: derived
  /api/js/dynamic/{pathParam}:
    get:
      tags:
      - JavaScript
      operationId: dynamicGet_1
      parameters:
      - name: pathParam
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: string
          text/plain:
            schema:
              type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Dynamic get 1
      x-summary-source: derived
    put:
      tags:
      - JavaScript
      operationId: dynamicPut_1
      parameters:
      - name: pathParam
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: string
          text/plain:
            schema:
              type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Dynamic put 1
      x-summary-source: derived
    post:
      tags:
      - JavaScript
      operationId: dynamicPost_1
      parameters:
      - name: pathParam
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: string
          text/plain:
            schema:
              type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Dynamic post 1
      x-summary-source: derived
    delete:
      tags:
      - JavaScript
      operationId: dynamicDelete
      parameters:
      - name: pathParam
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: string
          text/plain:
            schema:
              type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Dynamic delete
      x-summary-source: derived
    patch:
      tags:
      - JavaScript
      operationId: dynamicPatch
      parameters:
      - name: pathParam
        in: path
        required: true
        schema:
          pattern: .*
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: string
          text/plain:
            schema:
              type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Dynamic patch
      x-summary-source: derived
  /api/js/dynamic:
    get:
      tags:
      - JavaScript
      operationId: dynamicGet
      requestBody:
        content:
          application/json:
            schema:
              type: string
          text/plain:
            schema:
              type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Dynamic get
      x-summary-source: derived
    put:
      tags:
      - JavaScript
      operationId: dynamicPut
      requestBody:
        content:
          application/json:
            schema:
              type: string
          text/plain:
            schema:
              type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Dynamic put
      x-summary-source: derived
    post:
      tags:
      - JavaScript
      operationId: dynamicPost
      requestBody:
        content:
          application/json:
            schema:
              type: string
          text/plain:
            schema:
              type: string
      responses:
        default:
          description: default response
          content:
            application/json: {}
            application/xml: {}
            text/plain: {}
      summary: Dynamic post
      x-summary-source: derived
components:
  schemas:
    MultiPart:
      type: object
      properties:
        contentDisposition:
          $ref: '#/components/schemas/ContentDisposition'
        entity:
          type: object
        headers:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        mediaType:
          type: object
          properties:
            type:
              type: string
            subtype:
              type: string
            parameters:
              type: object
              additionalProperties:
                type: string
            wildcardType:
              type: boolean
            wildcardSubtype:
              type: boolean
        messageBodyWorkers:
          $ref: '#/components/schemas/MessageBodyWorkers'
        parent:
          $ref: '#/components/schemas/MultiPart'
        providers:
          type: object
        bodyParts:
          type: array
          items:
            $ref: '#/components/schemas/BodyPart'
        parameterizedHeaders:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ParameterizedHeader'
    FormDataBodyPart:
      type: object
      properties:
        contentDisposition:
          $ref: '#/components/schemas/ContentDisposition'
        entity:
          type: object
        headers:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        mediaType:
          type: object
          properties:
            type:
              type: string
            subtype:
              type: string
            parameters:
              type: object
              additionalProperties:
                type: string
            wildcardType:
              type: boolean
            wildcardSubtype:
              type: boolean
        messageBodyWorkers:
          $ref: '#/components/schemas/MessageBodyWorkers'
        parent:
          $ref: '#/components/schemas/MultiPart'
        providers:
          type: object
        formDataContentDisposition:
          $ref: '#/components/schemas/FormDataContentDisposition'
        simple:
          type: boolean
        name:
          type: string
        value:
          type: string
        parameterizedHeaders:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ParameterizedHeader'
    FormDataContentDisposition:
      type: object
      properties:
        type:
          type: string
        parameters:
          type: object
          additionalProperties:
            type: string
        fileName:
          type: string
        creationDate:
          type: string
          format: date-time
        modificationDate:
          type: string
          format: date-time
        readDate:
          type: string
          format: date-time
        size:
          type: integer
          format: int64
        name:
          type: string
    MessageBodyWorkers:
      type: object
    ParameterizedHeader:
      type: object
      properties:
        value:
          type: string
        parameters:
          type: object
          additionalProperties:
            type: string
    ContentDisposition:
      type: object
      properties:
        type:
          type: string
        parameters:
          type: object
          additionalProperties:
            type: string
        fileName:
          type: string
        creationDate:
          type: string
          format: date-time
        modificationDate:
          type: string
          format: date-time
        readDate:
          type: string
          format: date-time
        size:
          type: integer
          format: int64
    FormDataMultiPart:
      type: object
      properties:
        contentDisposition:
          $ref: '#/components/schemas/ContentDisposition'
        entity:
          type: object
        headers:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        mediaType:
          type: object
          properties:
            type:
              type: string
            subtype:
              type: string
            parameters:
              type: object
              additionalProperties:
                type: string
            wildcardType:
              type: boolean
            wildcardSubtype:
              type: boolean
        messageBodyWorkers:
          $ref: '#/components/schemas/MessageBodyWorkers'
        parent:
          $ref: '#/components/schemas/MultiPart'
        providers:
          type: object
        bodyParts:
          type: array
          items:
            $ref: '#/components/schemas/BodyPart'
        fields:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/FormDataBodyPart'
        parameterizedHeaders:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ParameterizedHeader'
    BodyPart:
      type: object
      properties:
        contentDisposition:
          $ref: '#/components/schemas/ContentDisposition'
        entity:
          type: object
        headers:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        mediaType:
          type: object
          properties:
            type:
              type: string
            subtype:
              type: string
            parameters:
              type: object
              additionalProperties:
                type: string
            wildcardType:
              type: boolean
            wildcardSubtype:
              type: boolean
        messageBodyWorkers:
          $ref: '#/components/schemas/MessageBodyWorkers'
        parent:
          $ref: '#/components/schemas/MultiPart'
        providers:
          type: object
        parameterizedHeaders:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ParameterizedHeader'