What you can do with dotCMS
Every task in plain language. Pick one, and we can help you get access.
768 things you can do
dotCMS
dotCMS is a Java-based visual headless content management system aimed at compliance-led enterprises, deployable as SaaS (dotCMS Cloud), on premise, or as a managed service. It covers content modelling, authoring, workflow, multi-site management, personalization, experiments and content analytics, and pairs headless delivery with a Universal Visual Editor so authors can edit content in place insid
A/B Test Execution
Add a variant to an A/B experimentArchive an experimentCancel a scheduled experimentCreate an A/B experimentDelete an experimentUpdate an experiment's settingsRemove an experiment's primary goalRemove a targeting condition from an experimentUpdate an experiment variant's descriptionDelete a variant from an experimentEnd a running experimentPromote a winning variantStart an experimentList experimentsGet an experiment's detailsGet an experiment's resultsCheck the experiments feature healthCheck if the visitor is in running experimentsContent Management
Lock a contentlet for editingReindex and clear cache for one contentletSave a content draft without workflowUnlock a contentletReindex a batch of contentletsCancel a content import jobImport content from a CSV fileArchive templates in bulkCopy a templateUpdate an existing templateCreate a new templateDelete templates in bulkPublish templates in bulkSave and publish a template in one stepSave a template as a draftUnarchive templates in bulkUnpublish templates in bulkBulk update content type fields (deprecated v1)Add a field to a content type (deprecated v1)Delete several fields (deprecated v1)Update a field by ID (deprecated v1)Delete a field by ID (deprecated v1)Update a field by variable name (deprecated v1)Delete a field by variable name (deprecated v1)Add a field variable by field IDAdd a field variable by field variable nameUpdate a field variable via field IDDelete a field variable via field IDUpdate a field variable via field variable nameDelete a field variable via field variable nameBulk update content type fields (v2)Add a field to a content type (v2)Delete several fields (v2)Update a field by ID (v2)Delete a field by ID (v2)Update a field by variable name (v2)Delete a field by variable name (v2)Delete fields and return the updated layoutMove or add a field in the layoutUpdate a field wrapped in a field objectReplace which content sits in a page's containersCopy a contentlet placed on a pageDeep copy a page and all its contentSave a page template layoutLink a template layout to a pageUpdate style properties of content on a pageCopy an existing content typeCreate one or more content typesReplace a content type's full definitionDelete a content typeMerge metadata into a content typeCreate one or more tagsDelete several tags at onceDelete a single tagRemove all tags from a content itemImport tags from a CSV fileAttach a tag to a content itemRename a tag or move it to another siteCreate or update content via PUT (deprecated)Create content via POST (deprecated)Lock a contentlet (deprecated)Unlock a contentlet (deprecated)Report a UI bug to the upstream issue trackerAdd a separator to a workflow step's action listAdd a new step to a workflow schemeDuplicate a workflow schemeUpdate an existing workflow actionDelete a workflow action from every stepRemove an action from a single workflow stepRemove a sub-action from a workflow actionRename or archive a workflow schemeDelete an archived workflow schemeUpdate an existing workflow stepDelete a step from a workflow schemeRemove a default system action mappingAttach a sub-action to a workflow actionAssign an existing action to a workflow stepCreate a new workflow schemeFire a named action with a file uploadFire a workflow action by its nameFire a default system action with a file uploadFire a default system action on one contentletFire a system action over multiple contentletsSet field values across many contentletsFire an action by ID with a file uploadFire a workflow action by its IDBulk-fire an action with streamed progressBulk-fire an action and get skipped countsImport a workflow schemeReorder an action within a workflow stepReorder a step within a workflow schemeCreate a new workflow actionAdd a workflow comment to contentMap a workflow action to a system actionFetch content with relationships (deprecated)Check whether I can lock a contentletSee which languages a contentlet exists inCount references to a contentletRetrieve a contentletList pages and containers using a contentletView a contentlet's push publishing historyPull content related through a relationship fieldSearch content by searchable fieldsSearch content with a Lucene queryGet one content version by inodeList versions of contentShow a contentlet's edit historyGet the resource link for one binary fieldGet resource links for all binary fieldsList abandoned content import jobsList content imports in progressList canceled content import jobsList completed content import jobsList failed content import jobsCheck a content import job's statusList all content import jobsStream live progress of an import jobList successful content import jobsDry-run a CSV content importList templatesGet a template's thumbnail image infoGet the live version of a templateGet the working draft of a templateList available field typesList a content type's fields (deprecated v1)Get a field by ID (deprecated v1)Get a field by variable name (deprecated v1)List a field's variables by field IDList a field's variables by field variable nameGet one field variable via field IDGet one field variable via field variable nameList a content type's fields (v2)Get a field by ID (v2)Get a field by variable name (v2)Filter a content type's fields by criteriaGet a content type's field layoutCheck which languages a page exists inCheck a user's permission on a pageFind workflow actions available for a pageGet a page's container-to-content structureCompare a page's live and preview versionsList content types that act as pagesList personas personalized on a pageMap a rendered page to its source filesGet a page's metadata as JSONGet a page with its rendered HTML and contentGet a page's raw rendered HTMLSearch pages by pathList content types that have WYSIWYG fieldsList content typesGet a content type and its fieldsFilter content types with paging controlsList the base content typesGet a content type with custom fields renderedList or search tagsGet the tags on a content itemDownload the CSV template for tag importsExport tags to CSV or JSONLook up a tag by name or IDList tags owned by a userCheck if a contentlet can be locked (legacy)Retrieve content by ID, inode or queryCount content matching a Lucene querySearch the content index with LuceneGet a workflow action by its IDCheck whether an action belongs to a stepGet a workflow step by its IDEvaluate a workflow action's custom code conditionExport a workflow scheme with its stepsList all available workflow sub-actionsList the sub-actions on a workflow actionList all actions in a workflow schemeFind scheme actions mapped to a system actionList the actions available in a workflow stepGet the workflow schemes on one content typeGet workflow schemes for several content typesList actions available on a content itemList eligible default actions for a content typeList eligible default actions for schemesList first-step actions for a content typeList workflow schemesList the steps in a workflow schemeList system action mappings for a content typeList system action mappings for a schemeFind actions available for a set of contentCheck a content item's workflow statusList system actions bound to a workflow actionSearch workflow tasksGet a content item's workflow history and commentsIdentity & Access Management
Activate a user accountUpdate another user's accountCreate a new userDeactivate a user accountDelete a user and reassign their contentImpersonate another userStop impersonating a userUpdate my own profile or passwordHandle the SAML login callbackLog out of SAML via GETHandle a SAML logout callback via POSTReplace all permissions on an assetReset an asset to inherited permissionsSet a role's permissions on a site or folderSet a user's permissions on a site or folderCreate a new roleGrant a role to a userReplace an existing role's settingsDelete a role and its grantsAssign layouts to a roleRemove layouts from a roleRemove users from a role in bulkGet the logged-in user (deprecated endpoint)Look up a user by IDSearch and filter usersList users I can impersonateGet the currently authenticated userStart a SAML single sign-on loginGet the SAML service provider metadataGet permissions on an assetGet permissions on a contentletGet contentlet permissions grouped by typeList available permission levels and scopesMap permissions by permission type for a userGet a role's permissions across sites and foldersGet a user's individual permissionsLoad full role details (legacy endpoint)Filter the role tree by name (legacy endpoint)Lazy-load a role's children (legacy endpoint)List the top-level rolesCheck if a user holds any of given rolesGet a role by its idList all tool-group layoutsList the layouts assigned to a roleList the roles a user holdsLoad a role's hierarchy and user rolesList users directly granted a roleSearch roles by name, key or idOther things you can do
Delete an API tokenGenerate a new JWT for a tokenGet a token for a remote dotCMS instanceIssue an API tokenRevoke an API tokenCreate a content variantPromote a variant to defaultRestore an older versionDelete a specific versionLog in with a username and passwordSend a password reset emailLog out the current userSet a new password with a reset tokenDelete a push publishing endpoint (legacy)Delete a publishing environment (legacy)Regenerate the company key (legacy endpoint)Set the login auth type (legacy)Save company basic info (legacy)Save company language and time zone (legacy)Upload the company logo (legacy)Update company branding and basic infoRegenerate the company security keySet how users log inSet the default language and time zoneSave system configuration settingsValidate the company sender emailDelete a system table entry by path keyDelete a system table entry via _deleteUpdate an existing system table entrySave or create a system table entryChange a logger's levelSet the selected folder in the site browserReplicate one storage to anotherActivate a search indexClear all documents from an indexClose a search indexCreate a new search indexDeactivate a search indexClear the failed reindex recordsRun an action on a named indexDelete a search indexFlush the search indices cacheStart a content reindexStop a running reindexReopen a closed search indexOptimize the search indicesPermanently bulk delete contentlets by identifierClear all push publishing history recordsRemove a Quartz scheduler job by group and nameDrop content and asset versions older than a dateStart a job that cleans orphaned assetsStart a job that fixes asset inconsistenciesLog out every session except mineInvalidate one user sessionFind and replace text across the whole databaseShut down this server nodeShut down every node in the clusterRun a specific upgrade taskFlush the navigation menu cacheGive a user a tool groupRemove a tool group from a userArchive a file assetUpdate or rename a folderCreate a folder at a pathPermanently delete a file assetPermanently delete a folder and its contentsUpload or replace a file assetUpdate an existing categoryCreate a new categoryDelete categories and their descendantsImport categories from a CSV fileChange the sort order of categoriesCall the test POST resourceSend a multipart PUT to a scripted endpointSend a multipart POST to a scripted endpointRun a scripted endpoint's DELETE Velocity fileSend a multipart PATCH to a scripted endpointMultipart PUT to a scripted endpoint sub-pathMultipart POST to a scripted endpoint sub-pathScripted DELETE for an item sub-pathMultipart PATCH to a scripted endpoint sub-pathEvaluate inline Velocity via PUT with a path valueEvaluate inline Velocity via POST with a path valueEvaluate inline Velocity via DELETE with a pathEvaluate inline Velocity via PATCH with a pathEvaluate inline Velocity via PUT, no pathEvaluate inline Velocity via POST, no pathUpload and publish a file assetUpload a file asset as a draftSend a multipart PUT to a scripted JS endpointSend a multipart POST to a scripted JS endpointCall a scripted JS endpoint's DELETE handlerSend a multipart PATCH to a scripted JS endpointSend a multipart PUT to a scripted JS endpoint sub-pathSend a multipart POST to a scripted JS endpoint sub-pathCall a scripted JS endpoint's DELETE handler on a sub-pathSend a multipart PATCH to a scripted JS endpoint sub-pathRun dynamic JavaScript via PUT with a pathRun dynamic JavaScript via POST with a pathRun dynamic JavaScript via DELETE with a pathRun dynamic JavaScript via PATCH with a pathRun dynamic JavaScript via PUTRun dynamic JavaScript via POSTCreate folders by path on a siteDelete folder paths on a siteSelect a folder in the file browserApply a license keyDelete a license from the packFree a license from a serverPick a license for this serverUpload a license pack zipGenerate a license request codeReset the server's licenseArchive a siteCreate a new site by copying anotherUpdate a site's propertiesCreate a new siteDelete a siteMake a site the defaultPublish a siteCreate or update a site variableSwitch my session to my default siteSwitch my session to a specific siteRestore an archived siteUnpublish a siteExchange an OIDC ID token for a session-refSave a site's SSO configurationClear a site's SSO configurationSave the headless token-exchange configurationClear the headless token-exchange configurationImport dotAuth secretsRevoke all session-refsSign out a session-refGenerate a site key for analytics eventsSend a custom analytics eventCancel a background jobQueue a job with an uploaded fileQueue a job with JSON parametersForce a refresh of one health checkForce a refresh of all health checksUpdate a languageDelete a languageAdd a language from a locale tagCreate a languageMake a language the defaultShowing 400 of 768. Search above to find the rest.