Fenergo Nebula Product Command 1.0

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

Operations 16

PUT /api/product/{productId}/datadeletion/{id} Set For Deletion status product draft #
POST /api/managedProduct Creates a managed product #
POST /api/product Creates a product #
POST /api/product/{id}/clone Clones a product #
DELETE /api/product/{id} Deletes a product #
PUT /api/product/{id} Updates a Product Status to Approved (Verified) #
POST /api/product/{id}/reproject-reports Re-syncs a product to Advanced Reporting. #
POST /api/product/{id}/create-url-to-upload-file Create url to upload file. This endpoint is intended for use with the new DataField type - RichTextEditor. #
POST /api/product/{productId}/draft/journey/{journeyId} Creates a product draft #
PUT /api/product/{productId}/draft/{id} Update product draft #
DELETE /api/product/{productId}/draft/{id} Deletes a product draft and its information from the database. #
PUT /api/product/{productId}/draft/{id}/save-without-validation Update product draft without validation (auto-save) #
PUT /api/product/{productId}/draft/{id}/verify Verify product draft #
PUT /api/product/{productId}/draft/{id}/conflicts Manage conflicts for Product Draft Record. #
PUT /api/product/draft/bulkconflicts Manage conflicts for bulk Product Draft Records. #
PUT /api/product/draft/journey/{journeyId}/complete-inaccessible-conflicts Complete conflict resolution for product drafts the current user cannot access due to access layers. #

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/productcommand-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-productcommand-v1-0-openapi.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "Fenergo Nebula Product Command",
    "description": "Product Command 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": "/productcommand"
    }
  ],
  "paths": {
    "/api/product/{productId}/datadeletion/{id}": {
      "put": {
        "tags": [
          "DataDeletion"
        ],
        "summary": "Set For Deletion status product draft",
        "description": "<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductEdit",
        "operationId": "SetForDeletionProductDraft",
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "description": "Product id",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "id",
            "in": "path",
            "description": "Product draft 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": {
          "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. 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. Product/Product draft with given id does not exist",
                      "type": "Error",
                      "errorCode": "Error Code"
                    }
                  ]
                }
              }
            }
          },
          "202": {
            "description": "Success. Product draft updated"
          },
          "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/managedProduct": {
      "post": {
        "tags": [
          "Product"
        ],
        "summary": "Creates a managed product",
        "description": "\nThis method creates a managed product and stores the data related to the product.\r\n\nThe method returns an object containing some basic information as the result to the user,\r\n            and type. The returned Id can be used in the query api to get the product.<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductEdit",
        "operationId": "CreateManagedProduct",
        "parameters": [
          {
            "name": "X-TENANT-ID",
            "in": "header",
            "description": "The UiD of the tenant representing organization",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "b11f8be3-f29b-4959-8964-956d4af7c468"
          }
        ],
        "requestBody": {
          "description": "The create managed product request",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ManagedProductDtoServiceRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "An instance of the Fenergo.Nebula.Product.Command.Application.Features.CreateManagedProduct.ManagedProductDto class with some metadata that represent the managed product created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagedProductDtoServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request has missing/invalid values",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "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/product": {
      "post": {
        "tags": [
          "Product"
        ],
        "summary": "Creates a product",
        "description": "\nThis method creates a product and stores the data related to the product.\r\n\nThe method returns an object containing some basic information as the result to the user,\r\n            and type. The returned Id can be used in the query api to get the product.<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductEdit",
        "operationId": "CreateProduct",
        "parameters": [
          {
            "name": "X-TENANT-ID",
            "in": "header",
            "description": "The UiD of the tenant representing organization",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "b11f8be3-f29b-4959-8964-956d4af7c468"
          }
        ],
        "requestBody": {
          "description": "The create product request",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/ProductDtoServiceRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "An instance of the Fenergo.Nebula.Product.Command.Application.Features.CreateProduct.ProductDto class with some metadata that represent the product created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDtoServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request has missing/invalid values",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "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/product/{id}/clone": {
      "post": {
        "tags": [
          "Product"
        ],
        "summary": "Clones a product",
        "description": "\nThis method clones a product.\r\n\nThe cloned product will remain within the same entity and journey as the source product.<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductEdit",
        "operationId": "CloneProduct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Source Product Id which should be cloned",
            "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": "Parameters to clone the productd",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CloneProductRequestDtoServiceRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "An instance of the Fenergo.Nebula.Product.Command.Application.Dto.ProductDraftDto class with some metadata that represent the product created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductDraftDtoServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request has missing/invalid values",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too many requests. The tenant has exceeded its API rate limit; wait and retry.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "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/product/{id}": {
      "delete": {
        "tags": [
          "Product"
        ],
        "summary": "Deletes a product",
        "description": "\nThis method deletes a product record and all associated drafts.\r\n\nOnly products with the Onboarding status can be deleted.<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductEdit",
        "operationId": "DeleteProduct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Id of the product",
            "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": "An instance of the Fenergo.Nebula.Product.Command.Application.Features.CreateProduct.ProductDto class with some metadata that represent the product created"
          },
          "400": {
            "description": "Bad request. The request has missing/invalid values",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "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"
                    }
                  ]
                }
              }
            }
          },
          "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"
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Product"
        ],
        "summary": "Updates a Product Status to Approved (Verified)",
        "description": "\nThis method updates a product record status.<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductEdit",
        "operationId": "VerifyProduct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Id of the product",
            "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": "An instance of the Fenergo.Nebula.Product.Command.Application.Features.CreateProduct.ProductDto class with some metadata that represent the product created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request. The request has missing/invalid values",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "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/product/{id}/reproject-reports": {
      "post": {
        "tags": [
          "Product"
        ],
        "summary": "Re-syncs a product to Advanced Reporting.",
        "description": "\nRe-emits the product's current state to the Advanced Reporting projection,\r\n            rebuilding its reports object if it is missing (for example after a reprojection\r\n            skipped it). This is an idempotent ops/support action.<br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductEdit",
        "operationId": "ReprojectReports",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The Id of the product to re-sync to reporting.",
            "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 product was re-synced. The payload indicates whether a projection object was written.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReprojectReportsResponseDtoServiceResponse"
                }
              }
            }
          },
          "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": "No product was found for the supplied id.",
                      "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/product/{id}/create-url-to-upload-file": {
      "post": {
        "tags": [
          "Product"
        ],
        "summary": "Create url to upload file.\r\nThis endpoint is intended for use with the new DataField type - RichTextEditor.",
        "description": "<ul>\r\n  <li>Creates url for file upload.</li>\r\n  <li>Returns url that can be used to upload file.</li>\r\n</ul><br /><br /><b>Required permissions:</b><br />Following permissions are required: ProductEdit",
        "operationId": "CreateUrlToUploadFile",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Product 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"
          }
        ],
        "requestBody": {
          "description": "Parameters to create url to upload",
          "content": {
            "application/json": {
              "schema": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/CreateUrlToUploadFileRequestDtoServiceRequest"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "400": {
            "description": "Bad request. The request has missing/invalid values"

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