Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.1",
"info": {
"title": "Fenergo Nebula Localisation Command",
"description": "**Localisation Command API**:\n\n<br> Localisation Command API provides both configurational and operational methods related to the client localisations. Use the Localisation Command API to create and update new and existing localisations and versions. Use the Query API to retrieve localisations and aggregates.\n\n<br> **Localisation Command API provides**:<br><ul><li> The ability to create, update and delete Localisations.</li><li> The ability to manage versions of Localisations - Including creating new versions, archiving existing versions, submiting drafts for approval and signing or rejecting versions.</li></ul>",
"version": "1.0"
},
"servers": [
{
"url": "/localisationcommand"
}
],
"paths": {
"/api/localisation": {
"post": {
"tags": [
"Localisation"
],
"summary": "Create a new Localisation",
"description": "\nThis method creates new Localisations with a first draft version.\r\n\nThe new version initializes with the DTO data and has the default status of Draft\r\n and the Author as the only required Signee.<br /><br /><b>Required permissions:</b><br />Following permissions are required: LocalisationEdit",
"operationId": "CreateLocalisation",
"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": {
"$ref": "#/components/schemas/LocalisationDtoServiceRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/LocalisationDtoServiceRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/LocalisationDtoServiceRequest"
}
}
}
},
"responses": {
"202": {
"description": "Accepted for processing",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/LocalisationDtoServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/LocalisationDtoServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/LocalisationDtoServiceResponse"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
},
"text/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/localisation/{localisationId}": {
"put": {
"tags": [
"Localisation"
],
"summary": "Update Localisations Settings.",
"description": "\nUpdate the settings of a localisation, specifically the IsDefaultLocalisation flag.\r\n\nTo convert to a default localisation, set IsDefaultLocalisation to (true), and to revert to a standard localisation set it to (false)\r\n\nThis affect to all versions of a Localisation<br /><br /><b>Required permissions:</b><br />Following permissions are required: LocalisationEdit",
"operationId": "UpdateLocalisation",
"parameters": [
{
"name": "localisationId",
"in": "path",
"description": "The Id of the existing model",
"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": "ServiceRequest with the options",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateLocalisationDto"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateLocalisationDto"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateLocalisationDto"
}
}
}
},
"responses": {
"202": {
"description": "Accepted for processing"
},
"400": {
"description": "Invalid request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Localisation with given ID does not exists",
"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"
}
]
}
}
}
}
}
},
"delete": {
"tags": [
"Localisation"
],
"summary": "Delete Localisation and all it's versions",
"description": "\nThis method deletes an existing Localisation as well as all its versions.<br /><br /><b>Required permissions:</b><br />Following permissions are required: LocalisationDelete",
"operationId": "DeleteLocalisation",
"parameters": [
{
"name": "localisationId",
"in": "path",
"description": "Localisation 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"
}
],
"responses": {
"202": {
"description": "Accepted for processing"
},
"400": {
"description": "Invalid request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Localisation with given ID does not exists",
"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"
}
]
}
}
}
}
}
},
"post": {
"tags": [
"Localisation"
],
"summary": "Create a new Version for an existing Localisation",
"description": "\nThis method creates a new Localisation version.\r\n\nThe new version initializes with the DTO data. It is assigned the next available version number,\r\n the default status of Draft and the Author as the only required Signee.<br /><br /><b>Required permissions:</b><br />Following permissions are required: LocalisationEdit",
"operationId": "CreateLocalisationVersion",
"parameters": [
{
"name": "localisationId",
"in": "path",
"description": "The Id of the existing model",
"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": "ServiceRequest with the new version data",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LocalisationDtoServiceRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/LocalisationDtoServiceRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/LocalisationDtoServiceRequest"
}
}
}
},
"responses": {
"202": {
"description": "Accepted for processing",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/LocalisationDtoServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/LocalisationDtoServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/LocalisationDtoServiceResponse"
}
}
}
},
"400": {
"description": "Invalid request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Localisation with given ID does not exists",
"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/localisation/{localisationId}/version/{versionNumber}": {
"put": {
"tags": [
"Localisation"
],
"summary": "Updates an existing Version of a Localisation",
"description": "\nThis method updates an existing Localisation version.\r\n\nOnly Draft and Rejected versions are allowed to be updated.<br /><br /><b>Required permissions:</b><br />Following permissions are required: LocalisationEdit",
"operationId": "UpdateLocalisationVersion",
"parameters": [
{
"name": "localisationId",
"in": "path",
"description": "The Id of the existing model",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "versionNumber",
"in": "path",
"description": "Number of version to update",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"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": "ServiceRequest with the updated version data",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateLocalisationVersionDtoServiceRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateLocalisationVersionDtoServiceRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateLocalisationVersionDtoServiceRequest"
}
}
}
},
"responses": {
"202": {
"description": "Accepted for processing"
},
"400": {
"description": "Invalid request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Localisation with given ID does not exists",
"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"
}
]
}
}
}
}
}
},
"delete": {
"tags": [
"Localisation"
],
"summary": "Delete an existing Version of a Localisation",
"description": "\nThis method deletes the selected version of an existing Localisation.\r\n If the version is the last one, then the version number of it will become the next available one for the model.\r\n Otherwise, the version number will be flagged as Deleted and become unavailable.<br /><br /><b>Required permissions:</b><br />Following permissions are required: LocalisationDelete",
"operationId": "DeleteLocalisationVersion",
"parameters": [
{
"name": "localisationId",
"in": "path",
"description": "Localisation Id",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "versionNumber",
"in": "path",
"description": "Version number to delete",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"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": "Accepted for processing"
},
"400": {
"description": "Invalid request",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ValidationErrorModelListServiceResponse"
}
}
}
},
"404": {
"description": "Resource not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectServiceResponse"
},
"example": {
"data": { },
"messages": [
{
"message": "Localisation with given ID does not exists",
"type": "Error",
"errorCode": "Error Code"
}
]
}
}
}
},
"401": {
"description": "User is not authorized to perform this request",
"content": {
"application/json": {
"example": {
"message": "Unauthorized"
}
}
}
},
"403": {
# --- truncated at 32 KB (122 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fenergo/refs/heads/main/openapi/fenergo-localisationcommand-v1-0-openapi.json