Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.4",
"info": {
"title": "Fenergo Nebula Journey Command",
"description": "**Journey Command API**:\n\n<br> Journey Command API provides both configurational and operational methods related to the client Journeys. Use the Journey Command API to create and manage Journey Schemas and Journey Instances. Use the Command Query API to retrieve Journey Schema and Journey Instance aggregates.\n\n<br> **Journey Command API provides**:<br><ul><li> The ability to create, update and delete Journey Schemas.</li><li> The ability to manage versions of Journey Schemas - that include creating new versions, archiving existing versions, submiting drafts for approval and signing or rejecting versions.</li><li> The ability to create a new Journey Instance.</li><li> The ability to manage the Journey Instance: complete task/condition/review or cancel the Journey Instance.</li></ul>",
"version": "1.0"
},
"servers": [
{
"url": "/journeycommand"
}
],
"paths": {
"/api/configuration": {
"put": {
"tags": [
"JourneyConfiguration"
],
"summary": "Update journey configuration",
"description": "\nUpdates the configuration<br /><br /><b>Required permissions:</b><br />Following permissions are required: JourneyConfigurationEdit",
"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"
},
{
"name": "X-CORRELATION-ID",
"in": "header",
"description": "The UiD of the correlation id",
"schema": {
"type": "string"
},
"example": "fee5b5f5-b220-4fef-ba38-bf802b98d74d"
}
],
"requestBody": {
"description": "Update configuration request",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/UpdateJourneyConfigurationRequestDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"202": {
"description": "Success. Configuration updated"
},
"409": {
"description": "Conflict saving changes in expected version",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "There are conflicts that cannot be resolved automatically, get latest and apply your changes",
"type": "Error",
"errorCode": "CONFLICT"
}
]
}
}
}
},
"400": {
"description": "Bad Request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"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/journey-instance": {
"post": {
"tags": [
"JourneyInstance"
],
"summary": "Create journey instance",
"description": "\nCreates a new journey instance. The request must contain journey schema id that is currently published and in\n effect.<br /><br /><b>Required permissions:</b><br />Following permissions are required: JourneyCreate",
"operationId": "CreateJourney",
"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"
},
{
"name": "X-CORRELATION-ID",
"in": "header",
"description": "The UiD of the correlation id",
"schema": {
"type": "string"
},
"example": "fee5b5f5-b220-4fef-ba38-bf802b98d74d"
}
],
"requestBody": {
"description": "Create journey instance request",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/CreateJourneyInstanceDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"202": {
"description": "Success. Journey instance created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/JourneyInstanceCreatedDtoServiceResponse"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Not Found. Journey schema with given id does not exist",
"type": "Error",
"errorCode": "Error Code"
}
]
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"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/journey-instance/{journeyInstanceId}/abort": {
"put": {
"tags": [
"JourneyInstance"
],
"summary": "Cancel journey instance",
"description": "\nCancels a currently in progress journey instance and rejects the associated entity draft.<br /><br /><b>Required permissions:</b><br />Following permissions are required: JourneyCancel",
"operationId": "AbortJourneyInstance",
"parameters": [
{
"name": "journeyInstanceId",
"in": "path",
"description": "Journey instance id to cancel",
"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"
},
{
"name": "X-CORRELATION-ID",
"in": "header",
"description": "The UiD of the correlation id",
"schema": {
"type": "string"
},
"example": "fee5b5f5-b220-4fef-ba38-bf802b98d74d"
}
],
"requestBody": {
"description": "Abort journey instance details (Optional)",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AbortJourneyDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"202": {
"description": "Success. Journey instance canceled"
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Not Found. Journey instance with given id does not exist",
"type": "Error",
"errorCode": "Error Code"
}
]
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"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/journey-instance/batch/abort": {
"put": {
"tags": [
"JourneyInstance"
],
"summary": "Batch cancel journey instances",
"description": "\nCancels all currently in progress journey instance and rejects the associated entity draft.<br /><br /><b>Required permissions:</b><br />Following permissions are required: JourneyCancel",
"operationId": "BatchAbortJourneyInstances",
"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"
},
{
"name": "X-CORRELATION-ID",
"in": "header",
"description": "The UiD of the correlation id",
"schema": {
"type": "string"
},
"example": "fee5b5f5-b220-4fef-ba38-bf802b98d74d"
}
],
"requestBody": {
"description": "Abort journey instances request",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AbortMultipleJourneysDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"202": {
"description": "Success. Journey instances canceled"
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Not Found. Journey instance with given id does not exist",
"type": "Error",
"errorCode": "Error Code"
}
]
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"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/journey-instance/{journeyInstanceId}/task/complete": {
"put": {
"tags": [
"JourneyInstance"
],
"summary": "Complete journey instance task",
"description": "<ul>\n <li>Completes a currently in progress task.</li>\n <li>\n If the task is not the last one in given process, the next task will be started, otherwise next process\n will be started.\n </li>\n <li>\n If all the processes within stage finished, the next stage will be started. If it's the last stage, the\n Journey Instance will complete.\n </li>\n</ul><br /><br /><b>Required permissions:</b><br />Following permissions are required: JourneyEdit",
"operationId": "CompleteTask",
"parameters": [
{
"name": "taskId",
"in": "query",
"description": "Task id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "journeyInstanceId",
"in": "path",
"description": "Journey instance id",
"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"
},
{
"name": "X-CORRELATION-ID",
"in": "header",
"description": "The UiD of the correlation id",
"schema": {
"type": "string"
},
"example": "fee5b5f5-b220-4fef-ba38-bf802b98d74d"
}
],
"responses": {
"202": {
"description": "Success. Journey instance task completed"
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Not Found. Journey instance/task with given id does not exist",
"type": "Error",
"errorCode": "Error Code"
}
]
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"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/journey-instance/{journeyInstanceId}/task/{taskId}/reviewOutcome": {
"put": {
"tags": [
"JourneyInstance"
],
"summary": "Save review outcome",
"description": "\nCompletes review outcome task.<br /><br /><b>Required permissions:</b><br />Following permissions are required: JourneyEdit",
"operationId": "SaveReviewOutcome",
"parameters": [
{
"name": "journeyInstanceId",
"in": "path",
"description": "Journey instance id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "taskId",
"in": "path",
"description": "Task id",
"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"
},
{
"name": "X-CORRELATION-ID",
"in": "header",
"description": "The UiD of the correlation id",
"schema": {
"type": "string"
},
"example": "fee5b5f5-b220-4fef-ba38-bf802b98d74d"
}
],
"requestBody": {
"description": "Save review outcome task request",
"content": {
"application/json": {
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/ReviewOutcomeDtoServiceRequest"
}
],
"description": "Service request data"
}
}
}
},
"responses": {
"202": {
"description": "Success. Review outcome task completed"
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Not Found. Journey instance/task with given id does not exist",
"type": "Error",
"errorCode": "Error Code"
}
]
}
}
}
},
"400": {
"description": "Bad request. The request has missing/invalid values",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"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"
}
]
}
}
# --- truncated at 32 KB (400 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fenergo/refs/heads/main/openapi/fenergo-journeycommand-v1-0-openapi.json