{
  "openapi": "3.0.0",
  "info": {
    "title": "Public Partner Product API",
    "version": "V5",
    "description": "Manage your product data, send images and much more."
  },
  "servers": [
    {
      "url": "https://api.otto.market",
      "description": "Live Server"
    }
  ],
  "paths": {
    "/v5/products": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "The total number of results could be limited by specifying query parameters. Generally the resulting product variations will be paginated. The default page length is 100 product variations per response, also the page size limit. The links specified in the result can be used to page through the total result space.",
        "operationId": "getPartnerProducts",
        "parameters": [
          {
            "description": "search for product variations by their sku value. Use this if your sku values contain slash ('/') or dot ('.') characters.",
            "explode": true,
            "in": "query",
            "name": "sku",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their productReference value",
            "explode": true,
            "in": "query",
            "name": "productReference",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their category value",
            "explode": true,
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their brandId value",
            "explode": true,
            "in": "query",
            "name": "brandId",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of products per response page (at most 100)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductVariationApiResult"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Read product variations",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns a process-id to query results. The limit for the number of product variations in one request is 500.",
        "operationId": "createOrUpdateProductVariations",
        "parameters": [
          {
            "description": "Holds the optional client side update request timestamp, in ISO DateTime format",
            "example": "2000-10-31T01:30:10.000-05:00",
            "explode": false,
            "in": "header",
            "name": "X-Request-Timestamp",
            "required": false,
            "schema": {
              "format": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/ProductVariation"
                },
                "type": "array"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessProgress"
                }
              }
            },
            "description": "The request for a modification of the specified product variations was accepted and will be executed"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to modify the specified product variations. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Create or update product variations",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v5/products \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'X-Request-Timestamp: 2000-10-31T01:30:10.000-05:00' \\\n  --header 'content-type: application/json' \\\n  --data '[{\"productReference\":\"UBN-11779\",\"sku\":\"3858389911564\",\"ean\":\"3858389911564\",\"pzn\":\"PZN-4908802\",\"mpn\":\"H2G2-42\",\"moin\":\"M00A1234BC\",\"releaseDate\":\"2019-10-19T00:00:00Z\",\"productDescription\":{\"category\":\"Outdoorjacke\",\"brandId\":\"CMWBBRW2\",\"productLine\":\"501\",\"productionDate\":\"2021-07-02T09:30:52.093Z\",\"multiPack\":true,\"bundle\":false,\"fscCertified\":true,\"disposal\":false,\"productUrl\":\"http://myproduct.somewhere.com/productname/\",\"description\":\"<p>Some example words...<b>in bold</b>...some more</p>\",\"bulletPoints\":[\"My top key information...\"],\"attributes\":[{\"name\":\"Materialzusammensetzung\",\"values\":[\"100% Baumwolle\"],\"additional\":false}]},\"mediaAssets\":[{\"type\":\"IMAGE\",\"location\":\"http://apartners.url/image-location\"}],\"order\":{\"maxOrderQuantity\":{\"quantity\":10,\"periodInDays\":7}},\"pricing\":{\"standardPrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"vat\":\"FULL\",\"msrp\":{\"amount\":19.95,\"currency\":\"EUR\"},\"sale\":{\"salePrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"startDate\":\"2019-10-19T09:30:00Z\",\"endDate\":\"2019-10-19T09:30:00Z\"},\"normPriceInfo\":{\"normAmount\":100,\"normUnit\":\"g\",\"salesAmount\":500,\"salesUnit\":\"g\"}},\"logistics\":{\"packingUnitCount\":3,\"packingUnits\":[{\"weight\":365,\"width\":600,\"height\":200,\"length\":300}]},\"compliance\":{\"productSafety\":{\"addresses\":[{\"name\":\"Die Musterfirma GmbH\",\"address\":\"Musterstraße 1, 12345, Musterstadt, Deutschland\",\"regionCode\":\"DE\",\"email\":\"info@die-musterfirma.de\",\"url\":\"https://musterfirma/kontakt-information\",\"phone\":\"+ 49 40 123456789\",\"roles\":[\"DISTRIBUTOR\"],\"components\":[\"mouse\"]}]},\"foodInformation\":{\"addresses\":[{\"name\":\"Die Musterfirma GmbH\",\"address\":\"Musterstraße 1, 12345, Musterstadt, Deutschland\",\"regionCode\":\"DE\",\"email\":\"info@die-musterfirma.de\",\"url\":\"https://musterfirma/kontakt-information\",\"phone\":\"+ 49 40 123456789\",\"roles\":[\"FOOD_BUSINESS_OPERATOR\"],\"components\":[\"Salad\"]}]}}}]'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '[{\"productReference\":\"UBN-11779\",\"sku\":\"3858389911564\",\"ean\":\"3858389911564\",\"pzn\":\"PZN-4908802\",\"mpn\":\"H2G2-42\",\"moin\":\"M00A1234BC\",\"releaseDate\":\"2019-10-19T00:00:00Z\",\"productDescription\":{\"category\":\"Outdoorjacke\",\"brandId\":\"CMWBBRW2\",\"productLine\":\"501\",\"productionDate\":\"2021-07-02T09:30:52.093Z\",\"multiPack\":true,\"bundle\":false,\"fscCertified\":true,\"disposal\":false,\"productUrl\":\"http://myproduct.somewhere.com/productname/\",\"description\":\"<p>Some example words...<b>in bold</b>...some more</p>\",\"bulletPoints\":[\"My top key information...\"],\"attributes\":[{\"name\":\"Materialzusammensetzung\",\"values\":[\"100% Baumwolle\"],\"additional\":false}]},\"mediaAssets\":[{\"type\":\"IMAGE\",\"location\":\"http://apartners.url/image-location\"}],\"order\":{\"maxOrderQuantity\":{\"quantity\":10,\"periodInDays\":7}},\"pricing\":{\"standardPrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"vat\":\"FULL\",\"msrp\":{\"amount\":19.95,\"currency\":\"EUR\"},\"sale\":{\"salePrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"startDate\":\"2019-10-19T09:30:00Z\",\"endDate\":\"2019-10-19T09:30:00Z\"},\"normPriceInfo\":{\"normAmount\":100,\"normUnit\":\"g\",\"salesAmount\":500,\"salesUnit\":\"g\"}},\"logistics\":{\"packingUnitCount\":3,\"packingUnits\":[{\"weight\":365,\"width\":600,\"height\":200,\"length\":300}]},\"compliance\":{\"productSafety\":{\"addresses\":[{\"name\":\"Die Musterfirma GmbH\",\"address\":\"Musterstraße 1, 12345, Musterstadt, Deutschland\",\"regionCode\":\"DE\",\"email\":\"info@die-musterfirma.de\",\"url\":\"https://musterfirma/kontakt-information\",\"phone\":\"+ 49 40 123456789\",\"roles\":[\"DISTRIBUTOR\"],\"components\":[\"mouse\"]}]},\"foodInformation\":{\"addresses\":[{\"name\":\"Die Musterfirma GmbH\",\"address\":\"Musterstraße 1, 12345, Musterstadt, Deutschland\",\"regionCode\":\"DE\",\"email\":\"info@die-musterfirma.de\",\"url\":\"https://musterfirma/kontakt-information\",\"phone\":\"+ 49 40 123456789\",\"roles\":[\"FOOD_BUSINESS_OPERATOR\"],\"components\":[\"Salad\"]}]}}}]' |  \\\n  http POST https://api.otto.market/v5/products \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  X-Request-Timestamp:2000-10-31T01:30:10.000-05:00 \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v5/products/active-status": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "The total number of results could be limited by specifying query parameters. Generally the resulting active status values will be paginated. The default page length is 100 active status entries per response, also the page size limit. The links specified in the result can be used to page through the total result space.",
        "operationId": "getActiveStatus",
        "parameters": [
          {
            "description": "search for product variations by their sku value. Use this if your sku values contain slash ('/') or dot ('.') characters.",
            "explode": true,
            "in": "query",
            "name": "sku",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their productReference value",
            "explode": true,
            "in": "query",
            "name": "productReference",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their category value",
            "explode": true,
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their brand ID value",
            "explode": true,
            "in": "query",
            "name": "brandId",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of active status values per response page (at most 100)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActiveStatusListResponse"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the active status of the specified product variations. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Read active status",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/active-status?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/active-status?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns a process-id to query results. The limit for the number of product active statuses in one request is 500.",
        "operationId": "updateActiveStatus",
        "parameters": [
          {
            "description": "Holds the optional client side update request timestamp, in ISO DateTime format",
            "example": "2000-10-31T01:30:10.000-05:00",
            "explode": false,
            "in": "header",
            "name": "X-Request-Timestamp",
            "required": false,
            "schema": {
              "format": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActiveStatusListRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessProgress"
                }
              }
            },
            "description": "The request for a modification of the active status of the specified product variation was accepted and will be executed"
          },
          "400": {
            "description": "The request body is no valid JSON document"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to modify the active status of the specified product variations. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Update active status",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v5/products/active-status \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'X-Request-Timestamp: 2000-10-31T01:30:10.000-05:00' \\\n  --header 'content-type: application/json' \\\n  --data '{\"status\":[{\"sku\":\"82388894-5883-488\",\"active\":true}]}'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '{\"status\":[{\"sku\":\"82388894-5883-488\",\"active\":true}]}' |  \\\n  http POST https://api.otto.market/v5/products/active-status \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  X-Request-Timestamp:2000-10-31T01:30:10.000-05:00 \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v5/products/brands": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/If-Match"
          },
          {
            "$ref": "#/components/parameters/If-None-Match"
          },
          {
            "$ref": "#/components/parameters/If-Modified-Since"
          },
          {
            "$ref": "#/components/parameters/If-Unmodified-Since"
          },
          {
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          }
        ],
        "description": "Read the list of brands that are known on the Otto market place. The list of brands will be paginated. Brands consist of a name, a brand Id, a (link to a) logo and a boolean useable that lets you know wheter you are allowed to set up variants with this brand on the Otto Marketplace. The default page length is 100 entries per response, the page size upper limit is 1000. The links specified in the result can be used to page through the total result space. Note that there will be no prev link on the first page and no next link on the last page.",
        "operationId": "getBrands",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrandListResponse"
                }
              }
            },
            "headers": {
              "ETag": {
                "$ref": "#/components/headers/ETag"
              },
              "Last-Modified": {
                "$ref": "#/components/headers/Last-Modified"
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read a list of known brands. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "List of allowed brands",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/brands?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'If-Match: 7da7a728f910' \\\n  --header 'If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT' \\\n  --header 'If-None-Match: 7da7a728f910' \\\n  --header 'If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/brands?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  If-Match:7da7a728f910 \\\n  If-Modified-Since:'Sat, 29 Oct 1994 19:43:31 GMT' \\\n  If-None-Match:7da7a728f910 \\\n  If-Unmodified-Since:'Sat, 29 Oct 1994 19:43:31 GMT'"
          }
        ]
      }
    },
    "/v5/products/categories": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns product categories and associated attributes of the OTTO market place. The total number of results could be limited by specifying query parameters. Generally the resulting product categories values will be paginated. The default page length is 100 product categories per response, the page size limit is 2000. The links specified in the result can be used to page through the total result space.",
        "operationId": "getCategoryGroups",
        "parameters": [
          {
            "description": "the number (starting with 0) of the page, that should be delivered.",
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of product categories per response page  (at most 2000)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "read a single category",
            "explode": true,
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryGroups"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the product categories. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The category could not be found."
          }
        },
        "summary": "Read product categories",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/categories?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&category=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/categories?page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&category=SOME_STRING_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/content-changes": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Read the content changes for all your product variations within a specific time period. You can also use this endpoint to read the content changes for more than one variation or if the sku value contains slash ('/') or dot ('.') characters, so that you cannot use the other endpoint with one dedicated sku value in the path. The resulting content changes will be paginated. The default page length is 100 entries per response, which also is the page size upper limit. The links specified in the result can be used to page through the total result space.",
        "operationId": "getContentChanges2",
        "parameters": [
          {
            "description": "search for product variations by their sku value. Use this to query for multiple variations or if your sku values contain slash ('/') or dot ('.') characters. You may separate multiple sku values by comma or state each one with a &sku= in front of the value. Please note that if you like to query for a single variation whose value contains a comma you have to add one empty &sku= at the end of the query string or use the other endpoint.",
            "explode": true,
            "in": "query",
            "name": "sku",
            "required": false,
            "schema": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "style": "form"
          },
          {
            "description": "search for content changes from this time on. The maxmimum and default value is 28 days before now. Future values can be specified, but lead to an empty result.",
            "explode": true,
            "in": "query",
            "name": "fromDate",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of content changes per response page (at most 100)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentChangesApiResult"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read content changes of the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product variation with the specified sku value could not be found."
          }
        },
        "summary": "Read content changes within time period",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/content-changes?sku=SOME_ARRAY_VALUE&fromDate=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/content-changes?sku=SOME_ARRAY_VALUE&fromDate=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/marketplace-status": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "The total number of results could be limited by specifying query parameters. Generally the resulting marketplace status will be paginated. The default page length is 100 product variations per response, also the page size limit. The links specified in the result can be used to page through the total result space.",
        "operationId": "getMarketPlaceStatusList",
        "parameters": [
          {
            "description": "search for product variations by their sku value. Use this if your sku values contain slash ('/') or dot ('.') characters.",
            "explode": true,
            "in": "query",
            "name": "sku",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search marketplace status by the productReference value of the related product variations",
            "explode": true,
            "in": "query",
            "name": "productReference",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search marketplace status by the category value of the related product variations",
            "explode": true,
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search marketplace status by the brand ID value of the related product variations",
            "explode": true,
            "in": "query",
            "name": "brandId",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search marketplace status for a time range starting with the given date (in ISO8601, like '2021-10-09T07:52:19.820Z' or '2021-10-09T07:52:19.820+01:00')",
            "explode": true,
            "in": "query",
            "name": "fromDate",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "page to load",
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of marketplace status per response page (at most 1000)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "only include items that match any of the provided status",
            "explode": true,
            "in": "query",
            "name": "marketPlaceStatus",
            "required": false,
            "schema": {
              "items": {
                "enum": [
                  "PENDING",
                  "ONLINE",
                  "RESTRICTED",
                  "REJECTED",
                  "INACTIVE"
                ],
                "type": "string"
              },
              "type": "array"
            },
            "style": "form"
          },
          {
            "description": "Define the sort order of the resulting entries. Available values are 'desc' for 'newest lastModified first' and 'asc' for 'oldest lastModified first' - default is 'desc'",
            "explode": true,
            "in": "query",
            "name": "sort-order",
            "required": false,
            "schema": {
              "enum": [
                "desc",
                "asc"
              ],
              "type": "string"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketPlaceStatusApiResult"
                }
              }
            },
            "description": "successful operation"
          },
          "304": {
            "description": "The request included an If-Modified-Since header, but the resource has not been modified since the specified date."
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified marketplace status. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Read marketplace status of product variations",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/marketplace-status?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&fromDate=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&marketPlaceStatus=SOME_ARRAY_VALUE&sort-order=SOME_STRING_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/marketplace-status?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&fromDate=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE&marketPlaceStatus=SOME_ARRAY_VALUE&sort-order=SOME_STRING_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/prices": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Read your product variations prices. The total number of results could be limited by specifying query parameters. Generally the resulting product variations will be paginated. The default page length is 100 product variations per response, also the page size limit. The links specified in the result can be used to page through the total result space.",
        "operationId": "getProductVariationPrices",
        "parameters": [
          {
            "description": "search for product variations by their sku value. Use this if your sku values contain slash ('/') or dot ('.') characters.",
            "explode": true,
            "in": "query",
            "name": "sku",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their productReference value",
            "explode": true,
            "in": "query",
            "name": "productReference",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their category value",
            "explode": true,
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "description": "search for product variations by their ID value",
            "explode": true,
            "in": "query",
            "name": "brandId",
            "required": false,
            "schema": {
              "type": "string"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of products per response page (at most 100)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceApiResult"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations prices. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Read product variations prices",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/prices?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/prices?sku=SOME_STRING_VALUE&productReference=SOME_STRING_VALUE&category=SOME_STRING_VALUE&brandId=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      },
      "post": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Update your product variation prices and get a process-id to query results. The limit for the number of product variation prices in one request is 500.",
        "operationId": "updateProductVariationPrices",
        "parameters": [
          {
            "description": "Holds the optional client side update request timestamp, in ISO DateTime format",
            "example": "2000-10-31T01:30:10.000-05:00",
            "explode": false,
            "in": "header",
            "name": "X-Request-Timestamp",
            "required": false,
            "schema": {
              "format": "yyyy-MM-dd'T'HH:mm:ss.SSSXXX",
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "items": {
                  "$ref": "#/components/schemas/SkuPricing"
                },
                "type": "array"
              }
            }
          }
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessProgress"
                }
              }
            },
            "description": "The request for a modification of the specified product variation prices was accepted and will be executed"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to modify the specified product variation prices. This may be the case, if the user has not the necessary role."
          }
        },
        "summary": "Update product variation prices",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request POST \\\n  --url https://api.otto.market/v5/products/prices \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n  --header 'X-Request-Timestamp: 2000-10-31T01:30:10.000-05:00' \\\n  --header 'content-type: application/json' \\\n  --data '[{\"sku\":\"string\",\"standardPrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"sale\":{\"salePrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"startDate\":\"2019-10-19T09:30:00Z\",\"endDate\":\"2019-10-19T09:30:00Z\"}}]'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "echo '[{\"sku\":\"string\",\"standardPrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"sale\":{\"salePrice\":{\"amount\":19.95,\"currency\":\"EUR\"},\"startDate\":\"2019-10-19T09:30:00Z\",\"endDate\":\"2019-10-19T09:30:00Z\"}}]' |  \\\n  http POST https://api.otto.market/v5/products/prices \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN' \\\n  X-Request-Timestamp:2000-10-31T01:30:10.000-05:00 \\\n  content-type:application/json"
          }
        ]
      }
    },
    "/v5/products/update-tasks/{processUuid}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "The response will contain the links for the different parts of the result: products successfully created or updated, products with failures, products which did not contain any changes compared to the last sent version.",
        "operationId": "progressByProcessId",
        "parameters": [
          {
            "description": "search for a product data delivery result by its processUuid.",
            "explode": false,
            "in": "path",
            "name": "processUuid",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessProgress"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product data delivery results with the specified processUuid value could not be found."
          }
        },
        "summary": "Request the results of a product data delivery",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/update-tasks/{processUuid}/failed": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Request the failed products of the product data delivery with the linked processUuid. The response will contain a list of failed products with associated error details.",
        "operationId": "failedByProcessId",
        "parameters": [
          {
            "description": "search for the failed products of a product data delivery identified by its processUuid.",
            "explode": false,
            "in": "path",
            "name": "processUuid",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessResult"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product data delivery results with the specified processUuid value could not be found."
          }
        },
        "summary": "List failed products of a product data delivery",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D/failed \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D/failed \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/update-tasks/{processUuid}/succeeded": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Request the succeeded products of the product data delivery with the linked processUuid. The response will contain a list of successfully delivered products.",
        "operationId": "succeededByProcessId",
        "parameters": [
          {
            "description": "search for the succeeded products of a product data delivery identified by its processUuid.",
            "explode": false,
            "in": "path",
            "name": "processUuid",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessResult"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product data delivery results with the specified processUuid value could not be found."
          }
        },
        "summary": "List succeeded products of a product data delivery",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D/succeeded \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D/succeeded \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/update-tasks/{processUuid}/unchanged": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Request the unchanged products of the product data delivery with the linked processUuid. The response will contain a list of unchanged products.",
        "operationId": "unchangedByProcessId",
        "parameters": [
          {
            "description": "search for the unchanged products of a product data delivery identified by its processUuid.",
            "explode": false,
            "in": "path",
            "name": "processUuid",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductProcessResult"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product data delivery results with the specified processUuid value could not be found."
          }
        },
        "summary": "List unchanged products of a product data delivery",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D/unchanged \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/update-tasks/%7BprocessUuid%7D/unchanged \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/{sku}": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns a single product variation by SKU.",
        "operationId": "getProductVariation",
        "parameters": [
          {
            "description": "search for a product variation by its SKU value",
            "explode": false,
            "in": "path",
            "name": "sku",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProductVariation"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product variation with the specified sku value could not be found."
          }
        },
        "summary": "Read a single product variation",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/%7Bsku%7D \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/%7Bsku%7D \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/{sku}/active-status": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns active status of the requested product variation by SKU.",
        "operationId": "getVariationActiveStatus",
        "parameters": [
          {
            "description": "search for a product variation by its SKU value",
            "explode": false,
            "in": "path",
            "name": "sku",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActiveStatus"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the active status of the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product variation with the specified sku value could not be found."
          }
        },
        "summary": "Read the active status of a single product variation",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/%7Bsku%7D/active-status \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/%7Bsku%7D/active-status \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/{sku}/content-changes": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns the content changes info for a single product variation within a specific time period. The resulting content changes will be paginated. The default page length is 100 entries per response, also the page size limit. The links specified in the result can be used to page through the total result space.",
        "operationId": "getContentChanges",
        "parameters": [
          {
            "description": "search for a product variation by its SKU value",
            "explode": false,
            "in": "path",
            "name": "sku",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          },
          {
            "description": "search for content changes from this ISO8601 date on. The maxmimum and default value is 28 days before now. Future values can be specified, but lead to an empty result.",
            "explode": true,
            "in": "query",
            "name": "fromDate",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": "string"
            },
            "style": "form"
          },
          {
            "explode": true,
            "in": "query",
            "name": "page",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          },
          {
            "description": "proposed limit for the number of entries per response page (at most 100)",
            "explode": true,
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "style": "form"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContentChangesApiResult"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the content changes of the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product variation with the specified sku value could not be found."
          }
        },
        "summary": "Read content changes for a single product variation",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v5/products/%7Bsku%7D/content-changes?fromDate=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v5/products/%7Bsku%7D/content-changes?fromDate=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE&limit=SOME_INTEGER_VALUE' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/{sku}/marketplace-status": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Returns marketplace status for a single product variation by SKU.",
        "operationId": "getMarketPlaceStatus",
        "parameters": [
          {
            "description": "search for a marketplace status by its SKU value",
            "explode": false,
            "in": "path",
            "name": "sku",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketPlaceStatus"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified marketplace status. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product variation with the specified sku value could not be found."
          }
        },
        "summary": "Read marketplace status for a single product variation",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/%7Bsku%7D/marketplace-status \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/%7Bsku%7D/marketplace-status \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v5/products/{sku}/prices": {
      "get": {
        "security": [
          {
            "bearerAuth": [
              "products"
            ]
          }
        ],
        "description": "Read the price data of a single product variation.",
        "operationId": "getProductVariationPrice",
        "parameters": [
          {
            "description": "search for a product variation by its SKU value",
            "explode": false,
            "in": "path",
            "name": "sku",
            "required": true,
            "schema": {
              "type": "string"
            },
            "style": "simple"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkuPricing"
                }
              }
            },
            "description": "successful operation"
          },
          "401": {
            "description": "The technical user could not be authenticated"
          },
          "403": {
            "description": "The technical user is not authorized to read the specified product variations. This may be the case, if the user has not the necessary role."
          },
          "404": {
            "description": "The product variation with the specified sku value could not be found."
          }
        },
        "summary": "Read a single product variation price",
        "tags": [
          "Products V5"
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v5/products/%7Bsku%7D/prices \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v5/products/%7Bsku%7D/prices \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "bearerFormat": "JWT",
        "scheme": "bearer"
      }
    },
    "schemas": {
      "ActiveStatus": {
        "properties": {
          "sku": {
            "description": "Partner-unique identifier for a product variation provided by the partner",
            "example": "82388894-5883-488",
            "type": "string"
          },
          "active": {
            "description": "The product variation is supposed to be active or not",
            "example": true,
            "type": "boolean"
          },
          "lastModified": {
            "description": "the ISO8601 timestamp of the last modification of the active status",
            "example": "2019-06-18T06:12:36Z",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ActiveStatusListRequest": {
        "properties": {
          "status": {
            "items": {
              "$ref": "#/components/schemas/ActiveStatus"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ActiveStatusListResponse": {
        "properties": {
          "status": {
            "items": {
              "$ref": "#/components/schemas/ActiveStatus"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination (among others).",
            "items": {
              "$ref": "#/components/schemas/ActiveStatusListResponseLink"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ActiveStatusListResponseLink": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/active-status?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AdditionalRequirement": {
        "properties": {
          "name": {
            "description": "the name of the product attribute.",
            "example": "Lizenznummer Organic Content Standard 100",
            "type": "string"
          },
          "jsonPath": {
            "description": "the JSON path leading to the specific product attribute.",
            "example": "$.productVariations[*].productDescription.attributes(@name='Lizenznummer Organic Content Standard 100')",
            "type": "string"
          },
          "description": {
            "description": "a brief human readable description of the requirement",
            "example": "Wenn das Nachhaltigkeits-Siegel 'Organic Content Standard 100' übermittelt wird, muss auch die vom Siegel Herausgeber vergebene Lizenznummer im Attribut 'Lizenznummer Organic Content Standard 100' übermittelt werden.",
            "type": "string"
          },
          "condition": {
            "$ref": "#/components/schemas/Condition"
          },
          "featureRelevance": {
            "description": "a list of feature relevances that can describe the reason for the requirement.",
            "example": [
              "LICENSE_REQUIRED"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Attribute": {
        "properties": {
          "name": {
            "description": "The name of the describing attribute, like 'color' or 'size'.",
            "example": "Materialzusammensetzung",
            "type": "string"
          },
          "values": {
            "description": "The value for the given name, like 'blue' or 'S', as a JSON array",
            "example": [
              "100% Baumwolle"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "additional": {
            "description": "true, if the attribute is not defined by the marketplace.",
            "example": false,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "AttributeDefinition": {
        "properties": {
          "name": {
            "description": "the name of the attribute. This attribute name has to be used within the product description.",
            "example": "Durchmesser",
            "type": "string"
          },
          "attributeGroup": {
            "description": "title of the attributes displayed in the product details in the shop.",
            "example": "Maße & Gewicht",
            "type": "string"
          },
          "type": {
            "description": "defines the format of the attribute value, such as string, integer, etc.",
            "example": "FLOAT",
            "type": "string"
          },
          "multiValue": {
            "description": "if the value is true, several values can be transferred to this attribute (polyvalence attribute); otherwise, only a single value may be transferred to this attribute.",
            "example": true,
            "type": "boolean"
          },
          "unit": {
            "description": "the values must be transferred in the specified unit.",
            "example": "cm",
            "type": "string"
          },
          "unitDisplayName": {
            "description": "the value gets displayed with this unit in the shop.",
            "example": "Zentimeter",
            "type": "string"
          },
          "allowedValues": {
            "description": "only the listed values are permitted for the attribute.",
            "example": "natur bunt grau ...",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "featureRelevance": {
            "description": "describes what the attribute can be used for and where it gets displayed in the shop.",
            "example": "FILTER",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "relatedMediaAssets": {
            "description": "mandatory media assets for the category",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "relevance": {
            "description": "the relevance of the attribute.",
            "example": "HIGH",
            "type": "string"
          },
          "description": {
            "description": "additional information for the attribute.",
            "example": "some textual description",
            "type": "string"
          },
          "exampleValues": {
            "description": "example values for the attribute.",
            "example": "Edelstahl Aluminium Stahl",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "recommendedValues": {
            "description": "use the listed values to get full navigation and filter features on otto.de. If no suitable value exists, then enter your own value.",
            "example": "modern klassisch Landhaus Vintage",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "reference": {
            "description": "reference to further documentation.",
            "example": "http://wikipedia.de/something",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Brand": {
        "properties": {
          "id": {
            "description": "the id value of the brand which you have to use with your product data uploads!",
            "example": "K5J8PJFR",
            "type": "string"
          },
          "name": {
            "description": "the name of the brand as it is known on the OTTO marketplace. Use this name to find the brand of your products in the list of available brands, but don't use it in your product data - use only the id value of the brand!",
            "example": "adidas",
            "type": "string"
          },
          "logo": {
            "description": "If a brand logo image is existing, you can find the URL of it here.",
            "example": "https://brandlogos.foo.org/logo-xyz.jpg",
            "type": "string"
          },
          "usable": {
            "description": "If this value if ``false`` you are not allowed to use this brand for products you like to sell on the OTTO marketplace. If the value is ``true`` you might use this brand.",
            "example": true,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "BrandListResponse": {
        "properties": {
          "brands": {
            "items": {
              "$ref": "#/components/schemas/Brand"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination (among others).",
            "items": {
              "$ref": "#/components/schemas/BrandListLink"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "BrandListLink": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/brands?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CategoryGroup": {
        "properties": {
          "categoryGroup": {
            "description": "a category group defines a list of categories and the market place attributes for these categories.",
            "type": "string"
          },
          "categories": {
            "description": "the list of the categories for this category group.",
            "example": "Farbe",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "variationThemes": {
            "description": "overview of all attributes that can be used to create variantions.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "description": "shows how our product title is built",
            "type": "string"
          },
          "attributes": {
            "description": "list of the market place attributes for the categories of this group.",
            "items": {
              "$ref": "#/components/schemas/AttributeDefinition"
            },
            "type": "array"
          },
          "createdAt": {
            "description": "ISO8601 creation date of the category.",
            "example": "2021-07-02T01:35:57.181Z",
            "format": "date-time",
            "type": "string"
          },
          "lastModified": {
            "description": "ISO8601 last modification date of the category.",
            "example": "2021-07-02T01:35:57.181Z",
            "format": "date-time",
            "type": "string"
          },
          "additionalRequirements": {
            "description": "a list of general requirements for certain product attributes that apply to all categories in the category group",
            "items": {
              "$ref": "#/components/schemas/AdditionalRequirement"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "CategoryGroups": {
        "properties": {
          "categoryGroups": {
            "description": "a list of the category groups defined on the OTTO market place.",
            "items": {
              "$ref": "#/components/schemas/CategoryGroup"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination (among others).",
            "items": {
              "$ref": "#/components/schemas/CategoryGroupsLink"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Condition": {
        "properties": {
          "name": {
            "description": "the name of an attribute.",
            "type": "string"
          },
          "jsonPath": {
            "description": "the JSON path that leads to the attribute value.",
            "type": "string"
          },
          "value": {
            "description": "the value of the attribute to which the requirement applies.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "CategoryGroupsLink": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/categories?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentChange": {
        "properties": {
          "sku": {
            "type": "string"
          },
          "ean": {
            "type": "string"
          },
          "productReference": {
            "type": "string"
          },
          "shopLink": {
            "type": "string"
          },
          "lastContentChange": {
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentChangesApiResult": {
        "properties": {
          "contentChanges": {
            "items": {
              "$ref": "#/components/schemas/ContentChange"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination.",
            "items": {
              "$ref": "#/components/schemas/ContentChangesLink"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Link": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ContentChangesLink": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/content-changes?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "LinkRelation": {
        "type": "object"
      },
      "Logistics": {
        "description": "In case of using the logistic service of our marketplace, here you may provide information about the packaging of the goods",
        "properties": {
          "packingUnitCount": {
            "description": "The number of packing units.",
            "example": 3,
            "format": "int32",
            "type": "integer"
          },
          "packingUnits": {
            "description": "The measurements of the packing units in g and mm.",
            "items": {
              "$ref": "#/components/schemas/PackingUnit"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "MarketPlaceStatus": {
        "properties": {
          "sku": {
            "description": "Partner-unique identifier for a product variation provided by the partner",
            "example": "82388894-5883-488",
            "type": "string"
          },
          "moin": {
            "description": "Is an identifier, generated by the OTTO marketplace, for a product variation together with the associated content. Is used in the context of \"Wettbewerb am Artikel\" to confirm the content of the existing variation and its correctness and to put the own offer live for this variation.",
            "example": "M00A1234BC",
            "type": "string"
          },
          "status": {
            "description": "the status of the variation on the OTTO market place",
            "enum": [
              "PENDING",
              "ONLINE",
              "RESTRICTED",
              "REJECTED",
              "INACTIVE"
            ],
            "example": "RESTRICTED",
            "type": "string"
          },
          "errors": {
            "description": "errors that occurred when processing the variation",
            "items": {
              "$ref": "#/components/schemas/MarketPlaceStatusError"
            },
            "type": "array"
          },
          "information": {
            "description": "information for product optimization on the OTTO market place",
            "items": {
              "$ref": "#/components/schemas/MarketPlaceStatusInformation"
            },
            "type": "array"
          },
          "links": {
            "description": "contains the link to the partner variation data and to the product in OTTO shop",
            "items": {
              "$ref": "#/components/schemas/MarketPlaceStatusLink"
            },
            "type": "array"
          },
          "lastModified": {
            "description": "last change of the marketplace status as ISO8601 date",
            "example": "2021-07-02T09:30:52.093Z",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MarketPlaceStatusApiResult": {
        "properties": {
          "marketPlaceStatus": {
            "items": {
              "$ref": "#/components/schemas/MarketPlaceStatus"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination.",
            "items": {
              "$ref": "#/components/schemas/MarketPlaceStatusApiLink"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "MarketPlaceStatusError": {
        "properties": {
          "code": {
            "description": "code to identify the error",
            "example": "800020 - PRODUCTDATASHEET_MISSING",
            "type": "string"
          },
          "title": {
            "description": "short description of the error",
            "example": "Das Produktdatenblatt fehlt.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MarketPlaceStatusInformation": {
        "properties": {
          "code": {
            "description": "code to identify the information",
            "example": "300007 - INCOMPLETE_MEDIA_ASSET_IMPORT",
            "type": "string"
          },
          "title": {
            "description": "short description of the information",
            "example": "Die Bilder werden zur Zeit verarbeitet. Wir bitten um etwas Geduld. Wenn der Status sich innerhalb der nächsten 24 Stunden nicht verändert, wenden Sie sich bitte an support@otto.market.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MarketPlaceStatusLink": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "variation",
              "shop"
            ],
            "example": "shop",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "https://www.otto.de/p/myProduct",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MarketPlaceStatusApiLink": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/marketplace-status?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "MediaAsset": {
        "properties": {
          "type": {
            "description": "The type of the provided media asset. At least one media asset of type 'IMAGE' must be provided. The number of media assets of type 'IMAGE' is not limited.",
            "enum": [
              "IMAGE",
              "DIMENSIONAL_DRAWING",
              "COLOR_VARIANT",
              "ENERGY_EFFICIENCY_LABEL",
              "MATERIAL_SAMPLE",
              "PRODUCT_DATASHEET",
              "USER_MANUAL",
              "MANUFACTURER_WARRANTY",
              "SAFETY_DATASHEET",
              "ASSEMBLY_INSTRUCTIONS",
              "WARNING_LABEL"
            ],
            "example": "IMAGE",
            "type": "string"
          },
          "location": {
            "description": "The partners location of the media asset as a valid URL (see http://www.ietf.org/rfc/rfc2396.txt and http://www.ietf.org/rfc/rfc2732.txt) with a maximum length of 2083 characters. OTTO market will use the link for downloading the media asset and providing it to otto.de. Please note that the image has to be of type JPG or PNG with a RGB color space an a minimum size of 500x1000 pixel and a maximum width of 4500 pixel.",
            "example": "http://apartners.url/image-location",
            "format": "uri",
            "type": "string"
          }
        },
        "required": [
          "location",
          "type"
        ],
        "type": "object"
      },
      "MonetaryAmount": {
        "properties": {
          "amount": {
            "description": "Holds the value of the monetary amount expressed in a currency, e.g. euros. The number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency, e.g. 10 is taken as 10 euros. The value has to have no more than 2 decimal places. If you specify more decimal places, the product variation will be rejected. The same applies, if you use other characters than digits and an optional decimal point, e.g. '2E+4'",
            "example": 19.95,
            "type": "number"
          },
          "currency": {
            "description": "Holds the currency of the monetary amount expressed as a shortcut according to ISO 4217 and http://publications.europa.eu/code/de/de-5000700.htm. NOTE: Currently the only allowed currency code is \"EUR\". All other currency codes will be rejected.",
            "example": "EUR",
            "type": "string"
          }
        },
        "type": "object"
      },
      "NormPriceInfo": {
        "description": "The information about normed prices, must be provided completely, or not at all. The representation of the normprice has to contain the following values for normAmount and normUnit: 1 pcs,1 sqm,1 kg,1 l,1 m,100 ml,100 g,1 g,1000 g,1 pair,1 RM,1 dm3.",
        "properties": {
          "normAmount": {
            "description": "The norm packaging size.",
            "enum": [
              1,
              100,
              1000
            ],
            "example": 100,
            "format": "int32",
            "type": "integer"
          },
          "normUnit": {
            "description": "The name of the unit the norm price is based on.",
            "enum": [
              "Stk",
              "qm",
              "kg",
              "l",
              "m",
              "ml",
              "g",
              "Paar",
              "RM",
              "dm3"
            ],
            "example": "g",
            "type": "string"
          },
          "salesAmount": {
            "description": "The packaging size of the sales unit.",
            "example": 500,
            "type": "number"
          },
          "salesUnit": {
            "description": "The name of the unit the sales price is based on.",
            "enum": [
              "Stk",
              "qm",
              "kg",
              "l",
              "m",
              "ml",
              "g",
              "Paar",
              "RM",
              "dm3"
            ],
            "example": "g",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PackingUnit": {
        "properties": {
          "weight": {
            "description": "The weight of a packing unit in grams.",
            "example": 365,
            "format": "int32",
            "type": "integer"
          },
          "width": {
            "description": "The width of a packing unit in millimeters.",
            "example": 600,
            "format": "int32",
            "type": "integer"
          },
          "height": {
            "description": "The height of a packing unit in millimeters.",
            "example": 200,
            "format": "int32",
            "type": "integer"
          },
          "length": {
            "description": "The depth of a packing unit in millimeters.",
            "example": 300,
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PriceApiResult": {
        "properties": {
          "variationPrices": {
            "items": {
              "$ref": "#/components/schemas/SkuPricing"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination.",
            "items": {
              "$ref": "#/components/schemas/PriceApiResultLink"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Pricing": {
        "description": "this container holds attributes for the different price types, currency and tax related information",
        "properties": {
          "standardPrice": {
            "$ref": "#/components/schemas/MonetaryAmount"
          },
          "vat": {
            "description": "The value added tax that is included in the sales price. Currently \"NONE\" is just mentioned because of technical reasons, but will always result in a validation error.",
            "enum": [
              "FULL",
              "REDUCED",
              "FREE",
              "NONE"
            ],
            "example": "FULL",
            "type": "string"
          },
          "msrp": {
            "$ref": "#/components/schemas/MonetaryAmount"
          },
          "sale": {
            "$ref": "#/components/schemas/Sale"
          },
          "normPriceInfo": {
            "$ref": "#/components/schemas/NormPriceInfo"
          }
        },
        "required": [
          "standardPrice",
          "vat"
        ],
        "type": "object"
      },
      "PriceApiResultLink": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "prev",
              "next"
            ],
            "example": "self",
            "type": "string"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/prices?page=0&limit=100",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProductDescription": {
        "description": "Extensive description of the product.",
        "properties": {
          "category": {
            "description": "Denotes the assortment type of the product, like 'bag' or 'shirt'. Mandatory. Must be identical for all variants of a product. Must be present in the Category service offered via Category endpoint",
            "example": "Outdoorjacke",
            "type": "string"
          },
          "brandId": {
            "description": "Denotes the brand ID of a product. Brands and the mapping of their names to brand Ids should be done using the brand endpoint. Must be present in the Brand service offered via Brand endpoint. Must be identical for all variants of a product.",
            "example": "CMWBBRW2",
            "type": "string"
          },
          "productLine": {
            "description": "Denotes the proper name of a product, like '501'. May contain a maximum of 70 characters. If provided, it must be identical for all variants of a product.",
            "example": "501",
            "type": "string"
          },
          "productionDate": {
            "description": "Denotes the ISO8601 date of manufacture of a product variant.",
            "example": "2021-07-02T09:30:52.093Z",
            "format": "date-time",
            "type": "string"
          },
          "multiPack": {
            "description": "If the product variant is part of a set: 'true'; otherwise 'false'",
            "example": true,
            "type": "boolean"
          },
          "bundle": {
            "description": "If the product variant is part of a bundle: 'true'; otherwise 'false'",
            "example": false,
            "type": "boolean"
          },
          "fscCertified": {
            "description": "If the product variant is certified by the Forest Stewardship Council: 'true'; otherwise 'false'",
            "example": true,
            "type": "boolean"
          },
          "disposal": {
            "description": "If true, otto.de will present information about the disposal of the product (or parts of it).",
            "example": false,
            "type": "boolean"
          },
          "productUrl": {
            "description": "Refers to a representation of the product variant in a shop of the partner. Should be a valid URL.",
            "example": "http://myproduct.somewhere.com/productname/",
            "type": "string"
          },
          "description": {
            "description": "Represents a textual description of a product variant. May contain HTML elements. Should contain less than 2000 characters. Relevant for SEO.",
            "example": "<p>Some example words...<b>in bold</b>...some more</p>",
            "type": "string"
          },
          "bulletPoints": {
            "description": "May contain a minimum of 3 and a maximum of 180 characters.",
            "example": [
              "My top key information..."
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "attributes": {
            "description": "Lists all the descriptive information about a product variant a partner can provide. Must be provided in the form of a key values pair. Will be validated against the AttributeDefinitions from Category endpoint provided by Otto market.",
            "items": {
              "$ref": "#/components/schemas/Attribute"
            },
            "type": "array"
          }
        },
        "required": [
          "brandId",
          "category"
        ],
        "type": "object"
      },
      "ProductLink": {
        "type": "object"
      },
      "ProductProcessProgress": {
        "properties": {
          "state": {
            "description": "the current state of the process",
            "enum": [
              "pending",
              "done"
            ],
            "type": "string"
          },
          "message": {
            "description": "a human-readable message describing the current state of the process",
            "type": "string"
          },
          "total": {
            "description": "the total work to complete for this process",
            "format": "int32",
            "type": "integer",
            "example": 7
          },
          "progress": {
            "description": "the fraction of work that is already completed, as compared to the total work",
            "format": "int32",
            "type": "integer",
            "example": 7
          },
          "succeeded": {
            "description": "the number of successfully processed variations",
            "format": "int32",
            "type": "integer",
            "example": 4
          },
          "failed": {
            "description": "the number of failed processed variations",
            "format": "int32",
            "type": "integer",
            "example": 2
          },
          "unchanged": {
            "description": "the number of unchanged and not processed variations",
            "format": "int32",
            "type": "integer",
            "example": 1
          },
          "pingAfter": {
            "description": "recommendation when to poll this resource again to receive a meaningful update - ISO8601 date",
            "example": "2020-05-13T10:40:01.815Z",
            "format": "date-time",
            "type": "string"
          },
          "links": {
            "description": "a list of links that can be used to access detailed information about the process result",
            "items": {
              "$ref": "#/components/schemas/ProductProcessResultLink"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ProductProcessResult": {
        "properties": {
          "results": {
            "items": {
              "$ref": "#/components/schemas/ProductProcessTaskResult"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ProductProcessResultLink": {
        "properties": {
          "rel": {
            "description": "link relation type",
            "enum": [
              "self",
              "failed",
              "succeeded",
              "unchanged"
            ],
            "type": "string",
            "example": "self"
          },
          "href": {
            "description": "the linked reference as URI",
            "example": "/v5/products/update-tasks/11111111-0003-4444-9999-bbbbbbbbbbbbb",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProductProcessTaskError": {
        "properties": {
          "code": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "jsonPath": {
            "type": "string"
          },
          "logref": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProductProcessTaskResult": {
        "properties": {
          "variation": {
            "type": "string"
          },
          "errors": {
            "items": {
              "$ref": "#/components/schemas/ProductProcessTaskError"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ProductVariation": {
        "properties": {
          "productReference": {
            "description": "The productReference groups all variations, that you want to combine into one product. This is not visible to the customer. The productReference can be freely assigned and may consist of maximum 50 characters. You can only use the productReference once within your product catalog. You should therefore use a value that makes sense for all variations of the product and does not refer to any specifics of a particular variation. You will find the product reference, for example, in the product overview in the portal.",
            "example": "UBN-11779",
            "type": "string"
          },
          "sku": {
            "description": "Identifier for a product variation, provided by the partner, must be unique for a partner. It is mandatory, may consist of a maximum of 50 characters and must not contain leading or trailing spaces or non-printable Unicode control characters.",
            "example": "3858389911564",
            "type": "string"
          },
          "ean": {
            "description": "External identifier of a product, must be unique in a partner assortment, must not start with a 2.",
            "example": "3858389911564",
            "type": "string"
          },
          "pzn": {
            "description": "Pharmazentralnummer, a german standard for identifying pharmaceutical products.",
            "example": "PZN-4908802",
            "type": "string"
          },
          "mpn": {
            "description": "Manufacturer part number, may consist of a maximum of 50 characters.",
            "example": "H2G2-42",
            "type": "string"
          },
          "moin": {
            "description": "Is an identifier, generated by the OTTO marketplace, for a product variation together with the associated content. Is used in the context of \"Wettbewerb am Artikel\" to confirm the content of the existing variation and its correctness and to put the own offer live for this variation.",
            "example": "M00A1234BC",
            "type": "string"
          },
          "releaseDate": {
            "description": "ISO8601 Date (e.g. 2024-08-01T08:00:00+0100) on which the product is released by the manufacturer, e.g. computer games.",
            "example": "2019-10-19T00:00:00Z",
            "format": "date-time",
            "type": "string"
          },
          "productDescription": {
            "$ref": "#/components/schemas/ProductDescription"
          },
          "mediaAssets": {
            "description": "A list of media assets describing this product variation. Currently these may only be static images of the types JPG or PNG with a RGB color space. Furthermore the images have to have a minimum size of 500 x 1000 pixel and a maximum width of 4500 pixel. Requirements for media assets can be found at https://account.otto.market/s/article/Vorgaben-fuer-Produktbilder",
            "items": {
              "$ref": "#/components/schemas/MediaAsset"
            },
            "type": "array"
          },
          "order": {
            "$ref": "#/components/schemas/Order"
          },
          "pricing": {
            "$ref": "#/components/schemas/Pricing"
          },
          "logistics": {
            "$ref": "#/components/schemas/Logistics"
          },
          "compliance": {
            "$ref": "#/components/schemas/ProductCompliance"
          }
        },
        "required": [
          "ean",
          "productReference",
          "sku",
          "productDescription",
          "pricing",
          "mediaAssets",
          "compliance"
        ],
        "type": "object"
      },
      "ProductVariationApiResult": {
        "properties": {
          "productVariations": {
            "items": {
              "$ref": "#/components/schemas/ProductVariation"
            },
            "type": "array"
          },
          "links": {
            "description": "a list of links that can be used for pagination.",
            "items": {
              "$ref": "#/components/schemas/Link"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Sale": {
        "properties": {
          "salePrice": {
            "$ref": "#/components/schemas/MonetaryAmount"
          },
          "startDate": {
            "description": "The start ISO8601 date for the sales.",
            "example": "2019-10-19T09:30:00Z",
            "format": "date-time",
            "type": "string"
          },
          "endDate": {
            "description": "The end ISO8601 date for the sales.",
            "example": "2019-10-19T09:30:00Z",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SkuPricing": {
        "properties": {
          "sku": {
            "description": "Partner-unique identifier for a product variation provided by the partner.",
            "type": "string"
          },
          "standardPrice": {
            "$ref": "#/components/schemas/MonetaryAmount"
          },
          "sale": {
            "$ref": "#/components/schemas/Sale"
          }
        },
        "required": [
          "sku",
          "standardPrice"
        ],
        "type": "object"
      },
      "MaxOrderQuantity": {
        "description": "The maximum number of items a consumer may order during a specified time period. E.g. max 10 items every 7 days.",
        "properties": {
          "quantity": {
            "description": "The maximum number of items a consumer may order during a specified time period. Quantity with allowed values from 1 to 50.",
            "example": 10,
            "type": "integer"
          },
          "periodInDays": {
            "description": "The period of time in days during which a consumer may order the specified maximum number of items. Period in days with allowed values from 1 to 90.",
            "example": 7,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "Order": {
        "description": "A Container holding order constraints",
        "properties": {
          "maxOrderQuantity": {
            "$ref": "#/components/schemas/MaxOrderQuantity"
          }
        },
        "type": "object"
      },
      "ProductCompliance": {
        "description": "Compliance data must always be maintained. Must be used to provide information relevant for product compliance like e.g. addresses for product safety regulations. For the variations of a product, either the product safety container or the food/feed information container must be provided depending on the product category.",
        "properties": {
          "productSafety": {
            "$ref": "#/components/schemas/ProductSafety"
          },
          "foodInformation": {
            "$ref": "#/components/schemas/FoodInformation"
          }
        },
        "type": "object"
      },
      "ProductSafetyAddress": {
        "description": "",
        "properties": {
          "name": {
            "description": "The company name of the manufacturer or the distributor. Maximum length: 100 characters.",
            "example": "Die Musterfirma GmbH",
            "type": "string"
          },
          "address": {
            "description": "The complete address including street, postal code, city, country. Without any formatting, comma separation, no line breaks. Maximum length: 200 characters.",
            "example": "Musterstraße 1, 12345, Musterstadt, Deutschland",
            "type": "string"
          },
          "regionCode": {
            "description": "Allowed values are all country codes in ISO-3166 Alpha-2 format. Important for validation of the address.",
            "example": "DE",
            "type": "string"
          },
          "email": {
            "description": "A valid and complete email address. Maximum length: 100 characters. **Mandatory** if no URL is specified.",
            "example": "info@die-musterfirma.de",
            "type": "string"
          },
          "url": {
            "description": "Valid URL to the contact information of the manufacturer or distributor (see http://www.ietf.org/rfc/rfc2396.txt and http://www.ietf.org/rfc/rfc2732.txt). Maximum length: 200 characters. **Mandatory** if no email is specified.",
            "example": "https://musterfirma/kontakt-information",
            "type": "string"
          },
          "phone": {
            "description": "A valid phone number. Maximum length: 20 characters.",
            "example": "+ 49 40 123456789",
            "type": "string"
          },
          "roles": {
            "description": "The role(s) of the economic agent to which the address belongs. Allowed values are 'DISTRIBUTOR' and 'MANUFACTURER'. At least one distributor must be specified.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductSafetyAddressRole"
            }
          },
          "components": {
            "description": "Can be used in the case of set products for the correct assignment of addresses to set components, e.g. use components “mouse” and “keyboard” when selling a set of both.",
            "type": "array",
            "items": {
              "example": "mouse",
              "type": "string"
            }
          }
        },
        "required": [
          "name",
          "address",
          "roles"
        ],
        "type": "object"
      },
      "ProductSafetyAddressRole": {
        "description": "The role of an address in the product safety context. Allowed values are 'MANUFACTURER' and 'DISTRIBUTOR'.",
        "enum": [
          "MANUFACTURER",
          "DISTRIBUTOR"
        ],
        "example": "DISTRIBUTOR",
        "type": "string"
      },
      "ProductSafety": {
        "description": "Should be used for providing information about the distributors and/or manufacturer of the product. https://account.otto.market/s/article/Verordnung-ueber-die-allgemeine-Produktsicherheit-EU",
        "properties": {
          "addresses": {
            "description": "The addresses of the distributors and/or manufacturer. If an address is maintained, name, address, email or url and roles are mandatory.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductSafetyAddress"
            }
          }
        },
        "type": "object"
      },
      "FoodInformationAddress": {
        "description": "",
        "properties": {
          "name": {
            "description": "The company name of the food or animal feed business operator. Maximum length: 100 characters.",
            "example": "Die Musterfirma GmbH",
            "type": "string"
          },
          "address": {
            "description": "The complete address including street, postal code, city, country. Without any formatting, with comma separation, no line breaks. Maximum length: 200 characters.",
            "example": "Musterstraße 1, 12345, Musterstadt, Deutschland",
            "type": "string"
          },
          "regionCode": {
            "description": "Allowed values are all country codes in ISO-3166 Alpha-2 format. Important for validation of the address.",
            "example": "DE",
            "type": "string"
          },
          "email": {
            "description": "A valid and complete email address. Maximum length: 100 characters.",
            "example": "info@die-musterfirma.de",
            "type": "string"
          },
          "url": {
            "description": "Valid URL to the contact information of the food or animal feed business operator (see http://www.ietf.org/rfc/rfc2396.txt and http://www.ietf.org/rfc/rfc2732.txt). Maximum length: 200 characters.",
            "example": "https://musterfirma/kontakt-information",
            "type": "string"
          },
          "phone": {
            "description": "A valid phone number. Maximum length: 20 characters.",
            "example": "+ 49 40 123456789",
            "type": "string"
          },
          "roles": {
            "description": "The role of the business operator to which the address belongs. Allowed values are 'FOOD_BUSINESS_OPERATOR' or 'FEED_BUSINESS_OPERATOR'. Every variation within a product must have the same role.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FoodInformationAddressRole"
            }
          },
          "components": {
            "description": "Can be used in the case of set products for the correct assignment of addresses to set components, e.g. use components “Salad” and “Dressing” when selling a set of both.",
            "type": "array",
            "items": {
              "example": "Salad",
              "type": "string"
            }
          }
        },
        "required": [
          "name",
          "address",
          "roles"
        ],
        "type": "object"
      },
      "FoodInformation": {
        "description": "Should be used for providing information about the food or animal feed business operator of the product. The affected assortment can be found in this article: https://account.otto.market/s/article/Weitere-Informationen-Sortimente-mit-besonderen-Anforderungen.",
        "properties": {
          "addresses": {
            "description": "The addresses of the food or animal feed business operator. If an address is maintained, name, address and roles are mandatory.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FoodInformationAddress"
            }
          }
        },
        "type": "object"
      },
      "FoodInformationAddressRole": {
        "description": "The role of an address in the food information context. Allowed values are 'FOOD_BUSINESS_OPERATOR' or 'FEED_BUSINESS_OPERATOR'.",
        "enum": [
          "FOOD_BUSINESS_OPERATOR",
          "FEED_BUSINESS_OPERATOR"
        ],
        "example": "FOOD_BUSINESS_OPERATOR",
        "type": "string"
      }
    },
    "examples": {},
    "headers": {
      "ETag": {
        "description": "The RFC 7232 ETag header field in a response provides the entity-tag of a selected resource. The entity-tag is an opaque identifier for versions and representations of the same resource over time, regardless whether multiple versions are valid at the same time. An entity-tag consists of an opaque quoted string, possibly prefixed by a weakness indicator (see [RFC 7232 Section 2.3](https://tools.ietf.org/html/rfc7232#section-2.3).",
        "schema": {
          "type": "string"
        },
        "required": false,
        "example": "7da7a728f910"
      },
      "Last-Modified": {
        "description": "TThe Last-Modified header field in a response provides a timestamp indicating the date and time at which the origin server believes the selected representation was last modified, as determined at the conclusion of handling the request (see [RFC 7232 Section 2.3](https://tools.ietf.org/html/rfc7232#section-2.2).",
        "schema": {
          "type": "string"
        },
        "required": false,
        "example": "Tue, 15 Nov 1994 12:45:26 GMT"
      }
    },
    "parameters": {
      "If-Match": {
        "name": "If-Match",
        "in": "header",
        "description": "The RFC7232 If-Match header field in a request requires the server to only operate on the resource that matches at least one of the provided entity-tags. This allows clients express a precondition that prevent the method from being applied if there have been any changes to the resource (see [RFC 7232 Section 3.1](https://tools.ietf.org/html/rfc7232#section-3.1).",
        "schema": {
          "type": "string"
        },
        "required": false,
        "example": "7da7a728f910"
      },
      "If-None-Match": {
        "name": "If-None-Match",
        "in": "header",
        "description": "The RFC7232 If-None-Match header field in a request requires the server to only operate on the resource if it does not match any of the provided entity-tags. If the provided entity-tag is `*`, it is required that the resource does not exist at all (see [RFC 7232 Section 3.2](https://tools.ietf.org/html/rfc7232#section-3.2)",
        "schema": {
          "type": "string"
        },
        "required": false,
        "example": "7da7a728f910"
      },
      "If-Modified-Since": {
        "name": "If-Modified-Since",
        "in": "header",
        "description": "The RFC7232 If-Modified-Since header field makes a GET or HEAD request method conditional on the selected representation's modification date being more recent than the date provided in the field-value. Transfer of the selected representation's data is avoided if that data has not changed.",
        "schema": {
          "type": "string"
        },
        "required": false,
        "example": "Sat, 29 Oct 1994 19:43:31 GMT"
      },
      "If-Unmodified-Since": {
        "name": "If-Unmodified-Since",
        "in": "header",
        "description": "The RFC7232 If-Unmodified-Since header field makes the request method conditional on the selected representation's last modification date being earlier than or equal to the date provided in the field-value. This field accomplishes the same purpose as If-Match for cases where the user agent does not have an entity-tag for the representation.",
        "schema": {
          "type": "string"
        },
        "required": false,
        "example": "Sat, 29 Oct 1994 19:43:31 GMT"
      }
    },
    "requestBodies": {},
    "responses": {}
  },
  "tags": [
    {
      "name": "Products V5",
      "description": ""
    }
  ]
}