Fenergo Nebula Product Query 1.0

Fenergo Nebula Product Query — OpenAPI 3.0.1 contract published by Fenergo for the productquery service of the Fen-X SaaS platform, carrying 23 path(s) and 23 operation(s). Harvested verbatim from Fenergo's own published specification endpoint.

Operations 23

POST /api/product/getProductsList Get a list of products with specific attributes #
GET /api/product/{id} Get a product by id #
GET /api/product/counts/serviced Get the tenant-wide count of products serviced #
GET /api/product/products-in-scope/{journeyInstanceId} Get products in scopes for journey #
GET /api/product/{entityId}/{journeyId} Get Product Data Sources #
GET /api/product/{entityId}/{journeyId}/dataSourcesWithExcludedSubtypes Get Product Data Sources including the products associated with excluded types #
GET /api/product/{entityId}/{journeyId}/{filterOutExcludedSubtype}/filterDraftsByEntityId Get Data Sources only from products associated to the specific entity #
GET /api/product/{entityId}/dataSources Get Product Data Sources By Entity Id #
GET /api/product/journey/{journeyId}/task/{taskId} Get a temporal products snapshot #
GET /api/product/journey/{journeyId}/task/{taskId}/product/{productId} Get a temporal product associations snapshot #
POST /api/product/{productId}/pre-sign-urls Get pre-sign URLs for a file identifiers This endpoint is intended for use with the new DataField type - RichTextEditor. #
POST /api/product-access-layer/evaluate Evaluate which Product access layers would be assigned for a given set of product field values.
GET /api/product/draft/{productDraftId} Get product draft by id #
GET /api/product/draft/{productId}/{productDraftId} Get product draft by id and productId #
POST /api/product/draft/list Get product drafts by ids #
GET /api/product/draft/journey/{journeyId} Get product drafts by journey #
POST /api/product/draft/journey/{journeyId}/summaries Get lightweight product summaries by journey for side panel display #
GET /api/product/draft/journey/{journeyId}/all Get all product drafts by journey #
GET /api/product/draft/product/{id} Get active product drafts by product Id #
GET /api/product/draft/product/{id}/all Get all product drafts by product Id #
GET /api/product/draft/proposedChanges/{id} Get proposed changes between a product draft and the verified product the draft was created from #
POST /api/product/draft/journey/{journeyId}/list Get product drafts by journey and product ids #
POST /api/product/draft/journey/{journeyId}/validate-all Validate all product drafts by journey #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/productquery-v1-0"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fenergo-productquery-v1-0-openapi.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "Fenergo Nebula Product Query",
    "description": "Product Query API is part of FenX eco-system to manage Product Data. All the operations require valid access token obtained from Identity service.",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "/productquery"
    }
  ],
  "paths": {
    "/api/product/getProductsList": {
      "post": {
        "tags": [
          "Product"
        ],
        "summary": "Get a list of products with specific attributes",
        "description": "\nReturns a product list, with only the data for the attributes specified<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductAccessAndSearch",
        "operationId": "GetProductsList",
        "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": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ProductQueryDtoServiceRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoListServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "500": {
            "description": "An exception occurred while processing the request"
          },
          "202": {
            "description": "List of Fenergo.Nebula.Product.Domain.Models.ProductAggregate.ProductModel class containing products."
          },
          "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/product/{id}": {
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "Get a product by id",
        "description": "\nReturns product data for the specified product id <br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductAccessAndSearch",
        "operationId": "GetProductById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Id of the existing Product",
            "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": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Product Id is invalid",
            "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": "No Product was found",
                      "type": "Error",
                      "errorCode": "Error Code"
                    }
                  ]
                }
              }
            }
          },
          "500": {
            "description": "An exception occurred while processing the command"
          },
          "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/product/counts/serviced": {
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "Get the tenant-wide count of products serviced",
        "description": "\nReturns the count of products whose lifecycle status is Onboarded, tenant-wide<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductAccessAndSearch",
        "operationId": "GetServicedProductsCount",
        "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": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServicedProductsCountDtoServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "500": {
            "description": "An exception occurred while processing the request"
          },
          "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/product/products-in-scope/{journeyInstanceId}": {
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "Get products in scopes for journey",
        "description": "\nReturns list of product ids in scope for journey<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductAccessAndSearch",
        "operationId": "GetProductsInScopeForJourney",
        "parameters": [
          {
            "name": "journeyInstanceId",
            "in": "path",
            "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": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuidIEnumerableServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Journey instance id is not valid",
            "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": "An exception occurred while processing the command"
          },
          "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/product/{entityId}/{journeyId}": {
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "Get Product Data Sources",
        "description": "\nGets related product data sources<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductAccessAndSearch",
        "operationId": "GetProductDataSources",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "description": "The Id of the existing Entity",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "journeyId",
            "in": "path",
            "description": "The Id of the existing Journey",
            "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": "The created Fenergo.Nebula.Product.Query.Application.Queries.GetProductDataSourceResponse containing related products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetProductDataSourceResponseServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "500": {
            "description": "An exception occurred while processing the request"
          },
          "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/product/{entityId}/{journeyId}/dataSourcesWithExcludedSubtypes": {
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "Get Product Data Sources including the products associated with excluded types",
        "description": "\nGets related product data sources<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductAccessAndSearch",
        "operationId": "GetProductDataSourceIncludingExcludedSubtypes",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "description": "The Id of the existing Entity",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "journeyId",
            "in": "path",
            "description": "The Id of the existing Journey",
            "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": "The created Fenergo.Nebula.Product.Query.Application.Queries.GetProductDataSourceResponse containing related products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetProductDataSourceResponseServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "500": {
            "description": "An exception occurred while processing the request"
          },
          "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/product/{entityId}/{journeyId}/{filterOutExcludedSubtype}/filterDraftsByEntityId": {
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "Get Data Sources only from products associated to the specific entity",
        "description": "\nGets related product data sources<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductAccessAndSearch",
        "operationId": "GetProductDataSourceFilteredByEntityId",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "description": "The Id of the existing Entity",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "journeyId",
            "in": "path",
            "description": "The Id of the existing Journey",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "filterOutExcludedSubtype",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "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": "The created Fenergo.Nebula.Product.Query.Application.Queries.GetProductDataSourceResponse containing related products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetProductDataSourceResponseServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "500": {
            "description": "An exception occurred while processing the request"
          },
          "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/product/{entityId}/dataSources": {
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "Get Product Data Sources By Entity Id",
        "description": "\nGets related product data sources by entity Id<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductAccessAndSearch",
        "operationId": "GetProductDataSourcesByEntityId",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "description": "The Id of the existing Entity",
            "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": "The created Fenergo.Nebula.Product.Query.Application.Queries.GetProductDataSourceResponse containing related products",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetProductDataSourceResponseServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "500": {
            "description": "An exception occurred while processing the request"
          },
          "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/product/journey/{journeyId}/task/{taskId}": {
      "get": {
        "tags": [
          "Product"
        ],
        "summary": "Get a temporal products snapshot",
        "description": "\nThis method retrieves an object containing lists of products and drafts from S3 for a given taskId <br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductAccessAndSearch",
        "operationId": "GetProductsSnapshot",
        "parameters": [
          {
            "name": "journeyId",
            "in": "path",
            "description": "The id of a journey that the products belong to",
            "required": true,

# --- truncated at 32 KB (165 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fenergo/refs/heads/main/openapi/fenergo-productquery-v1-0-openapi.json