Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.4",
"info": {
"title": "Fenergo Nebula External Data Command",
"description": "**External Data Command API**:\n\n<br> External Data Command API allows to import information about clients, their associated parties, documents from external providers. Use External Data Command API to perform the import action and External Data Query API to retrieve results. \n\n<br> **External Data Command API provides**:<br><ul><li> The ability to save providers configuration.<li> The ability to request documents from external data providers.<li> The ability to request data import of external data entry.<li> The ability to trigger search of External Data<li> The ability to request ultimate beneficial owners from external providers<li> The ability to save mapping configuration for external data providers.<li> The ability to subscribe and unsubscribe of ongoing monitoring.",
"version": "1.0"
},
"servers": [
{
"url": "/externaldatacommand"
}
],
"paths": {
"/api/aggregation/saveDataAggregationResults": {
"post": {
"tags": [
"Aggregation"
],
"summary": "Save Data Aggregation Results",
"description": "\nThis method will save Data Aggregation results.\n\nThe method will return the status.<br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataAccess<br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataAccess",
"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": "Save Data Aggregation Results request",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/DataAggregationHeaderDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"202": {
"description": "Success. Import request created"
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Not Found",
"type": "Error",
"errorCode": "Error Code"
}
]
}
}
}
},
"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/providersconfiguration/provider/{providerId}/status": {
"put": {
"tags": [
"Providers Configuration"
],
"summary": "Save Provider status",
"description": "<li>This method allows to save external provider status active/inactive</li>\n<li>It validates if the status can be changed, e.g. if any other provider is active at the same time.</li><br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataConfiguratorEdit<br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataConfiguratorEdit",
"operationId": "SaveProviderStatusV2",
"parameters": [
{
"name": "providerId",
"in": "path",
"description": "ID of External Data Provider",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"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": "Request with the boolean value of status to set.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/BooleanServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"202": {
"description": "Accepted"
},
"400": {
"description": "Bad Request",
"content": {
"application/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/providersconfiguration/provider/{providerId}/mapping/status": {
"put": {
"tags": [
"Providers Configuration"
],
"summary": "Save enabled entity type status",
"description": "<li>This method allows to save mapping status for specific entity type for provider - active/inactive</li><br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataConfiguratorEdit<br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataConfiguratorEdit",
"operationId": "SaveEntityTypeStatus",
"parameters": [
{
"name": "providerId",
"in": "path",
"description": "ID of External Data Provider",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"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": "Request with the entity type and boolean value of status to set.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/EntityTypeStatusDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"202": {
"description": "Accepted"
},
"400": {
"description": "Bad Request",
"content": {
"application/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/providersconfiguration/provider/{providerId}/configuration": {
"put": {
"tags": [
"Providers Configuration"
],
"summary": "Save External Data Provider Configuration",
"description": "<li>This method allows to save external provider configuration</li>\n<li>It includes saving version, ongoing monitoring status</li>\n<li>It also saves the provider authentication details - Encryption Key, Authentication Key</li>\n<li>It saves any custom configuration for specific provider on key/value basis</li><br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataConfiguratorEdit<br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataConfiguratorEdit",
"operationId": "SaveProviderConfigurationV2",
"parameters": [
{
"name": "providerId",
"in": "path",
"description": "ID of External Data Provider",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"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": "The request with provider configuration delivered as key/value collection",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ProviderConfigurationDtoV2ServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"202": {
"description": "Success. Provider added",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SaveProviderConfigurationResponseDtoV2ServiceResponse"
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"application/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/providersconfiguration/customProvider": {
"post": {
"tags": [
"Providers Configuration"
],
"summary": "Add custom provider",
"description": "<li>This method allows to add custom provider</li>\n<li>It includes saving provider name, url, authentication details, ongoing monitoring status</li><br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataConfiguratorCreate<br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataConfiguratorCreate",
"operationId": "AddCustomProviderV2",
"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": "Request with details of custom provider.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/CustomProviderDtoV2ServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"202": {
"description": "Success. Provider added",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AddCustomProviderResponseDtoV2ServiceResponse"
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"application/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/providersconfiguration/customProvider/{providerId}": {
"put": {
"tags": [
"Providers Configuration"
],
"summary": "Update custom provider",
"description": "<li>This method allows to update existing custom provider details</li>\n<li>It includes saving provider name, url, authentication data, ongoing monitoring status</li><br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataConfiguratorEdit<br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataConfiguratorEdit",
"operationId": "UpdateCustomProviderV2",
"parameters": [
{
"name": "providerId",
"in": "path",
"description": "ID of External Data Provider",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"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": "Request with details of custom provider.",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/CustomProviderDtoV2ServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"202": {
"description": "Success. Provider updated",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"application/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"
}
]
}
}
}
}
}
},
"delete": {
"tags": [
"Providers Configuration"
],
"summary": "Delete custom provider",
"description": "<br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataConfiguratorDelete<br /><br /><b>Required permissions:</b><br />Following permissions are required: ExternalDataConfiguratorDelete",
"operationId": "DeleteCustomProviderV2",
"parameters": [
{
"name": "providerId",
"in": "path",
"description": "ID of External Data Provider",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"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": {
"202": {
"description": "Success. Provider removed",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"application/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"
}
]
}
# --- truncated at 32 KB (217 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fenergo/refs/heads/main/openapi/fenergo-externaldatacommand-v1-0-openapi.json