dotCMS Rules Engine API
Business rules and conditional logic management
Operations 26
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
Ask an LLM
“Where does the dotCMS admin UI get the layout for the rules engine screen?”
“Can I fetch the rules engine portlet layout definition over REST?”
Tell an agent
Load the rules engine layout using parameters {params}.
Fetch the layout definition for the rules engine portlet with {params}.
Ask an LLM
“Which personalization rules are configured on one of my sites?”
“How do I see every rule the rules engine runs for a given site?”
Tell an agent
List all rules configured on site {siteId}.
Show me every rules engine rule for site {siteId} with their fire-on settings.
Ask an LLM
“Can I create a rule that fires on every page request for a site?”
“What do I send to add a new rule with its condition groups and actions?”
Tell an agent
Create a rule named {name} on site {siteId} that fires {fireOn}.
Add a rule called {name} to site {siteId} with priority {priority}.
Ask an LLM
“How can I look up one specific rule and its settings on a site?”
“Can I check whether a particular rule is enabled?”
Tell an agent
Get rule {ruleId} on site {siteId}.
Show the name, priority and fire-on setting of rule {ruleId} for site {siteId}.
Ask an LLM
“Can I rename or re-prioritize a rule that already exists?”
“How do I turn off short-circuit evaluation on an existing rule?”
Tell an agent
Rename rule {ruleId} on site {siteId} to {name}.
Set enabled to {enabled} on existing rule {ruleId} for site {siteId}.
Ask an LLM
“How do I permanently remove a rule from the rules engine?”
“Can I delete a whole rule rather than just one of its actions?”
Tell an agent destructive · confirm first
Delete rule {ruleId} from site {siteId}.
Remove the entire rule {ruleId} from site {siteId}, not just one of its actions.
Ask an LLM
“How do I attach an actionlet to a rule so it does something when it fires?”
“Can I set the priority of a new rule action?”
Tell an agent
Add actionlet {actionlet} as a new action on rule {owningRule} for site {siteId}.
Create a rule action on rule {owningRule} in site {siteId} with priority {priority}.
Ask an LLM
“Which actionlet and parameters does a given rule action use?”
“Can I inspect a single rule action on its own?”
Tell an agent
Get rule action {actionId} on site {siteId}.
Show the actionlet and parameters configured for action {actionId} in site {siteId}.
Ask an LLM
“Can I change the parameters of an action a rule already has?”
“How do I swap the actionlet used by an existing rule action?”
Tell an agent
Change existing action {actionId} on site {siteId} to use actionlet {actionlet} under rule {owningRule}.
Update the parameters of rule action {actionId} in site {siteId} to {parameters}, keeping rule {owningRule}.
DELETE
/api/v1/sites/{siteId}/ruleengine/actions/{actionId}
Delete an action from a rule · Remove 1
#
Ask an LLM
“How do I remove one action from a rule without deleting the rule?”
“Can I delete a rule action I no longer need?”
Tell an agent destructive · confirm first
Delete rule action {actionId} on site {siteId}.
Remove action {actionId} from its rule in site {siteId}, leaving the rule itself in place.
GET
/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups
List a rule's condition groups · List 3
#
Ask an LLM
“Which condition groups make up a particular rule?”
“Can I see how a rule's conditions are grouped with AND/OR operators?”
Tell an agent
List the condition groups on rule {ruleId} for site {siteId}.
Show every condition group and its operator for rule {ruleId} in site {siteId}.
POST
/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups
Add a condition group to a rule · Add 2
#
Ask an LLM
“How do I add a new group of conditions to a rule?”
“Can a new condition group be joined to the others with OR instead of AND?”
Tell an agent
Add a condition group with operator {operator} to rule {ruleId} on site {siteId}.
Create a new condition group on rule {ruleId} in site {siteId} using {operator} at priority {priority}.
DELETE
/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups/{conditionGroupId}
Delete a condition group from a rule · Remove 2
#
Ask an LLM
“How do I drop a whole condition group from a rule?”
“Can I delete one group of conditions while keeping the rest of the rule?”
Tell an agent destructive · confirm first
Delete condition group {conditionGroupId} from rule {ruleId} on site {siteId}.
Remove group {conditionGroupId} and its conditions from rule {ruleId} in site {siteId}.
GET
/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups/{groupId}
Get a single condition group · Self 3
#
Ask an LLM
“What conditions and operator does one specific condition group hold?”
“Can I fetch a single condition group of a rule by its ID?”
Tell an agent
Get condition group {groupId} of rule {ruleId} on site {siteId}.
Show the operator and conditions inside group {groupId} for rule {ruleId} in site {siteId}.
PUT
/api/v1/sites/{siteId}/ruleengine/rules/{ruleId}/conditionGroups/{groupId}
Update a condition group · Update 5
#
Ask an LLM
“Can I switch an existing condition group from AND to OR?”
“How do I reorder the priority of a condition group that already exists?”
Tell an agent
Change the operator of condition group {groupId} on rule {ruleId} in site {siteId} to {operator}.
Update existing group {groupId} of rule {ruleId} on site {siteId} to operator {operator} and priority {priority}.
Ask an LLM
“How do I add a visitor condition, like a browser or geolocation check, to a rule?”
“Which conditionlet do I pick when adding a new condition to a group?”
Tell an agent
Put a single {conditionlet} check using {operator} into existing group {owningGroup} of site {siteId}.
Create a new condition in group {owningGroup} for site {siteId} using conditionlet {conditionlet}, operator {operator} and values {values}.
GET
/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}
Get a single rule condition · Self 4
#
Ask an LLM
“Which conditionlet and operator does a particular condition use?”
“Can I look up one condition by its ID?”
Tell an agent
Get condition {conditionId} on site {siteId}.
Show the conditionlet, operator and group of condition {conditionId} in site {siteId}.
Ask an LLM
“Can I change the comparison operator on a condition I already created?”
“How do I move an existing condition into a different condition group?”
Tell an agent
Update condition {conditionId} on site {siteId} to conditionlet {conditionlet} with operator {operator} in group {owningGroup}.
Move existing condition {conditionId} in site {siteId} to group {owningGroup}, keeping conditionlet {conditionlet} and operator {operator}.
DELETE
/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}
Delete a rule condition · Remove 3
#
Ask an LLM
“How do I delete one condition from a condition group?”
“Can I remove a single condition without touching the rest of its group?”
Tell an agent destructive · confirm first
Delete condition {conditionId} on site {siteId}.
Remove condition {conditionId} from its group in site {siteId}.
GET
/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}/conditionValues
List the values of a condition · List 4
#
Ask an LLM
“What key/value inputs are stored on a particular condition?”
“Can I list all the comparison values a condition checks against?”
Tell an agent
List the values of condition {conditionId} on site {siteId}.
Show every key and value stored on condition {conditionId} in site {siteId}.
POST
/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}/conditionValues
Add a value to a condition · Add 4
#
Ask an LLM
“How do I add another comparison value to an existing condition?”
“Can I give a new condition value a key and a priority?”
Tell an agent
Add value {value} under key {key} to condition {conditionId} on site {siteId}.
Create a condition value with key {key} on condition {conditionId} in site {siteId}.
GET
/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}/conditionValues/{valueId}
Get a single condition value · Self 5
#
Ask an LLM
“What is stored in one specific condition value?”
“Can I fetch a condition value by its own ID?”
Tell an agent
Get value {valueId} of condition {conditionId} on site {siteId}.
Show the key and value of condition value {valueId} under condition {conditionId} in site {siteId}.
PUT
/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}/conditionValues/{valueId}
Update a condition value · Update 7
#
Ask an LLM
“Can I change the value a condition compares against without recreating it?”
“How do I edit the key of an existing condition value?”
Tell an agent
Set condition value {valueId} on condition {conditionId} in site {siteId} to key {key} and value {value}.
Change the existing value {valueId} of condition {conditionId} on site {siteId}, keeping key {key}.
DELETE
/api/v1/sites/{siteId}/ruleengine/conditions/{conditionId}/conditionValues/{valueId}
Delete a condition value · Remove 4
#
Ask an LLM
“How do I remove one comparison value from a condition?”
“Can I delete a single condition value but keep the condition?”
Tell an agent destructive · confirm first
Delete value {valueId} from condition {conditionId} on site {siteId}.
Remove condition value {valueId} under condition {conditionId} in site {siteId}.
Ask an LLM
“What kinds of actions can a dotCMS rule perform?”
“Which actionlets are installed and available to the rules engine?”
Tell an agent
List every actionlet available to the rules engine.
Show me the action types I can attach to a rule.
Ask an LLM
“What visitor conditions can a rule check, such as browser, location or referrer?”
“Which conditionlets does the rules engine support?”
Tell an agent
List every conditionlet available to the rules engine.
Show me the condition types I can use when building a rule.
Documentation
📖
Documentation
https://dev.dotcms.com/docs/build/apis/api-basics/rest-apis
📖
APIReference
https://dev.dotcms.com/docs/build/apis/rest-apis/api-playground
Specifications
Other Resources
🔗
DeveloperPortal
https://dev.dotcms.com/
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/dotcms/refs/heads/main/errors/dotcms-problem-types.yml
🔗
DataModel
https://raw.githubusercontent.com/api-evangelist/dotcms/refs/heads/main/data-model/dotcms-data-model.yml
🔗
Conventions
https://raw.githubusercontent.com/api-evangelist/dotcms/refs/heads/main/conventions/dotcms-conventions.yml