Add Condition to RLCL
This endpoint is retired. Every call now returns 400 Bad Request with resultMessage naming the retirement (error key credentialRateLimit.retired) — nothing is changed, regardless of the request body. Existing lists were migrated to typed Limit Plans and assignments at upgrade; see Legacy Limits Migrated at Upgrade. Manage limits from the Limits screen instead. List RLCLs, Get RLCL, and Delete RLCL are unaffected. The rest of this page documents the retired behavior for historical reference.
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)
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
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 toEQ_IGNORE_CASE- Equal to, case insensitive (string only)NE_IGNORE_CASE- Not equal to, case insensitive (string only)STARTS_WITH- Starts with (string only)NOT_STARTS_WITH- Does not start with (string only)STARTS_WITH_IGNORE_CASE- Starts with, case insensitive (string only)NOT_STARTS_WITH_IGNORE_CASE- Does not start with, case insensitive (string only)ENDS_WITH- Ends with (string only)NOT_ENDS_WITH- Does not end with (string only)ENDS_WITH_IGNORE_CASE- Ends with, case insensitive (string only)NOT_ENDS_WITH_IGNORE_CASE- Does not end with, case insensitive (string only)CONTAINS- Contains (string only)NOT_CONTAINS- Does not contain (string only)CONTAINS_IGNORE_CASE- Contains, case insensitive (string only)NOT_CONTAINS_IGNORE_CASE- Does not contain, case insensitive (string only)IS_EXISTS- Variable exists (regardless of value)IS_NOT_EXISTS- Variable does not existIS_NOT_EMPTY- Variable exists and is not emptyIS_EMPTY- Variable does not exist or is emptyEXISTS_AND_EMPTY- Variable exists but is emptyIN- Value is in listNOT_IN- Value is not in listIN_IGNORE_CASE- Value is in list, case insensitive (string only)NOT_IN_IGNORE_CASE- Value is not in list, case insensitive (string only)
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 |
| 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)
{
"status": "SUCCESS",
"deploymentResult": {
"success": true
}
}
Error Response (400 Bad Request)
{
"status": "FAILURE",
"resultMessage": "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"
}
]
}'
Permissions
- User must have
IDENTITY+MANAGEpermission in the project
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