{
    "openapi": "3.1.0",
    "info": {
        "title": "Balluff API",
        "description": "Official API Documentation",
        "version": "1.0.0"
    },
    "paths": {
        "/api/productfinder/categories/{categoryId}/products": {
            "get": {
                "tags": [
                    "Product Categories"
                ],
                "summary": "Get products by Category ID.",
                "operationId": "getProductCategoryProducts",
                "parameters": [
                    {
                        "name": "categoryId",
                        "in": "path",
                        "description": "Category ID.<br>The requested Category type must be = `product`, otherwise, you will receive an error.",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "examples": {
                            "F01102": {
                                "summary": "F01102 (Category type = Product)",
                                "value": "F01102"
                            },
                            "F09102": {
                                "summary": "F09102 (Category type = Product)",
                                "value": "F09102"
                            }
                        }
                    },
                    {
                        "name": "sort_by",
                        "in": "query",
                        "description": "Here should be passed the `id` of a column retrieved within `columns` property of the `ProductsResponse`.",
                        "required": false,
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        },
                        "examples": {
                            " ": {
                                "summary": " ",
                                "value": " "
                            },
                            "cal_pm_style": {
                                "summary": "cal_pm_style",
                                "value": "cal_pm_style"
                            },
                            "cal_pm_range_sn_max": {
                                "summary": "cal_pm_range_sn_max",
                                "value": "cal_pm_range_sn_max"
                            },
                            "cal_digital_input_bni": {
                                "summary": "cal_digital_input_bni",
                                "value": "cal_digital_input_bni"
                            }
                        }
                    },
                    {
                        "name": "sort_direction",
                        "in": "query",
                        "description": "The direction of sorting the products.",
                        "required": false,
                        "schema": {
                            "type": [
                                "object",
                                "null"
                            ]
                        },
                        "examples": {
                            " ": {
                                "summary": " ",
                                "value": " "
                            },
                            "asc": {
                                "summary": "asc",
                                "value": "asc"
                            },
                            "desc": {
                                "summary": "desc",
                                "value": "desc"
                            }
                        }
                    },
                    {
                        "name": "search_term",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": [
                                "string",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "description": "Maximum value is 50.",
                        "required": false,
                        "schema": {
                            "type": [
                                "integer",
                                "null"
                            ]
                        }
                    },
                    {
                        "name": "available_first",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": [
                                "boolean",
                                "null"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ProductsResponse"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/customer/me": {
            "get": {
                "tags": [
                    "Customer"
                ],
                "summary": "Get current customer data.",
                "description": "This endpoint returns the current customer data.",
                "operationId": "getCustomerData",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CustomerData"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/productfinder/categories/{categoryId}": {
            "get": {
                "tags": [
                    "Product Categories"
                ],
                "summary": "Get category and its children by Category ID.",
                "operationId": "getProductCategory",
                "parameters": [
                    {
                        "name": "categoryId",
                        "in": "path",
                        "description": "Category ID.\n                   <br>Response varies based on what type of category is requested (Category types are: `area`, `group`, `product`)\n                   <br>For more details, please check the schema or visit [/api/productfinder/categories](#/Product%20Categories/getProductCategoryTree).\n               ",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "examples": {
                            "A0001": {
                                "summary": "A0001 (Category type = Area)",
                                "value": "A0001"
                            },
                            "G0101": {
                                "summary": "G0101 (Category type = Group)",
                                "value": "G0101"
                            },
                            "F01102": {
                                "summary": "F01102 (Category type = Product)",
                                "value": "F01102"
                            }
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK<br><br><strong>`ATTENTION`</strong> - For <u>CategoryArea</u> third level <u>children</u> is always `null`!",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "oneOf": [
                                                {
                                                    "schema": "CategoryAreaWithoutThirdLevel",
                                                    "properties": {
                                                        "id": {
                                                            "type": "string",
                                                            "example": "A0001"
                                                        },
                                                        "type": {
                                                            "type": "string",
                                                            "example": "area"
                                                        },
                                                        "title": {
                                                            "type": "string",
                                                            "example": "Technologie de capteurs"
                                                        },
                                                        "thumbnail_url": {
                                                            "type": "string",
                                                            "example": "https://assets.balluff.com/tile/sensors.png"
                                                        },
                                                        "order": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "children": {
                                                            "type": "array",
                                                            "items": {
                                                                "properties": {
                                                                    "id": {
                                                                        "type": "string",
                                                                        "example": "G0101"
                                                                    },
                                                                    "type": {
                                                                        "type": "string",
                                                                        "example": "group"
                                                                    },
                                                                    "name": {
                                                                        "type": "string",
                                                                        "example": "Capteurs inductifs"
                                                                    },
                                                                    "title": {
                                                                        "type": "string",
                                                                        "example": "Capteurs inductifs"
                                                                    },
                                                                    "thumbnail_url": {
                                                                        "type": "string",
                                                                        "example": "https://assets.balluff.com/tile/thumb_inductive-sensors.png"
                                                                    },
                                                                    "order": {
                                                                        "type": "integer",
                                                                        "example": 1
                                                                    },
                                                                    "children": {
                                                                        "type": "null",
                                                                        "example": null
                                                                    }
                                                                },
                                                                "type": "object"
                                                            }
                                                        }
                                                    },
                                                    "type": "object"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/CategoryAreaGroup"
                                                },
                                                {
                                                    "$ref": "#/components/schemas/CategoryAreaGroupProduct"
                                                }
                                            ]
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        },
        "/api/productfinder/categories": {
            "get": {
                "tags": [
                    "Product Categories"
                ],
                "summary": "Get products full category tree.",
                "description": "This endpoint returns the full category tree for the products.<br>It is `three` level deep within the `children` property.\n                       <br>Each level has a `type` property which can be `area`, `group` or `product`.\n                       <br>The first level is the `area`, the second level is the `group` and the third level is the `product`.\n                       <br>Check full `schema` for more details.\n           ",
                "operationId": "getProductCategoryTree",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CategoryArea"
                                            }
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "500": {
                        "description": "Internal Server Error",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ErrorResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "bearerAuth": []
                    }
                ]
            }
        }
    },
    "components": {
        "schemas": {
            "CustomerData": {
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "first_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "last_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "email": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "locale": {
                        "type": "string"
                    },
                    "created_at": {
                        "type": "string",
                        "format": "date-time"
                    }
                },
                "type": "object"
            },
            "Pagination": {
                "properties": {
                    "current_page": {
                        "type": "integer"
                    },
                    "from": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "last_page": {
                        "type": "integer"
                    },
                    "per_page": {
                        "type": "integer"
                    },
                    "to": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "total": {
                        "type": "integer"
                    }
                },
                "type": "object"
            },
            "CategoryArea": {
                "title": "Category - Area",
                "description": "<u><strong>First Level</strong></u> of the Product Category Tree",
                "properties": {
                    "id": {
                        "type": "string",
                        "example": "A0001"
                    },
                    "type": {
                        "$ref": "#/components/schemas/CategoryType"
                    },
                    "title": {
                        "type": "string",
                        "example": "Sensors"
                    },
                    "thumbnail_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "https://assets.balluff.com/tile/sensors.png"
                    },
                    "order": {
                        "type": "integer",
                        "example": 1
                    },
                    "children": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "$ref": "#/components/schemas/CategoryAreaGroup"
                        }
                    }
                },
                "type": "object"
            },
            "CategoryAreaGroup": {
                "title": "Category - Area Group",
                "description": "<u><strong>Second Level</strong></u> of the Product Category Tree",
                "properties": {
                    "id": {
                        "type": "string",
                        "example": "G0101"
                    },
                    "type": {
                        "$ref": "#/components/schemas/CategoryType"
                    },
                    "name": {
                        "type": "string",
                        "example": "Inductive sensors"
                    },
                    "title": {
                        "type": "string",
                        "example": "Inductive sensors"
                    },
                    "thumbnail_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "https://assets.balluff.com/tile/thumb_inductive-sensors.png"
                    },
                    "order": {
                        "type": "integer",
                        "example": 1
                    },
                    "children": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "$ref": "#/components/schemas/CategoryAreaGroupProduct"
                        }
                    }
                },
                "type": "object"
            },
            "CategoryAreaGroupProduct": {
                "title": "Category - Area Group Product",
                "description": "<u><strong>Third Level</strong></u> of the Product Category Tree",
                "properties": {
                    "id": {
                        "type": "string",
                        "example": "F01102"
                    },
                    "type": {
                        "$ref": "#/components/schemas/CategoryType"
                    },
                    "name": {
                        "type": "string",
                        "example": "Standard inductive sensors"
                    },
                    "title": {
                        "type": "string",
                        "example": "Inductive proximity switches and proximity sensors"
                    },
                    "subtitle": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string",
                        "example": "Balluff offers a wide range of inductive proximity switches and sensors for various applications and industries. Whether standard inductive proximity sensors, high-pressure sensors, hygienic sensors / washdown compliant, factor 1 sensors, magnetic field resistant by magnetic shielding, weld immune proximity sensors, high temperature sensors, explosion-proof (IECEx, ATEX) or NAMUR sensors, you are guaranteed to find the right product for your individual application in our portfolio thanks to different housing materials and sealing methods. We offer different designs, housing diameters and thread sizes for easy integration in a wide range of situations and for optimum solutions even where space is limited.<br>The technology used worldwide has an optimum price-performance ratio and can be supplied in short delivery times, even for large quantities.<br>Increase the availability of your systems and reduce maintenance and storage costs at the same time with inductive proximity switches from Balluff."
                    },
                    "thumbnail_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "https://assets.balluff.com/thumbnails/2717911.png"
                    },
                    "image_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "https://assets.balluff.com/product_detail_1280x1280/2717911.png"
                    },
                    "bulletpoints": {
                        "type": "array",
                        "items": {
                            "type": "string",
                            "example": "Plug or cable connection"
                        }
                    },
                    "order": {
                        "type": "integer",
                        "example": 1
                    },
                    "columns": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ProductListColumn"
                        }
                    }
                },
                "type": "object"
            },
            "Product": {
                "properties": {
                    "id": {
                        "type": "string",
                        "example": "189096"
                    },
                    "pv_id": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "PV152307"
                    },
                    "order_code": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "BNI0047"
                    },
                    "label": {
                        "type": "string",
                        "example": "BNI PBS-302-101-Z001"
                    },
                    "thumbnail_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "https://assets.balluff.com/thumbnails/47215_01_P_00_00_00.png"
                    },
                    "image_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "https://assets.balluff.com/product_detail_1280x1280/47215_01_P_00_00_00.png"
                    },
                    "secondary_image_urls": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "secondary_thumbnail_urls": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "technical_drawing_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "https://assets.balluff.com/Product_View_Cropped/VIU_47215_01_000.png"
                    },
                    "type": {
                        "$ref": "#/components/schemas/ProductType"
                    },
                    "availability": {
                        "description": "How many items are available",
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "is_bundle_enabled": {
                        "type": "boolean"
                    },
                    "replacement": {
                        "$ref": "#/components/schemas/Product"
                    },
                    "replacements": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "$ref": "#/components/schemas/Product"
                        }
                    },
                    "energy_label": {
                        "type": [
                            "string|array",
                            "null"
                        ]
                    },
                    "price": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/ProductPrice"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "type": "object"
                    },
                    "category": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/CategoryAreaGroupProduct"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "type": "object"
                    },
                    "cad_link": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "https://balluff-embedded.partcommunity.com/?catalog=balluff&part=BNI PBS-302-101-Z001"
                    },
                    "cae_link": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "https://balluff-embedded-cae.partcommunity.com/?catalog=balluff&part=BNI PBS-302-101-Z001"
                    },
                    "multi_cae_link": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "datasheet_url": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "https://publications.balluff.com/pdfengine/pdf?type=pdb&id=189096&con=en"
                    },
                    "mttf_certificate_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "material_compliance_declaration_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "online_manual_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "online_manual_label": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "tutorials": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "type": "object"
                        }
                    },
                    "eola_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "quantity": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "price_quantity_unit": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "components": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/Product"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "type": "object"
                    },
                    "cart_information": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/ProductCartInformation"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "type": "object"
                    },
                    "availability_notification": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "to be discontinued"
                    },
                    "recommended_alternative_alloc_resource": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/Product"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "type": "object"
                    },
                    "qty_restrictions": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/ProductQuantityRestrictions"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "type": "object"
                    },
                    "video_urls": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/ProductVideo"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "type": "object"
                    },
                    "is_eligible_for_express_delivery": {
                        "type": "boolean"
                    },
                    "list_columns": {
                        "properties": {
                            "price": {
                                "properties": {
                                    "value": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 503.65
                                    },
                                    "minimum_quantity": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "currency": {
                                        "type": "string",
                                        "example": "EUR"
                                    }
                                },
                                "type": "object"
                            },
                            "cal_digital_input_bni": {
                                "type": "string",
                                "example": "16x PNP, Type 2"
                            },
                            "cal_digital_output_bni": {
                                "type": "string",
                                "example": "16x PNP"
                            },
                            "cal_analog_input_bni": {
                                "type": "string",
                                "example": ""
                            },
                            "cal_interface_bni": {
                                "type": "string",
                                "example": ""
                            },
                            "cal_interface": {
                                "type": "string",
                                "example": "Profibus DP EN 50170"
                            },
                            "cal_current_load_capacity_max": {
                                "type": "string",
                                "example": "2 A"
                            },
                            "cal_protection_type_iec_60529": {
                                "type": "string",
                                "example": "IP67, when threaded in"
                            },
                            "cal_housingmaterial": {
                                "type": "string",
                                "example": "Die-cast zinc, nickel-plated"
                            },
                            "sap_mara_ean11": {
                                "type": "string",
                                "example": "BNI0047"
                            }
                        },
                        "type": [
                            "object",
                            "null"
                        ]
                    },
                    "attributes": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/ProductAttribute"
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "type": "object"
                    }
                },
                "type": "object"
            },
            "ProductsFilter": {
                "title": "Products Filter",
                "description": "The data for filtering the products.",
                "properties": {
                    "sort_by": {
                        "description": "Here should be passed the `id` of a column retrieved within `columns` property of the `ProductsResponse`.",
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": " |cal_pm_style|cal_pm_range_sn_max|cal_digital_input_bni"
                    },
                    "sort_direction": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/SortDirection",
                                "description": "The direction of sorting the products."
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "description": "The direction of sorting the products.",
                        "type": "object",
                        "example": " |asc|desc"
                    },
                    "search_term": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "page": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "per_page": {
                        "description": "Maximum value is 50.",
                        "type": [
                            "integer",
                            "null"
                        ],
                        "maximum": 50
                    },
                    "available_first": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    }
                },
                "type": "object"
            },
            "ProductsResponse": {
                "title": "Products Response",
                "properties": {
                    "data": {
                        "description": "Product list",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Product"
                        }
                    },
                    "columns": {
                        "description": "Product list columns, that are common for the retrieved category products",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/ProductListColumn"
                        }
                    },
                    "pagination": {
                        "$ref": "#/components/schemas/Pagination"
                    }
                },
                "type": "object"
            },
            "SearchAttributeData": {
                "title": "Search Attribute",
                "description": "Search attribute, that could be used to filter the products dynamically.",
                "properties": {
                    "id": {
                        "type": "string",
                        "example": "cal_pm_style"
                    },
                    "name": {
                        "type": "string",
                        "example": "Style"
                    },
                    "search_type": {
                        "$ref": "#/components/schemas/SearchType"
                    },
                    "multi_valued": {
                        "type": "boolean"
                    },
                    "order": {
                        "type": "integer",
                        "example": 1
                    },
                    "default": {
                        "type": "boolean"
                    },
                    "unit": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "example": "mm"
                    },
                    "selected": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "values": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SearchAttributeValueData"
                        }
                    },
                    "min": {
                        "description": "In case if <b>selected</b> attribute's `search_type` is `slider_range`, then return type will be a ?float.<br>In case if <b>selected</b> attribute's `search_type` is `slider_range`, then return type will be an array.",
                        "oneOf": [
                            {
                                "type": "null"
                            },
                            {
                                "type": "number",
                                "format": "float"
                            },
                            {
                                "$ref": "#/components/schemas/SearchAttributeValueMinMaxData"
                            }
                        ]
                    },
                    "max": {
                        "description": "In case if <b>selected</b> attribute's `search_type` is `slider`, then return type will be a ?float.<br>In case if <b>selected</b> attribute's `search_type` is `slider_range`, then return type will be an array.",
                        "oneOf": [
                            {
                                "type": "null"
                            },
                            {
                                "type": "number",
                                "format": "float"
                            },
                            {
                                "$ref": "#/components/schemas/SearchAttributeValueMinMaxData"
                            }
                        ]
                    },
                    "min_values": {
                        "description": "Dedicated values for `slider_range` search type.",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SearchAttributeValueData"
                        }
                    },
                    "max_values": {
                        "description": "Dedicated values for `slider_range` search type.",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SearchAttributeValueData"
                        }
                    }
                },
                "type": "object"
            },
            "SearchAttributeLabelData": {
                "title": "Search Attribute - Label",
                "description": "Translations for the attribute group.",
                "properties": {
                    "attribute": {
                        "type": "string",
                        "example": "technische_merkmale"
                    },
                    "label": {
                        "type": "string",
                        "example": "Technical features"
                    }
                },
                "type": "object"
            },
            "GroupedSearchAttributesData": {
                "title": "Grouped Search Attributes List",
                "description": "Use these list of attributes to filter the products dynamically.<br>Check UI sample [Products List filter column](https://www.balluff.com/en-de/products/areas/A0001/groups/G0101/products/F01102#filters) on the left.",
                "properties": {
                    "technische_merkmale": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SearchAttributeData"
                        }
                    },
                    "einsatzumgebung": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/SearchAttributeData"
                        }
                    },
                    "labels": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {
                            "$ref": "#/components/schemas/SearchAttributeLabelData"
                        }
                    }
                },
                "type": "object"
            },
            "SearchAttributePriceFilterData": {
                "title": "Search Attribute - Price Filter",
                "description": "Price min and max values range for the current products list.",
                "properties": {
                    "price": {
                        "$ref": "#/components/schemas/SearchAttributePriceMinMaxData"
                    },
                    "currency": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "SearchAttributePriceMinMaxData": {
                "title": "Search Attribute - Price Filter - Price Min Max",
                "description": "Price min and max values",
                "properties": {
                    "min": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "format": "float"
                    },
                    "max": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "format": "float"
                    }
                },
                "type": "object"
            },
            "SearchAttributeValueData": {
                "title": "Search Attribute - Value",
                "properties": {
                    "value": {
                        "example": "254575"
                    },
                    "name": {
                        "example": "M8x1"
                    },
                    "count": {
                        "type": "number"
                    },
                    "selected": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    },
                    "forcefully_deselected": {
                        "type": [
                            "boolean",
                            "null"
                        ]
                    }
                },
                "type": "object"
            },
            "SearchAttributeValueMinMaxData": {
                "title": "Search Attribute - Value Min Max",
                "properties": {
                    "min": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "format": "float"
                    },
                    "max": {
                        "type": [
                            "number",
                            "null"
                        ],
                        "format": "float"
                    }
                },
                "type": "object"
            },
            "ProductAttribute": {
                "title": "Product Attribute",
                "properties": {
                    "id": {
                        "type": "string",
                        "example": "price"
                    },
                    "name": {
                        "type": "string",
                        "example": "Price"
                    },
                    "value": {
                        "type": "string",
                        "example": "100"
                    }
                },
                "type": "object"
            },
            "ProductCartInformation": {
                "title": "Product Cart Information",
                "properties": {
                    "net_weight": {
                        "type": "number",
                        "format": "float"
                    },
                    "net_weight_kg": {
                        "type": "number",
                        "format": "float"
                    },
                    "product_hierarchy": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "origin_country": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "hs_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "type": "object"
            },
            "ProductListColumn": {
                "title": "Product List Column",
                "description": "Product list columns, that are common for the retrieved products.<br>`id` of each column could be used to sort and/or filter the products.",
                "properties": {
                    "id": {
                        "type": "string",
                        "example": "price, cal_digital_input_bni, ..."
                    },
                    "type": {
                        "$ref": "#/components/schemas/SearchType"
                    },
                    "name": {
                        "type": "string",
                        "example": "Price, Digital inputs, ..."
                    },
                    "default": {
                        "type": "boolean"
                    },
                    "order": {
                        "type": "integer",
                        "example": 1
                    }
                },
                "type": "object"
            },
            "ProductPrice": {
                "title": "Product Price",
                "properties": {
                    "value": {
                        "description": "Price value",
                        "type": "number",
                        "format": "float"
                    },
                    "currency": {
                        "description": "Price currency",
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "ProductQuantityRestrictions": {
                "title": "Product Quantity Restrictions",
                "properties": {
                    "min_order": {
                        "type": "integer",
                        "example": "1"
                    },
                    "delivery_unit": {
                        "type": "string"
                    },
                    "sales_unit": {
                        "type": "string",
                        "example": "ST"
                    }
                },
                "type": "object"
            },
            "ProductVideo": {
                "title": "Product Video",
                "properties": {
                    "label": {
                        "type": "string",
                        "example": "Video"
                    },
                    "url": {
                        "type": "string"
                    },
                    "thumbnail_url": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "CategoryType": {
                "title": "Category Type",
                "description": "Category Type",
                "type": "string",
                "enum": [
                    "area",
                    "group",
                    "product"
                ],
                "example": "area"
            },
            "ProductType": {
                "title": "Product Type",
                "description": "Product type enumeration",
                "type": "string",
                "enum": [
                    "default",
                    "master_product",
                    "set",
                    "media_object",
                    "system",
                    "portfolio_master"
                ]
            },
            "SearchType": {
                "title": "Search Type",
                "type": "string",
                "enum": [
                    "and",
                    "or",
                    "text",
                    "numeric",
                    "slider",
                    "slider_range",
                    "boolean"
                ]
            },
            "SortDirection": {
                "title": "Sort Direction",
                "type": "string",
                "enum": [
                    "asc",
                    "desc"
                ]
            },
            "ErrorResponse": {
                "title": "Error Response",
                "properties": {
                    "error": {
                        "type": "string",
                        "example": "An unexpected error occurred. Please try again later."
                    }
                },
                "type": "object"
            }
        },
        "parameters": {
            "header-x-locale": {
                "name": "x-locale",
                "in": "header",
                "description": "Locale (optional). If not set, the customer's locale will be used.",
                "required": false,
                "allowEmptyValue": true,
                "schema": {
                    "type": "string"
                },
                "examples": {
                    "": {
                        "summary": "",
                        "value": ""
                    },
                    "de-DE": {
                        "summary": "de-DE",
                        "value": "de-DE"
                    },
                    "en-DE": {
                        "summary": "en-DE",
                        "value": "en-DE"
                    },
                    "en-US": {
                        "summary": "en-US",
                        "value": "en-US"
                    },
                    "fr-FR": {
                        "summary": "fr-FR",
                        "value": "fr-FR"
                    },
                    "ja-JP": {
                        "summary": "ja-JP",
                        "value": "ja-JP"
                    }
                }
            }
        },
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "name": "bearerAuth",
                "in": "header",
                "bearerFormat": "JWT",
                "scheme": "bearer"
            }
        }
    },
    "tags": [
        {
            "name": "Customer",
            "description": "Customer API Endpoints"
        },
        {
            "name": "Product Categories",
            "description": "Product Categories API Endpoints"
        }
    ]
}