Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.4",
"info": {
"title": "Fenergo Nebula Policy Logic Engine",
"description": "Logic Engine API is part of FenX eco-system to evaluate Policy Requirements by logic conditions.All the operations require valid access token obtained from Identity service.",
"version": "3.0"
},
"servers": [
{
"url": "/policylogicengine"
}
],
"paths": {
"/api/v3/cache/flush": {
"delete": {
"tags": [
"Cache"
],
"summary": "Allows clearing the Logic Engine API cache.\nThis is an maintenance endpoint and does not need to be used under normal circumstances.",
"description": "<ul>\n <li>Allows to flush Requirements evaluator cache</li>\n <li>Allows to flush Requirement sets evaluator cache</li>\n <li>Allows to flush DataGroups evaluator cache</li>\n</ul><br /><br /><b>Required permissions:</b><br />Following permissions are required: PolicyConfigurationDelete",
"parameters": [
{
"name": "clearRequirementsCache",
"in": "query",
"description": "If the Requirements cache should be flushed",
"schema": {
"type": "boolean"
},
"example": true
},
{
"name": "clearRequirementSetsCache",
"in": "query",
"description": "If the Requirement sets cache should be flushed",
"schema": {
"type": "boolean"
},
"example": true
},
{
"name": "clearDataGroupsCache",
"in": "query",
"description": "If the DataGroup cache should be flushed",
"schema": {
"type": "boolean"
},
"example": true
},
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"responses": {
"200": {
"description": "Success. Cache was flushed successfully.",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ClearCacheResponseDtoServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ClearCacheResponseDtoServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ClearCacheResponseDtoServiceResponse"
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
},
"410": {
"description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StringServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "This endpoint is obsolete and was terminated on yyyy-MM-dd",
"type": "Error",
"errorCode": "OBSOLETE_ENDPOINT"
}
]
}
}
}
}
}
}
},
"/api/v3/engine/evaluate-requirement-sets": {
"post": {
"tags": [
"Engine"
],
"summary": "Evaluate requirement set",
"description": "<ul>\n <li>Evaluates requirement set logic conditions.</li>\n <li>Returns the collection of matching requirement sets.</li>\n</ul><br /><br /><b>Required permissions:</b><br />Following permissions are required: PolicySearch",
"operationId": "EvaluateRequirementSetsV3",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"requestBody": {
"description": "Service request with entity data properties required for evaluation",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementSetsRequestV2DtoServiceRequest"
}
],
"description": "Service request data"
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementSetsRequestV2DtoServiceRequest"
}
],
"description": "Service request data"
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementSetsRequestV2DtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"200": {
"description": "Success. The list of evaluated requirement sets is returned",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EvaluateRequirementSetsResponseDtoIEnumerableServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EvaluateRequirementSetsResponseDtoIEnumerableServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EvaluateRequirementSetsResponseDtoIEnumerableServiceResponse"
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
},
"410": {
"description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StringServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "This endpoint is obsolete and was terminated on yyyy-MM-dd",
"type": "Error",
"errorCode": "OBSOLETE_ENDPOINT"
}
]
}
}
}
}
}
}
},
"/api/v3/engine/evaluate-requirements": {
"post": {
"tags": [
"Engine"
],
"summary": "Evaluate requirement",
"description": "<ul>\n <li>Evaluates requirement logic conditions.</li>\n <li>Returns the collection of matching requirements.</li>\n</ul><br /><br /><b>Required permissions:</b><br />Following permissions are required: PolicySearch",
"operationId": "EvaluateV3",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"requestBody": {
"description": "Service request with key-value data required for evaluation",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementsRequestV3DtoServiceRequest"
}
],
"description": "Service request data"
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementsRequestV3DtoServiceRequest"
}
],
"description": "Service request data"
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementsRequestV3DtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"200": {
"description": "Success. The list of evaluated requirements is returned",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/RequirementDtoListServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/RequirementDtoListServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/RequirementDtoListServiceResponse"
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
},
"410": {
"description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StringServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "This endpoint is obsolete and was terminated on yyyy-MM-dd",
"type": "Error",
"errorCode": "OBSOLETE_ENDPOINT"
}
]
}
}
}
}
}
}
},
"/api/v3/engine/evaluate-requirements-in-scope": {
"post": {
"tags": [
"Engine"
],
"summary": "Evaluate requirements in scope",
"description": "\nReturns evaluated requirements that are in scope for a given parameters.<br /><br /><b>Required permissions:</b><br />Following permissions are required: PolicySearch",
"operationId": "EvaluateRequirementsInScope",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"requestBody": {
"description": "Evaluate requirements in scope request with a set of criteria to filter requirements and evaluate\nconditions.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementsInScopeV2RequestDtoServiceRequest"
}
],
"description": "Service request data"
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementsInScopeV2RequestDtoServiceRequest"
}
],
"description": "Service request data"
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateRequirementsInScopeV2RequestDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"200": {
"description": "Success. List of requirements is returned.",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/RequirementDtoListServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/RequirementDtoListServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/RequirementDtoListServiceResponse"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Not Found",
"type": "Error",
"errorCode": "Error Code"
}
]
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values.",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
},
"410": {
"description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StringServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "This endpoint is obsolete and was terminated on yyyy-MM-dd",
"type": "Error",
"errorCode": "OBSOLETE_ENDPOINT"
}
]
}
}
}
}
}
}
},
"/api/v3/engine/evaluate-all-requirements": {
"post": {
"tags": [
"Engine"
],
"summary": "Evaluate all requirements",
"description": "\nRecommended way to get all evaluated requirements (conditional and not) for a given parameters.\n Works similar to /evaluate-requirements-in-scope but uses a different response schema enhanced with evaluated\n data group fields for each item.<br /><br /><b>Required permissions:</b><br />Following permissions are required: PolicySearch",
"operationId": "EvaluateAllRequirements",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"requestBody": {
"description": "Evaluate all requirements request with a set of criteria to filter requirements and evaluate\nconditions.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateAllRequirementsRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateAllRequirementsRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateAllRequirementsRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"200": {
"description": "Success. Response is returned.",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EvaluatedAllRequirementsResponseDtoServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EvaluatedAllRequirementsResponseDtoServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EvaluatedAllRequirementsResponseDtoServiceResponse"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Not Found",
"type": "Error",
"errorCode": "Error Code"
}
]
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values.",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"403": {
"description": "Access to resource is forbidden.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Access denied. Following permissions are required: Permission1, Permission2",
"type": "Forbidden",
"errorCode": "Error Code"
}
]
}
}
}
},
"500": {
"description": "Internal server exception. Please, contact your provider.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "Internal server exception. Please, contact your provider.",
"type": "Error",
"errorCode": "INTERNAL_SERVER_ERROR"
}
]
}
}
}
},
"410": {
"description": "Endpoint marked as deprecated was terminated. This response will be present only if the endpoint was marked as deprecated and has reached the sunset date. During the deprecation period, the API will include additional 'sunset' and 'deprecation' headers.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StringServiceResponse"
},
"example": {
"data": null,
"messages": [
{
"message": "This endpoint is obsolete and was terminated on yyyy-MM-dd",
"type": "Error",
"errorCode": "OBSOLETE_ENDPOINT"
}
]
}
}
}
}
}
}
},
"/api/v3/engine/evaluate-all-requirements/read-only": {
"post": {
"tags": [
"Engine"
],
"summary": "Evaluate all requirements in read-only mode.\nA lighter version with view only properties needed in EPP",
"description": "<br /><br /><b>Required permissions:</b><br />Following permissions are required: PolicySearch",
"operationId": "EvaluateAllRequirementsReadOnly",
"parameters": [
{
"name": "X-TENANT-ID",
"in": "header",
"description": "The UiD of the tenant representing organization",
"required": true,
"schema": {
"type": "string"
},
"example": "b11f8be3-f29b-4959-8964-956d4af7c468"
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateAllRequirementsReadOnlyRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateAllRequirementsReadOnlyRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateAllRequirementsReadOnlyRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"200": {
"description": "Success. Response is returned.",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EvaluatedAllRequirementsReadOnlyResponseDtoServiceResponse"
}
},
"application/json": {
"schema": {
# --- truncated at 32 KB (273 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fenergo/refs/heads/main/openapi/fenergo-policylogicengine-v3-0-openapi.json