Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.0.1",
"info": {
"title": "Fenergo Nebula Reports Query",
"description": "**Reports Query API**:<br/><br/><br/> Reports Query API provides endpoints in order to retrieve all related models and their versions.<br/><br/><br/> **Reports Query API provides**:<br/><ul><li> Query Definitions retrieval</li><li> Generated Reports retrieval</li><li> Schema retrieval</li></ul>",
"version": "1.0"
},
"servers": [
{
"url": "/reportsquery"
}
],
"paths": {
"/api/QueryDefinition": {
"get": {
"tags": [
"QueryDefinition",
"v1"
],
"summary": "Get all stored Query definitions",
"description": "\nThis method returns all stored query definitions<br /><br /><b>Required permissions:</b><br />Following permissions are required: ReportingAccess",
"operationId": "GetAllQueryDefinitions",
"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 Query definitions is returned",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetAllQueryDefinitionsItemDtoIEnumerableServiceResponse"
}
}
}
},
"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/QueryDefinition/{id}": {
"get": {
"tags": [
"QueryDefinition",
"v1"
],
"summary": "Get Stored Query definition",
"description": "\nThis method returns the stored query definition for the given Id<br /><br /><b>Required permissions:</b><br />Following permissions are required: ReportingAccess",
"operationId": "GetQueryDefinitionById",
"parameters": [
{
"name": "id",
"in": "path",
"description": "",
"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": {
"200": {
"description": "Success. The Query is returned",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetQueryDefinitionByIdDtoServiceResponse"
}
}
}
},
"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"
}
]
}
}
}
},
"500": {
"description": "Internal Server Error"
},
"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"
}
]
}
}
}
},
"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/Report/{id}": {
"get": {
"tags": [
"Report",
"v1"
],
"summary": "Get generated Report",
"description": "\nThis method returns the generated report for the given id<br /><br /><b>Required permissions:</b><br />Following permissions are required: ReportingAccess",
"operationId": "GetReportById",
"parameters": [
{
"name": "id",
"in": "path",
"description": "",
"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": {
"200": {
"description": "Success. The Report is returned",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetReportByIdDtoServiceResponse"
}
}
}
},
"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"
}
]
}
}
}
},
"500": {
"description": "Internal Server Error"
},
"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"
}
]
}
}
}
},
"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/Report/{id}/status": {
"get": {
"tags": [
"Report",
"v1"
],
"summary": "Get Report status",
"description": "\nThis method returns the report status for the given tenant and id.<br /><br /><b>Required permissions:</b><br />Following permissions are required: ReportingAccess",
"operationId": "GetStatusById",
"parameters": [
{
"name": "id",
"in": "path",
"description": "",
"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": {
"200": {
"description": "Success. The Report Status is returned",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetReportStatusByIdDtoServiceResponse"
}
}
}
},
"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"
}
]
}
}
}
},
"500": {
"description": "Internal Server Error"
},
"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"
}
]
}
}
}
},
"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/Schema": {
"get": {
"tags": [
"Schema",
"v1"
],
"summary": "Get all tables",
"description": "\nThis method returns all Glue tables for a specific tenant.<br /><br /><b>Required permissions:</b><br />Following permissions are required: ReportingAccess",
"operationId": "GetTables",
"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 GlueTables is returned",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetAllTablesItemDtoIEnumerableServiceResponse"
}
}
}
},
"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/Schema/{tableName}": {
"get": {
"tags": [
"Schema",
"v1"
],
"summary": "Get a Table",
"description": "\nThis method returns a specific Glue table for a specific tenant.<br /><br /><b>Required permissions:</b><br />Following permissions are required: ReportingAccess",
"operationId": "GetTable",
"parameters": [
{
"name": "tableName",
"in": "path",
"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": {
"200": {
"description": "Success. The list of GlueTables is returned",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetTableDtoServiceResponse"
}
}
}
},
"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"
}
]
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"GetAllQueryDefinitionsItemDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier of query",
"nullable": true,
"example": "7e57cfd6-881c-4587-ada8-24a23b76464e"
},
"name": {
"type": "string",
"description": "Name of query",
"nullable": true,
"example": "GetAllEntityDataIds"
},
"description": {
"type": "string",
"description": "Short description",
"nullable": true,
"example": "Get all entitydata Ids"
},
"sqlQuery": {
"type": "string",
"description": "Actual raw SQL of the query",
"nullable": true,
"example": "Select Id From entitydata"
},
"parameters": {
"type": "array",
"items": {
"$ref": "#/components/schemas/QueryParameterDto"
},
"description": "Parameter definitions for this query",
"nullable": true
},
"categoryId": {
"type": "string",
"description": "Optional tenant-scoped category this query belongs to",
"format": "uuid",
"nullable": true
}
},
"additionalProperties": false,
"description": "Query definition item as it is returned by GetAllQueriesQuery"
},
"GetAllQueryDefinitionsItemDtoIEnumerableServiceResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GetAllQueryDefinitionsItemDto"
},
"nullable": true
},
"messages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceResponseMessage"
},
"nullable": true
}
},
"additionalProperties": false
},
"GetAllTablesItemDto": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name of schema",
"nullable": true,
"example": "entitydata"
},
"description": {
"type": "string",
"description": "Description of schema",
"nullable": true,
"example": "New schema for related parties"
},
"created": {
"type": "string",
"description": "When it was created",
"format": "date-time",
"example": "2020-09-21T08:53:37.497+00:00"
},
"parameters": {
"type": "object",
"additionalProperties": {
"type": "string",
"nullable": true
},
"description": "Parameters included in schema",
"nullable": true
},
"columns": {
"type": "array",
"items": {
"type": "string"
},
"description": "Columns names included in schema",
"nullable": true
}
},
"additionalProperties": false,
"description": "Details included on a schema item"
},
"GetAllTablesItemDtoIEnumerableServiceResponse": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GetAllTablesItemDto"
},
"nullable": true
},
"messages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceResponseMessage"
},
"nullable": true
}
},
"additionalProperties": false
},
"GetQueryDefinitionByIdDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier of query",
"nullable": true,
"example": "7e57cfd6-881c-4587-ada8-24a23b76464e"
},
"name": {
"type": "string",
"description": "Name of query",
"nullable": true,
"example": "GetAllEntityDataIds"
},
"description": {
"type": "string",
"description": "Short description",
"nullable": true,
"example": "Get all entitydata Ids"
},
"sqlQuery": {
"type": "string",
"description": "Actual raw SQL of the query",
"nullable": true,
"example": "Select Id From entitydata"
},
"parameters": {
"type": "array",
"items": {
"$ref": "#/components/schemas/QueryParameterDto"
},
"description": "Parameter definitions for this query",
"nullable": true
},
"categoryId": {
"type": "string",
"description": "Optional tenant-scoped category this query belongs to",
"format": "uuid",
"nullable": true
}
},
"additionalProperties": false,
"description": "Query dto as it is returned by GetQueryByIdQuery"
},
"GetQueryDefinitionByIdDtoServiceResponse": {
"type": "object",
"properties": {
"data": {
"allOf": [
{
"$ref": "#/components/schemas/GetQueryDefinitionByIdDto"
}
],
"description": "Query dto as it is returned by GetQueryByIdQuery",
"nullable": true
},
"messages": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceResponseMessage"
},
"nullable": true
}
},
"additionalProperties": false
},
"GetReportByIdDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Identifier of the report",
"nullable": true,
"example": "00331a74-300e-4a39-a6cb-339a3781dnna"
},
"user": {
"type": "string",
"description": "User that created the report",
"nullable": true,
"example": "eac709n7-a89y-3n59-b516-bcuub500de36"
},
"description": {
"type": "string",
"description": "Short description of the report",
"nullable": true,
"example": "My Monthly report for active retail clients"
},
"status": {
"allOf": [
{
"$ref": "#/components/schemas/ReportStatusDto"
}
],
"description": "Status of the report",
"example": "InProgress, Completed, Failed"
},
"created": {
"type": "string",
"description": "Creation datetime",
"format": "date-time",
"example": "2020-09-21T08:53:37.497+00:00"
},
"completed": {
"type": "string",
"description": "Execution completed datetime",
"format": "date-time",
"nullable": true,
"example": "2020-09-21T08:53:37.497+00:00"
},
"quer
# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fenergo/refs/heads/main/openapi/fenergo-reportsquery-v1-0-openapi.json