Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.1",
"info": {
"title": "Fenergo Nebula Event Ingress",
"description": "## Purpose of the API\n\nThe purpose of the Event Ingress API is to is to provide an endpoint for third party applications to send events to, which will allow Fen-X to process entity related events.\n\nProcessing of an event will trigger the correspondent journey depending on the event type and sub type received.\r\n\r\n\r\n\r\n",
"version": "1.0"
},
"servers": [
{
"url": "/eventingress"
}
],
"paths": {
"/v1/business-process-types": {
"get": {
"tags": [
"BusinessProcesses"
],
"summary": "List all available business process types.",
"description": "\nThis method will return a list of available business process types.",
"operationId": "ListBusinessProcessTypes",
"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"
}
],
"responses": {
"200": {
"description": "Success. The list of business process types is returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BusinessProcessTypeDtoListServiceResponse"
}
}
}
},
"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"
}
]
}
}
}
}
}
}
},
"/v1/events/{eventId}": {
"get": {
"tags": [
"Events"
],
"summary": "Get an ingress event with related entities.",
"description": "\nThis method will return an Ingress Event based on eventId.",
"operationId": "GetEvent",
"parameters": [
{
"name": "eventId",
"in": "path",
"description": "Id of an event",
"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": {
"200": {
"description": "successfully return desired event's data.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetEventResponseServiceResponse"
}
}
}
},
"400": {
"description": "The request has missing/invalid values.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"403": {
"description": "The service is disabled."
},
"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"
}
]
}
}
}
}
}
}
},
"/v1/events-by-filter": {
"post": {
"tags": [
"Events"
],
"summary": "Get events within a date range (Obsolete).",
"description": "<b>This endpoint is obsolete and was terminated on 2026-02-01. Please use '/v1/events-by-filter-paginated' endpoint instead.</b><br />\nThis method will return events that occurred between the provided start and end dates.",
"operationId": "GetEventsByFilter",
"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": "Fenergo.Nebula.EventIngress.Ingress.Api.V1.Models.GetEventsByFilterRequest class that represents get events by filter request.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetEventsByFilterRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successfully return desired events' data.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetEventSimpleResponseListServiceResponse"
}
}
}
},
"400": {
"description": "The request has missing/invalid values.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"403": {
"description": "The service is disabled."
},
"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"
}
]
}
}
}
}
},
"deprecated": true
}
},
"/v1/events-by-filter-paginated": {
"post": {
"tags": [
"Events"
],
"summary": "Get events within a date range.",
"description": "\nThis method will return events that occurred between the provided start and end dates.",
"operationId": "GetEventsByFilterPaginated",
"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": "Fenergo.Nebula.EventIngress.Ingress.Api.V1.Models.GetEventsByFilterRequest class that represents get events by filter request.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetEventsByFilterRequest"
}
}
}
},
"responses": {
"200": {
"description": "Successfully return desired events' data.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetEventSimpleResponsePaginatedResponseServiceResponse"
}
}
}
},
"400": {
"description": "The request has missing/invalid values.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"403": {
"description": "The service is disabled."
},
"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"
}
]
}
}
}
}
}
}
},
"/v1/events/{eventId}/messageUrl": {
"get": {
"tags": [
"Events"
],
"summary": "Get processed or received message of ingress event.",
"description": "\nThis method will return an Ingress Event's S3 message.\r\n\n\r\n <strong>Warning:</strong> Method not to be used in any integrations. It's purpose is to facilitate manual investigations via Integration Hub. The file contents/schema it returns is expected to change overtime as new functionality is released.",
"operationId": "GetEventMessageUrl",
"parameters": [
{
"name": "eventId",
"in": "path",
"description": "Id of an event",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "type",
"in": "query",
"description": "Type of an event's message",
"schema": {
"$ref": "#/components/schemas/EventMessageType"
}
},
{
"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": "successfully return desired event's message.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/StringServiceResponse"
}
}
}
},
"400": {
"description": "The request has missing/invalid values.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"403": {
"description": "The service is disabled."
},
"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"
}
]
}
}
}
}
}
}
},
"/v1/events": {
"post": {
"tags": [
"Events"
],
"summary": "Send an ingress event.",
"description": "\nThis method will publish the event to event bridge in order to communicate with Business Process.",
"operationId": "SendEvent",
"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": "Fenergo.Nebula.EventIngress.Ingress.Commands.Dto.Command.SendEventRequestDto class that represents send event request.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SendEventRequestDto"
},
"examples": {
"Create Entity Request": {
"value": {"eventType":"externaldata","eventSubtype":"createentity","correlationId":"ad67fe8e-09de-4aa2-997f-7c0a5a63c507","source":"Test Organization","payload":{"type":"Individual","targetEntity":"Related Party","properties":{"firstName":{"type":"Single","value":"Tom"},"dateOfBirth":{"type":"Single","value":"2021-07-15"},"address":{"type":"Collection","dataGroupId":"674ccef1-cfdc-46af-97f8-340b24ab7f43","collections":{"54a25d24-1a4b-45c6-a5b4-980e5d3a1df5":{"properties":{"country":"Spain","city":"Madrid","street":"C. de Sevilla"}},"93468632-1a9e-4ad0-b2e1-c5ec0f65d7b2":{"properties":{"country":"Spain","city":"Barcelona","street":"Carrer de Girona"}}}}},"dataSources":{"entityDataMetadata":{"entityType":"string"},"eventIngress":{"eventType":"string","eventSubtype":"string"},"changedFields":{"changedFields":[{"key":"string"}]},"relatedClient":{"properties":{"firstName":{"type":"Single","value":"Tom"},"dateOfBirth":{"type":"Single","value":"2021-07-15"},"address":{"type":"Collection","dataGroupId":"674ccef1-cfdc-46af-97f8-340b24ab7f43","collections":{"54a25d24-1a4b-45c6-a5b4-980e5d3a1df5":{"properties":{"country":"Spain","city":"Madrid","street":"C. de Sevilla"}},"93468632-1a9e-4ad0-b2e1-c5ec0f65d7b2":{"properties":{"country":"Spain","city":"Barcelona","street":"Carrer de Girona"}}}}}}},"policyJurisdiction":"Global","policyJurisdictions":["string"],"alternateId":"1124efd2-3423-40f5-9bdb-fae66c7fa88a","category":["string"],"accessLayers":{"geographic":["Global"],"businessRelated":["Enterprise"]}}}
},
"Update Entity Request": {
"value": {"eventType":"externaldata","eventSubtype":"updateentity","entityId":"af2c0eca-bf1c-460d-afc0-046f61233d4f","correlationId":"29c7aebf-fcb2-4016-af91-53033bd4f3f4","source":"Test Organization","payload":{"type":"Individual","targetEntity":"Related Party","properties":{"firstName":{"type":"Single","value":"Tom"},"dateOfBirth":{"type":"Single","value":"2021-07-15"},"address":{"type":"Collection","dataGroupId":"674ccef1-cfdc-46af-97f8-340b24ab7f43","collections":{"54a25d24-1a4b-45c6-a5b4-980e5d3a1df5":{"properties":{"country":"Spain","city":"Madrid","street":"C. de Sevilla"}},"93468632-1a9e-4ad0-b2e1-c5ec0f65d7b2":{"properties":{"country":"Spain","city":"Barcelona","street":"Carrer de Girona"}}}}},"dataSources":{"entityDataMetadata":{"entityType":"string"},"eventIngress":{"eventType":"string","eventSubtype":"string"},"changedFields":{"changedFields":[{"key":"string"}]},"relatedClient":{"properties":{"firstName":{"type":"Single","value":"Tom"},"dateOfBirth":{"type":"Single","value":"2021-07-15"},"address":{"type":"Collection","dataGroupId":"674ccef1-cfdc-46af-97f8-340b24ab7f43","collections":{"54a25d24-1a4b-45c6-a5b4-980e5d3a1df5":{"properties":{"country":"Spain","city":"Madrid","street":"C. de Sevilla"}},"93468632-1a9e-4ad0-b2e1-c5ec0f65d7b2":{"properties":{"country":"Spain","city":"Barcelona","street":"Carrer de Girona"}}}}}}},"policyJurisdiction":"Global","policyJurisdictions":["string"],"alternateId":"1124efd2-3423-40f5-9bdb-fae66c7fa88a","category":["string"],"accessLayers":{"geographic":["Global"],"businessRelated":["Enterprise"]}}}
},
"Create Alert": {
"value": {"eventType":"transactionmonitoring","eventSubtype":"createalert","entityId":"c9d4fe5a-97b5-45b1-a7d4-1b4e0b4c2c57","correlationId":"fcf2f6e7-da52-4625-92f8-d9adfb6ddf71","source":"Test Organization","payload":{"externalId":"c511988c-4dba-41fb-977c-ddc997e8c606","hashId":"d3e0fb42-58ad-4e39-8293-5271222bd34b","creationDate":"2025-01-01T00:00:00","type":"AML|ENT|FRD|EPA","mainEntityId":"6476c1f7-537f-4965-8f6d-b989fe17c185","transactionIds":["7581e2ab-4ac7-4f0c-8569-0504ba008b9f"],"ruleId":"rule-xyz","ruleName":"rule-xyz-name","ruleDescription":"rule-description-xyz","ruleVersion":"0","source":"TM|External","alertScore":"10"}}
},
"Retrigger Alert": {
"value": {"eventType":"transactionmonitoring","eventSubtype":"retriggeralert","correlationId":"966c7801-917e-4d13-92fd-6623bcb5759c","source":"Test Organization","payload":{"alertId":"9d117a2c-ecb2-478d-ae84-6dec3dd5ece1"}}
}
}
}
}
},
"responses": {
"202": {
"description": "The request has been accepted for further processing.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SendEventResponseServiceResponse"
}
}
}
},
"400": {
"description": "The request has missing/invalid values.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"403": {
"description": "The service is disabled."
},
"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"
}
]
}
}
}
}
}
}
},
"/v1/events/types": {
"get": {
"tags": [
"Events"
],
"summary": "Request event types.",
"description": "<b>This endpoint is obsolete and was terminated on 2024-04-30. Please use '/v1/event-types' endpoint instead.</b><br />\nThis method will return a list of allowed event types with event subtypes.",
"operationId": "GetEventTypes",
"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"
}
],
"responses": {
"200": {
"description": "Success. The list of event types with event subtypes is returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetEventTypesResponseServiceResponse"
}
}
}
},
"403": {
"description": "The service is disabled."
},
"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"
}
]
}
}
}
}
},
"deprecated": true
}
},
"/v1/event-types": {
"get": {
"tags": [
"EventTypes"
],
"summary": "List all available event types, event subtypes, and event subtypes' business process mappings.",
"description": "\nThis method will return a list of allowed event types with event subtypes.",
"operationId": "ListEventTypes",
"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"
}
],
"responses": {
"200": {
"description": "Success. The list of event types with event subtypes is returned.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EventTypeDtoListServiceResponse"
}
}
}
},
"403": {
"description": "The service is disabled."
},
"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"
}
]
}
}
}
}
}
},
"post": {
"tags": [
"EventTypes"
],
"summary": "Add a new event type, event subtypes, and map event subtypes to business processes.",
"description": "\nThis method creates a new even type and event subtypes, and maps provided event subtypes to business processes.",
"operationId": "AddEventType",
"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": "Fenergo.Nebula.EventIngress.Ingress.Api.V1.Models.AddEventTypeRequest class that represents add event type request.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AddEventTypeRequest"
}
}
}
},
"responses": {
"400": {
"description": "The request has missing/invalid values.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"200": {
"description": "The event type and event subtypes are created successfully."
},
"409": {
"description": "The event type or subtype already exists.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"403": {
"description": "The service is disabled."
},
"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"
}
]
}
}
}
}
}
},
"put": {
"tags": [
"EventTypes"
],
"summary": "Update an existing event type, event subtypes, and event subtypes' business process mappings.",
"description": "\nThis method updates an existing even type and event subtypes.",
"operationId": "UpdateEventType",
"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": "Fenergo.Nebula.EventIngress.Ingress.Api.V1.Models.UpdateEventTypeRequest class that represents update event type request.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateEventTypeRequest"
}
}
}
},
"responses": {
"400": {
"description": "The request has missing/invalid values.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"200": {
"description": "The event type and event subtypes are updated successfully."
},
"409": {
"description": "Conflict",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"404": {
"description": "The event type doesn't exist.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"403": {
"description": "The service is disabled."
},
"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"
}
]
}
}
}
}
}
}
},
"/v1/event-types/{eventType}": {
"delete": {
"tags": [
"EventTypes"
],
"summary": "Delete an existing event type, event subtypes, and event subtypes' business process mappings.",
"description": "\nThis method deletes an existing even type and event subtypes.",
"operationId": "DeleteEventType",
"parameters": [
{
"name": "eventType",
"in": "path",
"description": "The key of the event type to be deleted.",
"required": true,
"schema": {
"type": "string"
}
},
{
"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": {
"400": {
"description": "The request has missing/invalid values.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"200": {
"description": "The event type and event subtypes are updated successfully."
},
"404": {
"description": "The event type doesn't exist.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceResponse"
}
}
}
},
"403": {
# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fenergo/refs/heads/main/openapi/fenergo-eventingress-v1-0-openapi.json