Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.4",
"info": {
"title": "Fenergo Nebula Product Policy Logic Engine",
"description": "Logic Engine API is part of FenX eco-system to evaluate Product Policy Requirements by logic conditions.All the operations require valid access token obtained from Identity service.",
"version": "1.0"
},
"servers": [
{
"url": "/productpolicylogicengine"
}
],
"paths": {
"/api/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: ProductConfigurationDelete",
"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/engine/evaluate-product-requirement-sets": {
"post": {
"tags": [
"Engine"
],
"summary": "Evaluate product requirement set",
"description": "<ul>\n <li>Evaluates product requirement set logic conditions.</li>\n <li>Returns the collection of matching product requirement sets.</li>\n</ul><br /><br /><b>Required permissions:</b><br />At least one of the following permissions is required: ProductConfigurationSearch, ProductConfigurationAccess",
"operationId": "EvaluateProductRequirementSets",
"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/EvaluateProductRequirementSetsRequestDtoServiceRequest"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateProductRequirementSetsRequestDtoServiceRequest"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateProductRequirementSetsRequestDtoServiceRequest"
}
]
}
}
}
},
"responses": {
"200": {
"description": "Success. The list of evaluated product requirement sets is returned",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EvaluateProductRequirementSetsResponseDtoIEnumerableServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EvaluateProductRequirementSetsResponseDtoIEnumerableServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EvaluateProductRequirementSetsResponseDtoIEnumerableServiceResponse"
}
}
}
},
"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/engine/evaluate-product-requirements": {
"post": {
"tags": [
"Engine"
],
"summary": "Evaluate product requirement",
"description": "<ul>\n <li>Evaluates product requirement logic conditions for product domain.</li>\n <li>Returns the collection of matching product requirements.</li>\n</ul><br /><br /><b>Required permissions:</b><br />At least one of the following permissions is required: ProductConfigurationSearch, ProductConfigurationAccess",
"operationId": "EvaluateProduct",
"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/EvaluateProductRequirementsRequestDtoServiceRequest"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateProductRequirementsRequestDtoServiceRequest"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateProductRequirementsRequestDtoServiceRequest"
}
]
}
}
}
},
"responses": {
"200": {
"description": "Success. The list of evaluated product requirements is returned",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProductRequirementDtoListServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProductRequirementDtoListServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProductRequirementDtoListServiceResponse"
}
}
}
},
"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/engine/evaluate-data-group-fields": {
"post": {
"tags": [
"Engine"
],
"summary": "Evaluate data group fields",
"description": "<ul>\n <li>Evaluates data group field logic conditions.</li>\n <li>Returns the collection of matching data group fields.</li>\n</ul><br /><br /><b>Required permissions:</b><br />At least one of the following permissions is required: ProductConfigurationSearch, ProductConfigurationAccess",
"operationId": "EvaluateDataGroupFields",
"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/EvaluateDataGroupFieldsRequestDtoServiceRequest"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateDataGroupFieldsRequestDtoServiceRequest"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateDataGroupFieldsRequestDtoServiceRequest"
}
]
}
}
}
},
"responses": {
"200": {
"description": "Success. The list of evaluated data group fields is returned",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/DataGroupFieldDtoIEnumerableServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/DataGroupFieldDtoIEnumerableServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/DataGroupFieldDtoIEnumerableServiceResponse"
}
}
}
},
"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/engine/evaluate-products": {
"post": {
"tags": [
"Engine"
],
"summary": "Evaluate products",
"description": "<ul>\n <li>Evaluates products using scoping rule.</li>\n <li>Returns the collection of product ids that matched the scoping rule.</li>\n</ul><br /><br /><b>Required permissions:</b><br />At least one of the following permissions is required: ProductConfigurationSearch, ProductConfigurationAccess",
"operationId": "EvaluateProducts",
"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/EvaluateProductsRequestDtoServiceRequest"
}
]
}
},
"text/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateProductsRequestDtoServiceRequest"
}
]
}
},
"application/*+json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EvaluateProductsRequestDtoServiceRequest"
}
]
}
}
}
},
"responses": {
"200": {
"description": "Success. The list of evaluated product ids is returned",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/EvaluateProductsResponseDtoServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/EvaluateProductsResponseDtoServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/EvaluateProductsResponseDtoServiceResponse"
}
}
}
},
"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"
}
]
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"AccessLayerDto": {
"type": "object",
"properties": {
"geographic": {
"type": "array",
"items": {
"type": "string"
},
"description": "Collection of geographic access layers e.g. [\"Global\"]",
"nullable": true
},
"businessRelated": {
"type": "array",
"items": {
"type": "string"
},
"description": "Collection of business related access layers e.g. [\"Global\"]",
"nullable": true
}
},
"additionalProperties": false,
"description": "DTO representing associated access layers"
},
"AccountRelatedFundDto": {
"type": "object",
"properties": {
"properties": {
"allOf": [
{
"$ref": "#/components/schemas/PropertiesDto"
}
],
"nullable": true
}
},
"additionalProperties": false
},
"AccountRelatedFundsDataSource": {
"type": "object",
"properties": {
"dataSource": {
"type": "string",
"nullable": true,
"readOnly": true
},
"accountRelatedFunds": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AccountRelatedFundDto"
},
"nullable": true
}
},
"additionalProperties": false
},
"AlertAssessmentDataSource": {
"type": "object",
"properties": {
"dataSource": {
"type": "string",
"nullable": true,
"readOnly": true
},
"assessments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AlertAssessmentDto"
},
"nullable": true
},
"lastAssessment": {
"allOf": [
{
"$ref": "#/components/schemas/AlertAssessmentDto"
}
],
"nullable": true
},
"lastAssessmentOutcome": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"AlertAssessmentDto": {
"type": "object",
"properties": {
"category": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"AlertDataSource": {
"type": "object",
"properties": {
"dataSource": {
"type": "string",
"nullable": true,
"readOnly": true
},
"source": {
"type": "string",
"nullable": true
},
"type": {
"type": "string",
"nullable": true
},
"attribute": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"AutoCreditAssessmentDataSource": {
"type": "object",
"properties": {
"dataSource": {
"type": "string",
"nullable": true,
"readOnly": true
},
"autoCreditAssessments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AutoCreditAssessmentDto"
},
"nullable": true
}
},
"additionalProperties": false
},
"AutoCreditAssessmentDto": {
"type": "object",
"properties": {
"properties": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/PropertyDto"
},
# --- truncated at 32 KB (155 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fenergo/refs/heads/main/openapi/fenergo-productpolicylogicengine-v1-0-openapi.json