{
  "openapi" : "3.1.0",
  "info" : {
    "title" : "Product Information",
    "version" : "1.0.0",
    "description" : "Provides various services for requesting product information."
  },
  "paths" : {
    "/portals/api/v2/product/data" : {
      "post" : {
        "operationId" : "post-portals-api-v2-product-data",
        "summary" : "Fetch Complete Information of Products V2",
        "description" : "Allows to fetch extensive product information in different formats (existence flag, JSON or HTML).\nUp to 30 products can be requested in a single call.\n",
        "parameters" : [ {
          "name" : "accessToken",
          "in" : "query",
          "required" : true,
          "description" : "Access token for non-public portals. When submitting a <i>user</i> or <i>roles,</i> the respective values need to be considered during the computation of the token. See kba:INT63 for details.",
          "schema" : {
            "type" : "string"
          },
          "example" : "d0765f518ff0cab426dbbd6d467c9967"
        }, {
          "name" : "portal",
          "in" : "query",
          "required" : true,
          "description" : "Globally unique alpha-numeric code as set up or automatically assigned. Also visible in the respective URL on the <a href=\"/portals\">Portals</a> page.",
          "schema" : {
            "type" : "string"
          },
          "example" : "9999999"
        }, {
          "name" : "user",
          "in" : "query",
          "required" : true,
          "description" : "User name",
          "schema" : {
            "type" : "string"
          },
          "example" : "john.doe"
        }, {
          "name" : "language",
          "in" : "query",
          "required" : false,
          "description" : "Language to use for human-readable data. Does not affect content where applicable. Provide a two-letter ISO code.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "roles",
          "in" : "query",
          "required" : false,
          "description" : "Comma-separated list of roles assigned to the user. Can be omitted if roles are not in use, or if the portal is public.",
          "schema" : {
            "type" : "string"
          },
          "example" : "Heating,Electronics,Top-Customer"
        } ],
        "requestBody" : {
          "description" : "General and product-specific queries.",
          "required" : false,
          "content" : {
            "application/json" : {
              "examples" : {
                "example1" : {
                  "value" : {
                    "outputMode" : "normal",
                    "queries" : {
                      "product-images" : {
                        "type" : "json",
                        "settings" : {
                          "limit" : 5
                        }
                      },
                      "attachments" : {
                        "type" : "json",
                        "settings" : {
                          "hideGroups" : true
                        }
                      }
                    },
                    "products" : [ {
                      "itemNumber" : "2186 183",
                      "supplierNumber" : "WI",
                      "queries" : {
                        "cover" : {
                          "type" : "exists"
                        }
                      }
                    }, {
                      "itemNumber" : "2186 183",
                      "supplierNumber" : "WI",
                      "queries" : { }
                    } ]
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "General and product-specific queries.",
            "content" : {
              "application/json" : {
                "examples" : {
                  "example1" : {
                    "value" : {
                      "success" : true,
                      "error" : false,
                      "products" : [ {
                        "productId" : "ABC123",
                        "supplierNumber" : "WI",
                        "itemNumber" : "2186 183",
                        "resolved" : true,
                        "queries" : [ {
                          "name" : "product-images",
                          "error" : false,
                          "images" : [ {
                            "type" : "COLORED_IMAGE",
                            "typeName" : "Produktbild",
                            "description" : null,
                            "filename" : "product.png",
                            "iconUrl" : "https://oxomi.com/shared-media/epoch/.../oxomi/attachments/other.png",
                            "downloadUrl" : "https://oxomi.com/dasd/pd/attachments/.../.../.../product.png",
                            "fingerprint" : "ABC123",
                            "fileSize" : "189.54 KB",
                            "fileSizeInBytes" : 189537
                          } ]
                        }, {
                          "name" : "attachments",
                          "error" : false,
                          "documents" : [ {
                            "id" : "11002077",
                            "name" : "Dokument 1",
                            "internalName" : "document 1",
                            "brand" : "Marke 1",
                            "brandIcon" : "http://localhost:9000/assets/images/brand-preview.png",
                            "outdated" : false,
                            "previewUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg",
                            "mediumUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg",
                            "pages" : [ {
                              "pageNumber" : 1,
                              "pageName" : "1",
                              "previewUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg",
                              "mediumUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg"
                            } ]
                          } ]
                        }, {
                          "name" : "cover",
                          "error" : false,
                          "exists" : true
                        } ]
                      }, {
                        "productId" : "ABC124",
                        "supplierNumber" : "WI",
                        "itemNumber" : "2186 184",
                        "resolved" : true,
                        "queries" : [ {
                          "name" : "product-images",
                          "error" : false,
                          "images" : [ {
                            "type" : "COLORED_IMAGE",
                            "typeName" : "Produktbild",
                            "description" : null,
                            "filename" : "product2.png",
                            "iconUrl" : "https://oxomi.com/shared-media/epoch/.../oxomi/attachments/other.png",
                            "downloadUrl" : "https://oxomi.com/dasd/pd/attachments/.../.../.../product2.png",
                            "fingerprint" : "ABC123",
                            "fileSize" : "189.54 KB",
                            "fileSizeInBytes" : 189537
                          } ]
                        }, {
                          "name" : "attachments",
                          "error" : false,
                          "documents" : [ {
                            "id" : "11002077",
                            "name" : "Dokument 2",
                            "internalName" : "document 2",
                            "brand" : "Marke 1",
                            "brandIcon" : "http://localhost:9000/assets/images/brand-preview.png",
                            "outdated" : false,
                            "previewUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg",
                            "mediumUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg",
                            "pages" : [ {
                              "pageNumber" : 2,
                              "pageName" : "2",
                              "previewUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg",
                              "mediumUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg"
                            } ]
                          } ]
                        } ]
                      } ]
                    }
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Missing parameter or malformed request",
            "content" : {
              "application/json" : {
                "examples" : {
                  "example1" : {
                    "value" : {
                      "success" : false,
                      "error" : true,
                      "message" : "The parameter {missingParameter} must be filled."
                    }
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Authentication required but none provided",
            "content" : {
              "application/json" : { }
            }
          },
          "403" : {
            "description" : "Invalid authentication or missing permission",
            "content" : {
              "application/json" : { }
            }
          },
          "404" : {
            "description" : "Resource not found",
            "content" : {
              "application/json" : { }
            }
          },
          "405" : {
            "description" : "Incorrect request method, e.g. GET instead of POST",
            "content" : {
              "application/json" : { }
            }
          },
          "500" : {
            "description" : "Unexpected server-side error",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/portals/api/v1/product/data" : {
      "get" : {
        "operationId" : "get-portals-api-v1-product-data",
        "summary" : "Fetch Complete Information of Products V1",
        "description" : "Allows to fetch extensive product information in different formats (existence flag, JSON or HTML).\nUp to 30 products can be requested by numbering the parameters itemNumber, supplierNumber or productId upwards.\n",
        "parameters" : [ {
          "name" : "accessToken",
          "in" : "query",
          "required" : true,
          "description" : "Access token for non-public portals. When submitting a <i>user</i> or <i>roles,</i> the respective values need to be considered during the computation of the token. See kba:INT63 for details.",
          "schema" : {
            "type" : "string"
          },
          "example" : "d0765f518ff0cab426dbbd6d467c9967"
        }, {
          "name" : "portal",
          "in" : "query",
          "required" : true,
          "description" : "Globally unique alpha-numeric code as set up or automatically assigned. Also visible in the respective URL on the <a href=\"/portals\">Portals</a> page.",
          "schema" : {
            "type" : "string"
          },
          "example" : "9999999"
        }, {
          "name" : "user",
          "in" : "query",
          "required" : true,
          "description" : "User name",
          "schema" : {
            "type" : "string"
          },
          "example" : "john.doe"
        }, {
          "name" : "gtin1",
          "in" : "query",
          "required" : false,
          "description" : "Specifies the GTIN of the product to search for. Can be used as an alternative to 'itemNumber1'.",
          "schema" : {
            "type" : "string"
          },
          "example" : "12345678901231"
        }, {
          "name" : "itemNumber1",
          "in" : "query",
          "required" : false,
          "description" : "Specifies the item number to search for. Required if no 'productId1' is provided.",
          "schema" : {
            "type" : "string"
          },
          "example" : "2186 183"
        }, {
          "name" : "language",
          "in" : "query",
          "required" : false,
          "description" : "Language to use for human-readable data. Does not affect content where applicable. Provide a two-letter ISO code.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "model1",
          "in" : "query",
          "required" : false,
          "description" : "Specifies the model of the product to search for. Can be used as an alternative to 'itemNumber1'.",
          "schema" : {
            "type" : "string"
          },
          "example" : "Model 2186 White"
        }, {
          "name" : "productId1",
          "in" : "query",
          "required" : false,
          "description" : "Specifies the product entity ID to search for. Required if no 'itemNumber1' is provided.",
          "schema" : {
            "type" : "string"
          },
          "example" : "ABC123"
        }, {
          "name" : "queries",
          "in" : "query",
          "required" : false,
          "description" : "Specifies the information to fetch for each product.\nProvide no suffix for JSON Data, suffix '-html' for rendered HTML and '-exists' for a boolean flag.\nThis parameter could be provided multiple times with one parameter-value-pair for each queried information.\nSee kba:22MEJ#information-types for possible values.\n",
          "schema" : {
            "type" : "string"
          },
          "example" : "attachments-html"
        }, {
          "name" : "queries1",
          "in" : "query",
          "required" : false,
          "description" : "Specifies the information to fetch for a specific product.\nProvide no suffix for JSON Data, suffix '-html' for rendered HTML and '-exists' for a boolean flag.\nThis parameter could be provided multiple times with one parameter-value-pair for each queried information.\n",
          "schema" : {
            "type" : "string"
          },
          "example" : "attachments-html"
        }, {
          "name" : "roles",
          "in" : "query",
          "required" : false,
          "description" : "Comma-separated list of roles assigned to the user. Can be omitted if roles are not in use, or if the portal is public.",
          "schema" : {
            "type" : "string"
          },
          "example" : "Heating,Electronics,Top-Customer"
        }, {
          "name" : "supplierNumber1",
          "in" : "query",
          "required" : false,
          "description" : "Specifies the number of the supplier of the product to search for.",
          "schema" : {
            "type" : "string"
          },
          "example" : "WI"
        } ],
        "responses" : {
          "200" : {
            "description" : "Images and document pages for multiple products.",
            "content" : {
              "application/json" : {
                "examples" : {
                  "example1" : {
                    "value" : {
                      "success" : true,
                      "error" : false,
                      "products" : [ {
                        "productId" : "ABC123",
                        "supplierNumber" : "WI",
                        "itemNumber" : "2186 183",
                        "resolved" : true,
                        "queries" : [ {
                          "name" : "product-images",
                          "error" : false,
                          "images" : [ {
                            "type" : "COLORED_IMAGE",
                            "typeName" : "Produktbild",
                            "description" : null,
                            "filename" : "product.png",
                            "iconUrl" : "https://oxomi.com/shared-media/epoch/.../oxomi/attachments/other.png",
                            "downloadUrl" : "https://oxomi.com/dasd/pd/attachments/.../.../.../product.png",
                            "fingerprint" : "ABC123",
                            "fileSize" : "189.54 KB",
                            "fileSizeInBytes" : 189537
                          } ]
                        }, {
                          "name" : "attachments",
                          "error" : false,
                          "documents" : [ {
                            "id" : "11002077",
                            "name" : "Dokument 1",
                            "internalName" : "document 1",
                            "brand" : "Marke 1",
                            "brandIcon" : "http://localhost:9000/assets/images/brand-preview.png",
                            "outdated" : false,
                            "previewUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg",
                            "mediumUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg",
                            "pages" : [ {
                              "pageNumber" : 1,
                              "pageName" : "1",
                              "previewUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg",
                              "mediumUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg"
                            } ]
                          } ]
                        } ]
                      }, {
                        "productId" : "ABC124",
                        "supplierNumber" : "WI",
                        "itemNumber" : "2186 184",
                        "resolved" : true,
                        "queries" : [ {
                          "name" : "product-images",
                          "error" : false,
                          "images" : [ {
                            "type" : "COLORED_IMAGE",
                            "typeName" : "Produktbild",
                            "description" : null,
                            "filename" : "product2.png",
                            "iconUrl" : "https://oxomi.com/shared-media/epoch/.../oxomi/attachments/other.png",
                            "downloadUrl" : "https://oxomi.com/dasd/pd/attachments/.../.../.../product2.png",
                            "fingerprint" : "ABC123",
                            "fileSize" : "189.54 KB",
                            "fileSizeInBytes" : 189537
                          } ]
                        }, {
                          "name" : "attachments",
                          "error" : false,
                          "documents" : [ {
                            "id" : "11002077",
                            "name" : "Dokument 2",
                            "internalName" : "document 2",
                            "brand" : "Marke 1",
                            "brandIcon" : "http://localhost:9000/assets/images/brand-preview.png",
                            "outdated" : false,
                            "previewUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg",
                            "mediumUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg",
                            "pages" : [ {
                              "pageNumber" : 2,
                              "pageName" : "2",
                              "previewUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg",
                              "mediumUrl" : "http://localhost:9000/dasd/p/documents/.../.../....jpg"
                            } ]
                          } ]
                        } ]
                      } ]
                    }
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Missing parameter or malformed request",
            "content" : {
              "application/json" : {
                "examples" : {
                  "example1" : {
                    "value" : {
                      "success" : false,
                      "error" : true,
                      "message" : "The parameter {missingParameter} must be filled."
                    }
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Authentication required but none provided",
            "content" : {
              "application/json" : { }
            }
          },
          "403" : {
            "description" : "Invalid authentication or missing permission",
            "content" : {
              "application/json" : { }
            }
          },
          "404" : {
            "description" : "Resource not found",
            "content" : {
              "application/json" : { }
            }
          },
          "405" : {
            "description" : "Incorrect request method, e.g. GET instead of POST",
            "content" : {
              "application/json" : { }
            }
          },
          "500" : {
            "description" : "Unexpected server-side error",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/portals/api/v1/products/availability" : {
      "post" : {
        "operationId" : "post-portals-api-v1-products-availability",
        "summary" : "Product Availability",
        "description" : "Obtains product availability details from manufacturers.\nUp to 100 items can be requested by numbering the parameters item, quantity and unit upwards.\n",
        "parameters" : [ {
          "name" : "accessToken",
          "in" : "query",
          "required" : true,
          "description" : "Access token for non-public portals. When submitting a <i>user</i> or <i>roles,</i> the respective values need to be considered during the computation of the token. See kba:INT63 for details.",
          "schema" : {
            "type" : "string"
          },
          "example" : "d0765f518ff0cab426dbbd6d467c9967"
        }, {
          "name" : "itemNumber1",
          "in" : "query",
          "required" : true,
          "description" : "Item number",
          "schema" : {
            "type" : "string"
          },
          "example" : "2186 183"
        }, {
          "name" : "mode",
          "in" : "query",
          "required" : true,
          "description" : "Mode (cached or live)",
          "schema" : {
            "type" : "string"
          },
          "example" : "live"
        }, {
          "name" : "portal",
          "in" : "query",
          "required" : true,
          "description" : "Globally unique alpha-numeric code as set up or automatically assigned. Also visible in the respective URL on the <a href=\"/portals\">Portals</a> page.",
          "schema" : {
            "type" : "string"
          },
          "example" : "9999999"
        }, {
          "name" : "user",
          "in" : "query",
          "required" : true,
          "description" : "User name",
          "schema" : {
            "type" : "string"
          },
          "example" : "john.doe"
        }, {
          "name" : "language",
          "in" : "query",
          "required" : false,
          "description" : "Language to use for human-readable data. Does not affect content where applicable. Provide a two-letter ISO code.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "quantity1",
          "in" : "query",
          "required" : false,
          "description" : "Item quantity",
          "schema" : {
            "type" : "string"
          },
          "example" : "500"
        }, {
          "name" : "roles",
          "in" : "query",
          "required" : false,
          "description" : "Comma-separated list of roles assigned to the user. Can be omitted if roles are not in use, or if the portal is public.",
          "schema" : {
            "type" : "string"
          },
          "example" : "Heating,Electronics,Top-Customer"
        }, {
          "name" : "supplierNumber1",
          "in" : "query",
          "required" : false,
          "description" : "Supplier number in the partnership",
          "schema" : {
            "type" : "string"
          },
          "example" : "WI"
        }, {
          "name" : "unit1",
          "in" : "query",
          "required" : false,
          "description" : "Item unit related to the item quantity",
          "schema" : {
            "type" : "string"
          },
          "example" : "PCE"
        } ],
        "responses" : {
          "200" : {
            "description" : "Successful response",
            "content" : {
              "application/json" : {
                "examples" : {
                  "example1" : {
                    "value" : {
                      "items" : [ {
                        "itemNumber" : "2186 183",
                        "normalizedItemNumber" : "2186183",
                        "supplierNumber" : "WI",
                        "requestedQuantity" : 500,
                        "cached" : false,
                        "unknownPartner" : false,
                        "expectedRenewedAvailability" : "2022-08-15",
                        "unit" : "PCE",
                        "unitName" : "Stück",
                        "stock" : 1200,
                        "stockIndicator" : "LOW",
                        "stockMessage" : "Geringer Bestand: 1.200 Stk",
                        "computedStockMessage" : "Geringer Bestand: 1.200 Stk",
                        "manufacturerStockMessage" : "",
                        "manufacturingTimeDays" : null
                      } ]
                    }
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Missing parameter or malformed request",
            "content" : {
              "application/json" : {
                "examples" : {
                  "example1" : {
                    "value" : {
                      "success" : false,
                      "error" : true,
                      "message" : "The parameter {missingParameter} must be filled."
                    }
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Authentication required but none provided",
            "content" : {
              "application/json" : { }
            }
          },
          "403" : {
            "description" : "Invalid authentication or missing permission",
            "content" : {
              "application/json" : { }
            }
          },
          "404" : {
            "description" : "Resource not found",
            "content" : {
              "application/json" : { }
            }
          },
          "405" : {
            "description" : "Incorrect request method, e.g. GET instead of POST",
            "content" : {
              "application/json" : { }
            }
          },
          "500" : {
            "description" : "Unexpected server-side error",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/portals/api/xml/v1/products/availability" : {
      "post" : {
        "operationId" : "post-portals-api-xml-v1-products-availability",
        "summary" : "Product Availability",
        "description" : "Obtains product availability details from manufacturers.\nUp to 100 items can be requested.",
        "parameters" : [ {
          "name" : "accessToken",
          "in" : "query",
          "required" : true,
          "description" : "Access token for non-public portals. When submitting a <i>user</i> or <i>roles,</i> the respective values need to be considered during the computation of the token. See kba:INT63 for details.",
          "schema" : {
            "type" : "string"
          },
          "example" : "d0765f518ff0cab426dbbd6d467c9967"
        }, {
          "name" : "mode",
          "in" : "query",
          "required" : true,
          "description" : "Mode (cached or live)",
          "schema" : {
            "type" : "string"
          },
          "example" : "live"
        }, {
          "name" : "portal",
          "in" : "query",
          "required" : true,
          "description" : "Globally unique alpha-numeric code as set up or automatically assigned. Also visible in the respective URL on the <a href=\"/portals\">Portals</a> page.",
          "schema" : {
            "type" : "string"
          },
          "example" : "9999999"
        }, {
          "name" : "user",
          "in" : "query",
          "required" : true,
          "description" : "User name",
          "schema" : {
            "type" : "string"
          },
          "example" : "john.doe"
        }, {
          "name" : "language",
          "in" : "query",
          "required" : false,
          "description" : "Language to use for human-readable data. Does not affect content where applicable. Provide a two-letter ISO code.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "roles",
          "in" : "query",
          "required" : false,
          "description" : "Comma-separated list of roles assigned to the user. Can be omitted if roles are not in use, or if the portal is public.",
          "schema" : {
            "type" : "string"
          },
          "example" : "Heating,Electronics,Top-Customer"
        } ],
        "requestBody" : {
          "description" : "Single item",
          "required" : false,
          "content" : {
            "text/xml" : {
              "examples" : {
                "example1" : {
                  "value" : "<items>\n  <mode>cached</mode>\n  <item>\n    <itemNumber>2186 183</itemNumber>\n    <supplierNumber>WI</supplierNumber>\n    <quantity>500</quantity>\n    <unit>PCE</unit>\n  </item>\n</items>\n"
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Single item",
            "content" : {
              "text/xml" : {
                "examples" : {
                  "example1" : {
                    "value" : "<items>\n   <item>\n     <itemNumber>2186 183</itemNumber>\n     <normalizedItemNumber>2186183</normalizedItemNumber>\n     <supplierNumber>WI</supplierNumber>\n     <requestedQuantity>500</requestedQuantity>\n     <cached>false</cached>\n     <unknownPartner>false</unknownPartner>\n     <expectedRenewedAvailability>2022-08-15</expectedRenewedAvailability>\n     <unit>PCE</unit>\n     <unitName>Stück</unitName>\n     <stock>1200</stock>\n     <stockIndicator>LOW</stockIndicator>\n     <stockMessage>Geringer Bestand: 1.200 Stk</stockMessage>\n     <computedStockMessage>Geringer Bestand: 1.200 Stk</computedStockMessage>\n     <manufacturerStockMessage/>\n     <manufacturingTimeDays/>\n   </item>\n </items>\n"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Missing parameter or malformed request",
            "content" : {
              "text/xml" : {
                "examples" : {
                  "example1" : {
                    "value" : "<result>\n    <success>false</success>\n    <error>true</error>\n    <message>The parameter {missingParameter} must be filled.</message>\n</result>\n"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Authentication required but none provided",
            "content" : {
              "text/xml" : { }
            }
          },
          "403" : {
            "description" : "Invalid authentication or missing permission",
            "content" : {
              "text/xml" : { }
            }
          },
          "404" : {
            "description" : "Resource not found",
            "content" : {
              "text/xml" : { }
            }
          },
          "405" : {
            "description" : "Incorrect request method, e.g. GET instead of POST",
            "content" : {
              "text/xml" : { }
            }
          },
          "500" : {
            "description" : "Unexpected server-side error",
            "content" : {
              "text/xml" : { }
            }
          }
        }
      }
    },
    "/portals/api/v1/products/resolve-gtin" : {
      "get" : {
        "operationId" : "get-portals-api-v1-products-resolve-gtin",
        "summary" : "Resolve GTIN to Product",
        "description" : "Resolves a product from a given GTIN13 or GTIN14.\n",
        "parameters" : [ {
          "name" : "accessToken",
          "in" : "query",
          "required" : true,
          "description" : "Access token for non-public portals. When submitting a <i>user</i> or <i>roles,</i> the respective values need to be considered during the computation of the token. See kba:INT63 for details.",
          "schema" : {
            "type" : "string"
          },
          "example" : "d0765f518ff0cab426dbbd6d467c9967"
        }, {
          "name" : "gtin",
          "in" : "query",
          "required" : true,
          "description" : "A valid GTIN13 or GTIN14 that should be resolved to a supplier and item number pair.",
          "schema" : {
            "type" : "string"
          },
          "example" : "12345678901231"
        }, {
          "name" : "portal",
          "in" : "query",
          "required" : true,
          "description" : "Globally unique alpha-numeric code as set up or automatically assigned. Also visible in the respective URL on the <a href=\"/portals\">Portals</a> page.",
          "schema" : {
            "type" : "string"
          },
          "example" : "9999999"
        }, {
          "name" : "user",
          "in" : "query",
          "required" : true,
          "description" : "User name",
          "schema" : {
            "type" : "string"
          },
          "example" : "john.doe"
        }, {
          "name" : "filterCountry",
          "in" : "query",
          "required" : false,
          "description" : "The country to filter by. Provide a two-letter ISO code. Note that internationalisation is a paid feature that needs to be purchased and enabled separately.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "filterLanguage",
          "in" : "query",
          "required" : false,
          "description" : "The language to filter by in case of multi language portals. Provide a two-letter ISO code. Note that internationalisation is a paid feature that needs to be purchased and enabled separately.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "language",
          "in" : "query",
          "required" : false,
          "description" : "Language to use for human-readable data. Does not affect content where applicable. Provide a two-letter ISO code.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "roles",
          "in" : "query",
          "required" : false,
          "description" : "Comma-separated list of roles assigned to the user. Can be omitted if roles are not in use, or if the portal is public.",
          "schema" : {
            "type" : "string"
          },
          "example" : "Heating,Electronics,Top-Customer"
        } ],
        "responses" : {
          "200" : {
            "description" : "Product not found",
            "content" : {
              "application/json" : {
                "examples" : {
                  "example1" : {
                    "value" : {
                      "success" : true,
                      "error" : false,
                      "resolved" : false
                    }
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Missing parameter or malformed request",
            "content" : {
              "application/json" : {
                "examples" : {
                  "example1" : {
                    "value" : {
                      "success" : false,
                      "error" : true,
                      "message" : "The parameter {missingParameter} must be filled."
                    }
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Authentication required but none provided",
            "content" : {
              "application/json" : { }
            }
          },
          "403" : {
            "description" : "Invalid authentication or missing permission",
            "content" : {
              "application/json" : { }
            }
          },
          "404" : {
            "description" : "Resource not found",
            "content" : {
              "application/json" : { }
            }
          },
          "405" : {
            "description" : "Incorrect request method, e.g. GET instead of POST",
            "content" : {
              "application/json" : { }
            }
          },
          "500" : {
            "description" : "Unexpected server-side error",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    },
    "/portals/api/xml/v1/products/resolve-gtin" : {
      "get" : {
        "operationId" : "get-portals-api-xml-v1-products-resolve-gtin",
        "summary" : "Resolve GTIN to Product",
        "description" : "Resolves a product from a given GTIN13 or GTIN14.\n",
        "parameters" : [ {
          "name" : "accessToken",
          "in" : "query",
          "required" : true,
          "description" : "Access token for non-public portals. When submitting a <i>user</i> or <i>roles,</i> the respective values need to be considered during the computation of the token. See kba:INT63 for details.",
          "schema" : {
            "type" : "string"
          },
          "example" : "d0765f518ff0cab426dbbd6d467c9967"
        }, {
          "name" : "gtin",
          "in" : "query",
          "required" : true,
          "description" : "A valid GTIN13 or GTIN14 that should be resolved to a supplier and item number pair.",
          "schema" : {
            "type" : "string"
          },
          "example" : "00012345600012"
        }, {
          "name" : "portal",
          "in" : "query",
          "required" : true,
          "description" : "Globally unique alpha-numeric code as set up or automatically assigned. Also visible in the respective URL on the <a href=\"/portals\">Portals</a> page.",
          "schema" : {
            "type" : "string"
          },
          "example" : "9999999"
        }, {
          "name" : "user",
          "in" : "query",
          "required" : true,
          "description" : "User name",
          "schema" : {
            "type" : "string"
          },
          "example" : "john.doe"
        }, {
          "name" : "filterCountry",
          "in" : "query",
          "required" : false,
          "description" : "The country to filter by. Provide a two-letter ISO code. Note that internationalisation is a paid feature that needs to be purchased and enabled separately.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "filterLanguage",
          "in" : "query",
          "required" : false,
          "description" : "The language to filter by in case of multi language portals. Provide a two-letter ISO code. Note that internationalisation is a paid feature that needs to be purchased and enabled separately.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "language",
          "in" : "query",
          "required" : false,
          "description" : "Language to use for human-readable data. Does not affect content where applicable. Provide a two-letter ISO code.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "roles",
          "in" : "query",
          "required" : false,
          "description" : "Comma-separated list of roles assigned to the user. Can be omitted if roles are not in use, or if the portal is public.",
          "schema" : {
            "type" : "string"
          },
          "example" : "Heating,Electronics,Top-Customer"
        } ],
        "responses" : {
          "200" : {
            "description" : "Product not found",
            "content" : {
              "text/xml" : {
                "examples" : {
                  "example1" : {
                    "value" : "<result>\n    <success>true</success>\n    <error>false</error>\n    <resolved>false</itemFound>\n</result>\n"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Missing parameter or malformed request",
            "content" : {
              "text/xml" : {
                "examples" : {
                  "example1" : {
                    "value" : "<result>\n    <success>false</success>\n    <error>true</error>\n    <message>The parameter {missingParameter} must be filled.</message>\n</result>\n"
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Authentication required but none provided",
            "content" : {
              "text/xml" : { }
            }
          },
          "403" : {
            "description" : "Invalid authentication or missing permission",
            "content" : {
              "text/xml" : { }
            }
          },
          "404" : {
            "description" : "Resource not found",
            "content" : {
              "text/xml" : { }
            }
          },
          "405" : {
            "description" : "Incorrect request method, e.g. GET instead of POST",
            "content" : {
              "text/xml" : { }
            }
          },
          "500" : {
            "description" : "Unexpected server-side error",
            "content" : {
              "text/xml" : { }
            }
          }
        }
      }
    },
    "/portals/api/v2/products/search" : {
      "post" : {
        "operationId" : "post-portals-api-v2-products-search",
        "summary" : "Search Products via Query Text",
        "description" : "Allows to search for products based on the same query logic as used in Navigator Pro.\n<p>\nThe result can be narrowed by the same filters as Navigator Pro uses, given as the <i>filters</i> object\nof the payload next to the queries. Each value may be a single value or an array of values.\n<p>\nA filter value is always a technical key, never a display name. A display name is not rejected, it simply\nmatches no product. These filters are supported:\n<ul>\n<li><b>brand</b> - the id of a brand. A brand name is not resolved.</li>\n<li><b>series</b> - the id or the code of a series. A code is resolved against the filtered brand, or\nagainst the portal owner if no brand is filtered.</li>\n<li><b>metaclass</b> - an ETIM group or class as a hierarchy vector rather than a plain class code, e.g.\n<i>metaclass|EG000001&gt;metaclass|EC000123</i>. This is what allows drilling down from a group into its\nclasses.</li>\n<li><b>product-group</b> - the id or the code of a product group, resolved like the series.</li>\n<li><b>product-type</b> and <b>product-lifecycle-state</b> - only applied if the respective filter is\nenabled for the portal.</li>\n<li><b>FEATURE_&lt;code&gt;</b> - the values of an ETIM feature, several of which are combined with OR.\n</li>\n<li><b>FEATURE_&lt;code&gt;-min</b> and <b>FEATURE_&lt;code&gt;-max</b> - the bounds of a numeric ETIM\nfeature. The number is parsed in the language of the request, so the decimal separator follows it.</li>\n<li><b>properties</b> - ETIM feature values regardless of the feature they belong to.</li>\n</ul>\nBrand, series, class, product group, type and lifecycle state accept a single value each; a second one is\nrejected. Feature and property filters accept several.\n<p>\nFeatures are defined within a class, so a <i>FEATURE_...</i> or <i>properties</i> filter is only applied\nonce a class is known - either from <i>metaclass</i> or recognized within the query text. Without a class\nit is silently ignored.\n<p>\nFor compatibility with the Navigator Pro vocabulary, all of these are alternatively accepted as\n<i>filters[&lt;name&gt;][]</i> parameters of the query string, which then take precedence.\n<p>\nBy default, a query which matches more products than <i>limit</i> is treated as a miss and the next\n<i>query</i> of the cascade is tried instead - so that a query which is too broad to be useful does not\nreturn an arbitrary excerpt of it. Setting <i>truncate</i> to <tt>true</tt> disables this: the query is\naccepted as a match, <i>total</i> reports the real number of matches, and only the first <i>limit</i>\nproducts are returned.\n<p>\nSetting <i>includeFacets</i> to <tt>true</tt> adds a <i>facets</i> object to a matched result.\n<p>\n<i>facets.filters</i> lists the brands, product series, ETIM classes and product groups within the result.\nThe <i>code</i> of an entry is the filter name to pass it back as, and the <tt>value</tt> of a choice is\nthe filter value - so a facet can be applied without translating anything. A facet is omitted if no\nproduct of the result carries a value for it, and it is capped at the 25 most frequent choices. Its\n<i>totalChoices</i> reports how many distinct values the result actually holds, so a value above the\nnumber of choices means the listed ones are only the most frequent, not the complete set. Note that\na facet whose filter is already applied only reports the selected value, as the result is narrowed to it.\n<p>\n<i>facets.features</i> and <i>facets.properties</i> are only filled once a concrete class is known (either\nfrom <i>metaclass</i> or recognized within the query text - an ETIM group alone carries no features);\nwithout one they are emitted as empty arrays. <i>facets.features</i> lists the ETIM features of that class\nwhich are relevant as a filter, each either as <tt>type: \"bool\"</tt> or <tt>\"choice\"</tt> with a\n<i>choices</i> array of <tt>value</tt>/<tt>label</tt>/<tt>count</tt>, or as <tt>type: \"range\"</tt> with a\n<i>min</i>/<i>max</i> (always the external, human-facing value regardless of request locale) and an\noptional <i>unit</i>. <i>facets.properties</i> lists the boolean ETIM properties of the class with a\n<tt>count</tt> each - the <i>code</i> of an entry is the value to put into the <i>properties</i> filter.\n<p>\nEvery hit carries the <i>datasheetUrl</i> of its product datasheet in the requested portal, so it does not\nhave to be assembled from the item and supplier number. The field is absent - rather than empty - for a\nportal which has deep links disabled, and it addresses the product by its normalized item number, which is\nwhy it need not match <i>itemNumber</i> character by character.\n",
        "parameters" : [ {
          "name" : "accessToken",
          "in" : "query",
          "required" : true,
          "description" : "Access token for non-public portals. When submitting a <i>user</i> or <i>roles,</i> the respective values need to be considered during the computation of the token. See kba:INT63 for details.",
          "schema" : {
            "type" : "string"
          },
          "example" : "d0765f518ff0cab426dbbd6d467c9967"
        }, {
          "name" : "portal",
          "in" : "query",
          "required" : true,
          "description" : "Globally unique alpha-numeric code as set up or automatically assigned. Also visible in the respective URL on the <a href=\"/portals\">Portals</a> page.",
          "schema" : {
            "type" : "string"
          },
          "example" : "9999999"
        }, {
          "name" : "user",
          "in" : "query",
          "required" : true,
          "description" : "User name",
          "schema" : {
            "type" : "string"
          },
          "example" : "john.doe"
        }, {
          "name" : "filterCountry",
          "in" : "query",
          "required" : false,
          "description" : "The country to filter by. Provide a two-letter ISO code. Note that internationalisation is a paid feature that needs to be purchased and enabled separately.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "filterLanguage",
          "in" : "query",
          "required" : false,
          "description" : "The language to filter by in case of multi language portals. Provide a two-letter ISO code. Note that internationalisation is a paid feature that needs to be purchased and enabled separately.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "language",
          "in" : "query",
          "required" : false,
          "description" : "Language to use for human-readable data. Does not affect content where applicable. Provide a two-letter ISO code.",
          "schema" : {
            "type" : "string"
          },
          "example" : "de"
        }, {
          "name" : "roles",
          "in" : "query",
          "required" : false,
          "description" : "Comma-separated list of roles assigned to the user. Can be omitted if roles are not in use, or if the portal is public.",
          "schema" : {
            "type" : "string"
          },
          "example" : "Heating,Electronics,Top-Customer"
        } ],
        "requestBody" : {
          "description" : "Providing multiple query texts and the filters to narrow the result",
          "required" : false,
          "content" : {
            "application/json" : {
              "examples" : {
                "example1" : {
                  "value" : {
                    "limit" : 10,
                    "queries" : [ "ST.001.A", "00012345600012", "ST Sanitär Halbeinbauwaschtisch weiß mit Tisch schwarz", "ST Sanitär Waschtisch weiß" ],
                    "filters" : {
                      "brand" : "86AFJJLLCIDDA7AE169EFJP3M4",
                      "metaclass" : "metaclass|EG000001>metaclass|EC000123",
                      "FEATURE_EF002336" : [ "EV022510", "EV022511" ],
                      "FEATURE_EF025889-min" : 10
                    },
                    "truncate" : false,
                    "includeFacets" : false
                  }
                }
              }
            }
          }
        },
        "responses" : {
          "200" : {
            "description" : "Result on query match",
            "content" : {
              "application/json" : {
                "examples" : {
                  "example1" : {
                    "value" : {
                      "success" : true,
                      "error" : false,
                      "matchedQuery" : 0,
                      "total" : 1,
                      "products" : [ {
                        "itemNumber" : "ST.001.A",
                        "supplierNumber" : "1351",
                        "gtin" : "00012345600012",
                        "model" : "ST 001 A",
                        "previewImageUrl" : "https://oxomi.com/dasd/cv/attachments/.../product-image-preview/....jpg",
                        "datasheetUrl" : "https://oxomi.com/p/9999999/datasheet/1351/st.001.a",
                        "brand" : {
                          "id" : "ABC123",
                          "name" : "ST Sanitär",
                          "mediumImageUrl" : "https://oxomi.com/dasd/cv/tenants/.../tenant-medium/....jpg"
                        },
                        "series" : {
                          "id" : "XYZ123",
                          "code" : "ST-CeramX",
                          "name" : "ST-CeramX",
                          "mediumImageUrl" : "https://oxomi.com/dasd/p/series/.../.../....jpg"
                        },
                        "shortText" : "Halbeinbauwaschtisch weiß mit Tisch schwarz",
                        "descriptionText" : "Ein Halbeinbauwaschtisch von ST Sanitär aus der Serie ST-CeramX. Erhältlich in weiß mit schwarzem Tisch.",
                        "marketingText" : "Der Halbeinbauwaschtisch ST.001.A von ST Sanitär aus der Serie ST-CeramX überzeugt durch sein modernes Design und die hochwertige Verarbeitung."
                      } ],
                      "facets" : {
                        "filters" : [ {
                          "code" : "brand",
                          "label" : "Marke",
                          "totalChoices" : 1,
                          "choices" : [ {
                            "value" : "ABC123",
                            "label" : "ST Sanitär",
                            "count" : 1
                          } ]
                        }, {
                          "code" : "metaclass",
                          "label" : "Produktgruppe",
                          "totalChoices" : 1,
                          "choices" : [ {
                            "value" : "metaclass|EC000123",
                            "label" : "Waschtisch",
                            "count" : 1
                          } ]
                        } ],
                        "features" : [ {
                          "code" : "FEATURE_EF002336",
                          "label" : "Farbe",
                          "type" : "choice",
                          "choices" : [ {
                            "value" : "EV000123",
                            "label" : "weiß",
                            "count" : 1
                          } ]
                        }, {
                          "code" : "FEATURE_EF025889",
                          "label" : "Breite",
                          "type" : "range",
                          "min" : 45.0,
                          "max" : 100.0,
                          "unit" : "cm"
                        } ],
                        "properties" : [ {
                          "code" : "FEATURE_EF099999",
                          "label" : "Unterbaufähig",
                          "count" : 1
                        } ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Missing parameter or malformed request",
            "content" : {
              "application/json" : {
                "examples" : {
                  "example1" : {
                    "value" : {
                      "success" : false,
                      "error" : true,
                      "message" : "The parameter {missingParameter} must be filled."
                    }
                  }
                }
              }
            }
          },
          "401" : {
            "description" : "Authentication required but none provided",
            "content" : {
              "application/json" : { }
            }
          },
          "403" : {
            "description" : "Invalid authentication or missing permission",
            "content" : {
              "application/json" : { }
            }
          },
          "404" : {
            "description" : "Resource not found",
            "content" : {
              "application/json" : { }
            }
          },
          "405" : {
            "description" : "Incorrect request method, e.g. GET instead of POST",
            "content" : {
              "application/json" : { }
            }
          },
          "500" : {
            "description" : "Unexpected server-side error",
            "content" : {
              "application/json" : { }
            }
          }
        }
      }
    }
  }
}