Add Condition to RLCL
Overview
Adds a condition to an RLCL. Conditions determine when the RLCL should be applied. If a condition is set, the RLCL is only applied when the condition evaluates to true.
Endpoint
POST /apiops/projects/{projectName}/rlcl/{rlclName}/condition/
Authentication
Requires a Personal API Access Token.
Header
Authorization: Bearer YOUR_TOKEN
Request
Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Bearer {token} | Yes |
| Content-Type | application/json | Yes |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectName | string | Yes | Project name |
| rlclName | string | Yes | RLCL name |
Request Body
Full JSON Body Example - Simple Condition
{
"conditionRuleList": [
{
"conditionCriteria": "VALUE",
"firstVariable": {
"name": "userTypeHeader",
"type": "HEADER",
"headerName": "X-User-Type"
},
"variableDataType": "STRING",
"valueComparisonOperator": "EQ",
"secondValueSource": "VALUE",
"secondValue": "PREMIUM"
}
]
}
Full JSON Body Example - Complex Condition with Multiple Rules
{
"conditionRuleList": [
{
"conditionCriteria": "OR",
"conditionRuleList": [
{
"conditionCriteria": "VALUE",
"firstVariable": {
"name": "userTypeHeader",
"type": "HEADER",
"headerName": "X-User-Type"
},
"variableDataType": "STRING",
"valueComparisonOperator": "EQ",
"secondValueSource": "VALUE",
"secondValue": "PREMIUM"
},
{
"conditionCriteria": "VALUE",
"firstVariable": {
"name": "apiVersionHeader",
"type": "HEADER",
"headerName": "X-API-Version"
},
"variableDataType": "STRING",
"valueComparisonOperator": "EQ",
"secondValueSource": "VALUE",
"secondValue": "v2"
}
]
}
]
}
Request Body Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| conditionRuleList | array[object] | Yes | - | List of condition rules. See ConditionRuleDTO |
ConditionRuleDTO (conditionRuleList item)
| Field | Type | Required | Description |
|---|---|---|---|
| conditionRuleList | array[object] | No | Nested condition rules (for complex conditions) |
| conditionCriteria | string | Yes | Condition criteria. See EnumConditionCriteria |
| firstVariable | object | Yes | First variable for comparison. See Variable Object |
| variableDataType | string | Yes | Variable data type. See EnumConditionVariableDataType |
| dateFormat | string | No | Date format for date comparisons |
| valueComparisonOperator | string | Yes | Comparison operator. See EnumConditionValueComparisonOperator |
| secondValueSource | string | Yes | Second value source. See EnumConditionValueSource |
| secondValue | string | No* | Static value for comparison (required if secondValueSource is VALUE) |
| secondVariable | object | No* | Second variable for comparison (required if secondValueSource is VARIABLE) |
EnumConditionCriteria (conditionCriteria)
VALUE- Value comparison (used for actual comparison operations)NOT- Negation (negates the condition)AND- Logical AND (all nested conditions must match)OR- Logical OR (any nested condition must match)
Note: For actual value comparisons, use VALUE. Use AND/OR/NOT for combining multiple conditions.
EnumConditionVariableDataType (variableDataType)
STRING- String data typeNUMERIC- Numeric data typeDATE- Date data type
Note: BOOLEAN is not supported. Use STRING with EQ/NE operators for boolean-like comparisons.
EnumConditionValueComparisonOperator (valueComparisonOperator)
LT- Less thanLE- Less than or equal toGT- Greater thanGE- Greater than or equal toEQ- Equal toNE- Not equal toSTARTS_WITH- Starts with (string only)ENDS_WITH- Ends with (string only)CONTAINS- Contains (string only)NOT_CONTAINS- Does not contain (string only)IS_EMPTY- Value exists and is emptyIS_NOT_EMPTY- Value exists and is not emptyIS_EXISTS- Value existsIS_NOT_EXISTS- Value does not existIN- Value is in listNOT_IN- Value is not in list
EnumConditionValueSource (secondValueSource)
VALUE- Static value (usesecondValuefield)VARIABLE- Variable value (usesecondVariablefield)
Variable Object (firstVariable/secondVariable)
See Variable Definition for complete variable documentation.
| Field | Type | Required | Description | |
|---|---|---|---|---|
| name | string | Yes | Variable name (unique identifier) | |
| description | string | No | Variable description | |
| type | string | Yes | Variable type. See Variable Types | |
| headerName | string | No* | Header name (required if type=HEADER) | |
| paramType | string | No* | Parameter type (required if type=PARAMETER). See EnumVariableParameterType | |
| paramName | string | No* | Parameter name (required if type=PARAMETER) | |
| paramPath | string | No* | Parameter path template (required if type=PARAMETER and paramType=PATH) | |
| formName | string | No | Form field name (optional, used if paramType=FORM) | |
| messageContentType | string | No* | Message content type (required if type=BODY). See EnumMessageContentType | |
| xpathValue | string | No* | XPath expression (required if type=BODY and messageContentType=XML) | |
| jsonPathValue | string | No* | JsonPath expression (required if type=BODY and messageContentType=JSON) | |
| contextValue | string | No* | Context value (required if type=CONTEXT_VALUES). See EnumVariableContextValue | |
| zoneId | string | No* | Time zone ID (required for date/time context values) | |
| initWithScript | boolean | No | false | Whether to initialize with script (default: false) |
| scriptLanguage | string | No* | Script language (required if type=CUSTOM or initWithScript=true). See EnumScriptType | |
| scriptBody | string | No* | Script body (required if type=CUSTOM or initWithScript=true) |
Notes
- Conditions are evaluated before applying rate limiting
- If condition evaluates to false, RLCL is not applied
- Nested conditions are supported for complex logic
- If conditionRuleList is empty, default AND rule is used
Response
Success Response (200 OK)
{
"success": true
}
Error Response (400 Bad Request)
{
"error": "bad_request",
"error_description": "condition value can not be empty!"
}
cURL Example
curl -X POST \
"https://demo.apinizer.com/apiops/projects/MyProject/rlcl/PremiumUserRLCL/condition/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"conditionRuleList": [
{
"conditionCriteria": "VALUE",
"firstVariable": {
"name": "userTypeHeader",
"type": "HEADER",
"headerName": "X-User-Type"
},
"variableDataType": "STRING",
"valueComparisonOperator": "EQ",
"secondValueSource": "VALUE",
"secondValue": "PREMIUM"
}
]
}'
Notes and Warnings
- Condition Evaluation:
- Condition is evaluated before applying rate limiting
- If condition is false, RLCL is not applied
- Nested Conditions:
- Complex conditions can be created using nested rules
- Use conditionRuleList for nested logic
- RLCL Must Exist:
- RLCL must exist before adding condition
Related Documentation
- Update Condition - Update condition in RLCL
- Delete Condition - Remove condition from RLCL
- Policy Conditions - Detailed condition documentation